Parallel Programming with MATLAB John Burkardt Department of Scientific Computing Florida State University 28 September 2011 Most laptop and desktop machines now include multiple cores. Computer clusters are available in which hundreds or thousands of individual computers are linked together so that certain kinds of programs can access all the memory and all the cores for one computation. MATLAB includes a Parallel Computing Toolbox (PCT) that allows a user to take advantage of the new parallel computing hardware that is becoming common. In the simplest case, the user can simply run programs interactively on the desktop, but get a 4 or 8-fold speedup if the program is suitable for parallel execution. MATLAB also includes a Distribured Computing Server (DCS), which runs on a cluster. This enables a MATLAB user to run a parallel MATLAB program on the cluster, taking advantage of tens or hundreds of cores at one time. The PCS and DCS can cooperate, so that the user can work directly from the desktop, and issue commands that are sent to the remote cluster for execution, with results returned to the desktop when completed. In this talk, I will discuss the PARFOR command, which is able to cause certain simple FOR loops to execute in parallel, and the more powerful SPMD command, which allows a user to divide a computation up between a master process and many workers. Some small examples of such MATLAB programs will be displayed, and I will also demonstrate how a desktop user can communicate with a remote cluster, using the system employed by the Virginia Tech "ithaca" cluster as an example.