#include #include #include void err_handler(int err, char *err_msg) { int rank, errorclass, errorStringLen; char errorString[MPI_MAX_ERROR_STRING]; MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Error_string(err, errorString, &errorStringLen); if (err_msg == NULL) err_msg = ""; printf("rank %d: MPI error (%s) : %s\n", rank, err_msg, errorString); } int main(int argc, char **argv) { int buf, err; MPI_File fh; MPI_Status status; MPI_Init(&argc, &argv); if (argc != 2) { printf("Usage: %s filename\n", argv[0]); MPI_Finalize(); return 1; } err = MPI_File_open(MPI_COMM_WORLD, argv[1], MPI_MODE_CREATE | MPI_MODE_RDWR, MPI_INFO_NULL, &fh); if (err != MPI_SUCCESS) err_handler(err, "MPI_File_open()"); err = MPI_File_write_all(fh, &buf, 1, MPI_INT, &status); if (err != MPI_SUCCESS) err_handler(err, "MPI_File_write_all()"); MPI_File_close(&fh); MPI_Finalize(); return 0; }