Jonathan Dursi
http://github.com/ljdursi/beyond-single-core-R
Today will look something like this:
Hardware:
Processes and threads:
Interpreted languages: generally you can only directly work with processes
Can call libraries that invoke threads (BLAS/LAPACK)
One turns to parallel computing to solve one of three problems:
My program is too slow.
Perhaps using more cores — e.g., all cores on my desktop — will make things faster.
My problem is too big.
Perhaps splitting the problem up onto multiple computers in a cluster will give it access to enough memory to run effectively.
There are too many computations to do - one task runs in a reasonable amount of time, but I have to run thousands!
Perhaps splitting the problem up onto multiple computers in a cluster will give it access to enough memory to run.