Nice video about parallel computing
Why we cannot keep increasing CPU speed? Power has emerged as one of the primary factors in processor design.
Often used in Computer cluster and GPU computing. Main application is for High-performance computing (see more there)
Fundamental concept: total time vs total work
We say that a parallel algorithm is work efficient if its work complexity is asymptotically the same as the equivalent serial algorithm
Tasks <> Memory
Introduction to parallel programming by nvidia in Udacity: https://classroom.udacity.com/courses/cs344/lessons/55120467/concepts/671181630923
Latency: time for a single unit operation to take place
Throughput: number of operations per second.
Latency has advanced more slowly than throughput in technologies: Latency lags throughput
distributed and shared memory parallel computing models
Often use a combination of both, like CUDA
– Clusters and job managers. – Jobs vs Tasks. • Creating and submitting them. • Getting the results – Code portability. – Callback functions • Advanced parallelism. – spmd mode, message passing. – GPU computing.
https://uk.mathworks.com/help/distcomp/how-parallel-computing-products-run-a-job.html