PRIME_PARFOR
A Parallel MATLAB Function Using PARFOR


PRIME_PARFOR is a directory which illustrates how a MATLAB function using the PARFOR statement can be run in parallel.

The algorithm is completely naive. For each integer I, it simply checks whether any smaller J evenly divides it. The total amount of work for a given N is thus roughly proportional to 1/2*N^2.

There is very little memory traffic and no communication, so this program is a good test for the pure computational speedup offered by MATLAB's Parallel Programming Toolbox.

The basic function has the form:

function total = prime_fun ( n )
where

Depending on the situation, the function could be executed in parallel:

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

PRIME_PARFOR is available in a MATLAB version.

Related Data and Programs:

COLLATZ_PARFOR, a MATLAB program which seeks the maximum Collatz sequence between 1 and N, running in parallel using MATLAB's parfor feature.

HEATED_PLATE_PARFOR, a MATLAB program which solves the steady (time independent) heat equation in a 2D rectangular region, using MATLAB's parfor facility to run in parallel.

HELLO_PARFOR, a MATLAB program which prints out "Hello, world!" multiple times, using MATLAB's parfor command for parallel execution.

HIGH_CARD_PARFOR, a MATLAB program which uses the parfor statement to compute in parallel the statistics for a card game in which you are required to guess the location of the highest card.

MATLAB_PARALLEL, MATLAB programs which illustrate "local" parallel programming on a single computer with MATLAB's Parallel Computing Toolbox.

MATLAB_RANDOM_PARALLEL, MATLAB programs which illustrate the use of Matlab's random number generator (RNG) functions when using parallel features such as parfor or spmd.

MATRIX_ASSEMBLE_PARFOR, a MATLAB program which demonstrates the parfor parallel programming feature by assembling the Hilbert matrix in a parallel loop.

MD_PARFOR, a MATLAB program which carries out a molecular dynamics simulation, running in parallel using MATLAB's "PARFOR" feature.

ODE_SWEEP_PARFOR, a MATLAB program which demonstrates how the PARFOR command can be used to parallelize the computation of a grid of solutions to a parameterized system of ODE's.

PRIME_OPENMP, a C program which counts the number of primes between 1 and N, using OpenMP for parallel execution.

PRIME_PLOT a MATLAB program which displays a box plot of the prime and composite numbers.

PRIME_SERIAL, a MATLAB program which counts the number of primes between 1 and N, intended as a starting point for the creation of a parallel version.

PRIME_SPMD, a MATLAB program which counts the number of primes between 1 and N; running in parallel using MATLAB's "SPMD" feature.

QUAD_PARFOR, a MATLAB program which estimates an integral using quadrature; running in parallel using MATLAB's "PARFOR" feature.

SATISFY_PARFOR, a MATLAB program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem, running in parallel using MATLAB's "PARFOR" feature.

SPARSE_PARFOR, a MATLAB library which demonstrates how a sparse matrix can be constructed by evaluating individual blocks in parallel with the parfor command, and then assembled (on a single processor) using the sparse() command.

Reference:

The User's Guide for the Parallel Computing Toolbox is available at http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf

Source Code:

Examples and Tests:

PRIME_POOL runs the command locally and interactively. Since I have 4 processors, an interactive pool job can use all 4.

PRIME_BATCH_LOCAL runs the command locally, noninteractively. Since I have 4 processors, a batch job can only use 3.

PRIME_BATCH_ITHACA runs the command on the Virginia Tech Ithaca cluster, noninteractively. Since I have 4 processors, a batch job can only use 3.

PRIME_FSU runs the command on the Florida State University HPC cluster, noninteractively.

You can go up one level to the MATLAB source codes.


Last revised on 22 May 2012.