application checkpointing application programming interface asymmetric multiprocessing bit-level parallelism cache coherency cache only memory architecture compiler computer hardware computer programming computer science cost efficiency data parallelism distributed computing distributed memory distributed shared memory embarrassingly parallel explicit parallelism grand challenge problem grid computing high-performance computing high performance fortran hyper-threading instruction level parallelism intel threading building blocks karp-flatt metric labview mimd misd massive parallel processing memory coherence message passing interface multiprocessing nesl non-uniform memory access openmp posix threads parallel random access machine parallel computing parallel programming model parallel slowdown simd sisal sisd shared memory simultaneous multithreading software lockout speedup super-threading supercomputer superscalar symmetric multiprocessing task parallelism unified parallel c vector processor