1
1
openmpi/README
2011-12-22 19:42:00 +00:00

188 строки
6.9 KiB
Plaintext

fcoll - collective read and write operations for MPI I/O
fs - file system functions for MPI I/O
io - MPI-2 I/O
mpool - Memory pooling
mtl - Matching transport layer, used for MPI point-to-point
messages on some types of networks
op - Back end computations for intrinsic MPI_Op operators
osc - MPI-2 one-sided communications
pml - MPI point-to-point management layer
pubsub - MPI-2 publish/subscribe management
rcache - Memory registration cache
sharedfp - shared file pointer operations for MPI I/O
topo - MPI topology routines
vprotocol - Protocols for the "v" PML
Back-end run-time environment (RTE) component frameworks:
---------------------------------------------------------
debugger - Parallel debugger support
errmgr - RTE error manager
ess - RTE environment-specfic services
filem - Remote file management
grpcomm - RTE group communications
iof - I/O forwarding
notifier - System/network administrator noficiation system
odls - OpenRTE daemon local launch subsystem
oob - Out of band messaging
plm - Process lifecycle management
ras - Resource allocation system
rmaps - Resource mapping system
rml - RTE message layer
routed - Routing table for the RML
sensor - Software and hardware health monitoring
snapc - Snapshot coordination
sstore - Distributed scalable storage
Miscellaneous frameworks:
-------------------------
backtrace - Debugging call stack backtrace support
carto - Cartography (host/network mapping) support
compress - Compression algorithms
crs - Checkpoint and restart service
event - Event library (libevent) versioning support
hwloc - Hardware locality (hwloc) versioning support
if - OS IP interface support
installdirs - Installation directory relocation services
maffinity - Memory affinity
memchecker - Run-time memory checking
memcpy - Memopy copy support
memory - Memory management hooks
paffinity - Processor affinity
pstat - Process status
shmem - Shared memory support
timer - High-resolution timers
---------------------------------------------------------------------------
Each framework typically has one or more components that are used at
run-time. For example, the btl framework is used by the MPI layer to
send bytes across different types underlying networks. The tcp btl,
for example, sends messages across TCP-based networks; the openib btl
sends messages across OpenFabrics-based networks; the MX btl sends
messages across Myrinet MX / Open-MX networks.
Each component typically has some tunable parameters that can be
changed at run-time. Use the ompi_info command to check a component
to see what its tunable parameters are. For example:
shell$ ompi_info --param btl tcp
shows all the parameters (and default values) for the tcp btl
component.
These values can be overridden at run-time in several ways. At
run-time, the following locations are examined (in order) for new
values of parameters:
1. <prefix>/etc/openmpi-mca-params.conf
This file is intended to set any system-wide default MCA parameter
values -- it will apply, by default, to all users who use this Open
MPI installation. The default file that is installed contains many
comments explaining its format.
2. $HOME/.openmpi/mca-params.conf
If this file exists, it should be in the same format as
<prefix>/etc/openmpi-mca-params.conf. It is intended to provide
per-user default parameter values.
3. environment variables of the form OMPI_MCA_<name> set equal to a
<value>
Where <name> is the name of the parameter. For example, set the
variable named OMPI_MCA_btl_tcp_frag_size to the value 65536
(Bourne-style shells):
shell$ OMPI_MCA_btl_tcp_frag_size=65536
shell$ export OMPI_MCA_btl_tcp_frag_size
4. the mpirun command line: --mca <name> <value>
Where <name> is the name of the parameter. For example:
shell$ mpirun --mca btl_tcp_frag_size 65536 -np 2 hello_world_mpi
These locations are checked in order. For example, a parameter value
passed on the mpirun command line will override an environment
variable; an environment variable will override the system-wide
defaults.
Each component typically activates itself when relavant. For example,
the MX component will detect that MX devices are present and will
automatically be used for MPI communications. The SLURM component
will automatically detect when running inside a SLURM job and activate
itself. And so on.
Components can be manually activated or deactivated if necessary, of
course. The most common components that are manually activated,
deactivated, or tuned are the "BTL" components -- components that are
used for MPI point-to-point communications on many types common
networks.
For example, to *only* activate the TCP and "self" (process loopback)
components are used for MPI communications, specify them in a
comma-delimited list to the "btl" MCA parameter:
shell$ mpirun --mca btl tcp,self hello_world_mpi
To add shared memory support, add "sm" into the command-delimited list
(list order does not matter):
shell$ mpirun --mca btl tcp,sm,self hello_world_mpi
To specifically deactivate a specific component, the comma-delimited
list can be prepended with a "^" to negate it:
shell$ mpirun --mca btl ^tcp hello_mpi_world
The above command will use any other BTL component other than the tcp
component.
===========================================================================
Common Questions
----------------
Many common questions about building and using Open MPI are answered
on the FAQ:
http://www.open-mpi.org/faq/
===========================================================================
Got more questions?
-------------------
Found a bug? Got a question? Want to make a suggestion? Want to
contribute to Open MPI? Please let us know!
When submitting questions and problems, be sure to include as much
extra information as possible. This web page details all the
information that we request in order to provide assistance:
http://www.open-mpi.org/community/help/
User-level questions and comments should generally be sent to the
user's mailing list (users@open-mpi.org). Because of spam, only
subscribers are allowed to post to this list (ensure that you
subscribe with and post from *exactly* the same e-mail address --
joe@example.com is considered different than
joe@mycomputer.example.com!). Visit this page to subscribe to the
user's list:
http://www.open-mpi.org/mailman/listinfo.cgi/users
Developer-level bug reports, questions, and comments should generally
be sent to the developer's mailing list (devel@open-mpi.org). Please
do not post the same question to both lists. As with the user's list,
only subscribers are allowed to post to the developer's list. Visit
the following web page to subscribe:
http://www.open-mpi.org/mailman/listinfo.cgi/devel
Make today an Open MPI day!