In this slidecast, Jeff Squyres from Cisco Systems presents: How to make MPI Awesome - MPI Sessions. As a proposal for future versions of the MPI Standard, MPI Sessions could become a powerful tool tool to improve system resiliency as we move towards exascale.
Watch the video presentation: http://wp.me/p3RLHQ-f4U
Learn more: http://blogs.cisco.com/performance/mpi-sessions-a-proposal-for-the-mpi-forum
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
20. Example
int main() {
// Create a datatype – initializes MPI
MPI_Type_contiguous(2, MPI_INT, &mytype);
The crea=on of the first user-
defined MPI object ini=alizes MPI
Ini=aliza=on can be a local ac=on!
21. Example
int main() {
// Create a datatype – initializes MPI
MPI_Type_contiguous(2, MPI_INT, &mytype);
// Free the datatype – finalizes MPI
MPI_Type_free(&mytype);
}
The destruc=on of the last user-
defined MPI object finalizes MPI.
22. Example
int main() {
// Create a datatype – initializes MPI
MPI_Type_contiguous(2, MPI_INT, &mytype);
// Free the datatype – finalizes MPI
MPI_Type_free(&mytype);
// Re-initialize MPI!
MPI_Type_dup(MPI_INT, &mytype);
We can also re-ini=alize MPI!
(it’s transparent to the user – so why not?)
26. Wait a minute –
What about MPI_COMM_WORLD?
int main() {
// Can’t I do this?
MPI_Send(…, MPI_COMM_WORLD);
This would be calling a
“performance marers”
func=on before a
“performance doesn’t marer”
func=on
I.e., MPI has not ini=alized yet