Blue Collar Computing
• bcMPI Home
• Features
• License
• Download
• Install
• OSC Installations
• Tutorial
• Documentation
• Help
|
bcMPI - Features
Interpreter Support
bcMPI consists of a common core library and separate MPI
toolboxes for each of these interpreters:
MPI Library Support
bcMPI should be able to work with any standard MPI library
implementation. These libraries are actively tested by the
developers:
These MPI libraries have worked in the past, but are not
actively used by the developers:
The bcMPI developers have not yet tested any other MPI
implementations.
Language bindings
Implemented MPI Functions
- Basic MPI functions - MPI_Init(), MPI_Finalize(), MPI_Abort()
- Basic communicator functions - MPI_Comm_size(),
MPI_Comm_rank()
- Communicator support - MPI_Comm_create(), MPI_Comm_dup(), MPI_Comm_free(), MPI_Comm_compare(),
MPI_Comm_group(), MPI_Comm_set_name(), MPI_Comm_get_name()
- Basic communications - MPI_Send(), MPI_Recv(), MPI_Bcast()
- Collective operations - MPI_Barrier(), MPI_Gather(),
MPI_Reduce()
- Reduce operations -
SUM, PROD,
BAND, BOR, BXOR,
LAND, LOR, LXOR,
MIN, MAX
The complete bcMPI API Reference.
Comparison with MatlabMPI
Compatibility with MatlabMPI is provided when possible.
Differences between bcMPI and MatlabMPI
| |
bcMPI |
MatlabMPI |
| tag values |
integer values (experimental string hashing), restricted
by underlying MPI_TAG_UB, reusable |
arbitrary numbers or strings, must be unique |
| collective tags (broadcast, scatter, gather, reduce) |
optional, ignored |
required |
| MPI_Bcast() |
compatible with MatlabMPI |
root does MPI_Send() to each process, receivers may
call MPI_Bcast() or MPI_Recv() |
| MPI_Broadcast() |
efficient use of underlying MPI_Bcast() |
not implemented |
| asynchronous sends |
may block, unless user specifies sufficient memory size
with MPI_Buffer_attach() |
never blocks, unlimited buffering using NFS files |
| MPI_Probe() |
uses underlying MPI_Iprobe(), returns at most one
pending message |
returns all pending messages |
| MPI_Reduce() |
supports any MATLAB function with MPI_Op_create() |
not implemented |
Calls to the following MatlabMPI functions are not required
with bcMPI, and may commented out or replaced with dummy
implementations:
- MatMPI_Comm_dir()
- MatMPI_Comm_settings()
- MatMPI_Delete_all()
- MatMPI_Save_messages()
Missing/incomplete features
- sparse matrices
- scatter
- scatter/gather - choose dimension(s)?
- efficient _all collective communications (async core?)
- support mixed machine environment - byte swapping, different
index (long) sizes.
- some examples were disabled, need to try again
|