wiki:MpiApps

Version 2 (modified by carlgt1, 13 years ago) (diff)

initial page

MPI applications

It is possible to run MPI applications under BOINC to run multi-process jobs under a single host machine. This has been tested using the mpich2 library (available at http://www.mcs.anl.gov/research/projects/mpich2/) and should work for other libraries. Examples have been made using the BOINC wrapper to handle calling the MPI processes. The application version will need to provide it's own mpirun or mpiexec program to call the MPI programs (statically linked so there are no external dependencies; or else provide shared objects in the project path).

It is preferable to setup your MPI project as a BOINC "plan class" mechanism, using the "mt" (multithreaded) app plan. This will enable the BOINC client to know that this job will use all available CPUs (and not try to run more than one workunit at a time), and will pass a command-line argument "--nthreads N" to the app (or wrapper) so that appropriate setup on the client can be done to run the number of processors available (i.e. -np 2 or 4 or 8 etc).