next up previous contents index
Next: A simple sample Up: Usage of libSRES Previous: Usage summary


MPI version

An MPI $^{\mbox{\scriptsize\citep{MPICH2004}}}$ version has been developed so that it could run on cluster with MPI implemented. The interface and usage are almost the same as simple version described above except a subtle difference. The intializing function has a different form
\begin{programsc}*
\index{libSRES:MPI ESInitial}
ESInitial(\&argc, \&argv, \\
...
..., gen, gamma, alpha, varphi, \\
retry, \&population, \&stats);
\end{programsc}
All of these inputs are the same as described above except the first two, the pointers to argc and argv indicating the arguments from the command line.

In MPI version, the program will divide the evaluation job and distribute it into multiple processors to speed up the whole performance. Note that the compiler should be "mpicc" rather than "gcc" and the run command should be
\begin{programsc}*
mpirun -np <NumberOfProcessors> YourProgram <arguments>
\end{programsc}

Figure 5: MPI performance with different number of processors. These tests are done on threestep model, using clusters equipped with 3GHz CPUs.
[Number of simulations versus time]
\includegraphics[width=0.45\textwidth]{threestep_MPI01}
[Speed versus number of processors ]
\includegraphics[width=0.45\textwidth]{threestep_MPI02}

Figure 5 describes the performance of MPI version on threestep model (see Section 4) using a cluster equipped with 3GHz CPUs. An almost linear speed up in the number of processors has been achieved, confirming its great potential for the solution of larger problems.

This document is not for MPI. Please find more information about MPI at http://www-unix.mcs.anl.gov/mpi/mpich/.


next up previous contents index
Next: A simple sample Up: Usage of libSRES Previous: Usage summary
Xinglai Ji
2005-06-29