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