You might argue that the attached tests are naive, but still... (Open MPI v1.10.2)
$ mpicc win_post_wait.c $ mpiexec -n 1 ./a.out malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) $ mpiexec -n 2 ./a.out malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) $ mpicc win_start_complete.c $ mpiexec -n 1 ./a.out malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) $ mpiexec -n 2 ./a.out malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 76) malloc debug: Request for 0 bytes (osc_pt2pt_active_target.c, 78) -- Lisandro Dalcin ============ Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Numerical Porous Media Center (NumPor) King Abdullah University of Science and Technology (KAUST) http://numpor.kaust.edu.sa/ 4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 4332 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa Office Phone: +966 12 808-0459
#include <mpi.h> int main(int argc, char *argv[]) { MPI_Win win; MPI_Init(&argc, &argv); MPI_Win_create(MPI_BOTTOM, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win); MPI_Win_start(MPI_GROUP_EMPTY, 0, win); MPI_Win_complete(win); MPI_Win_free(&win); MPI_Finalize(); return 0; }
#include <mpi.h> int main(int argc, char *argv[]) { MPI_Win win; MPI_Init(&argc, &argv); MPI_Win_create(MPI_BOTTOM, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win); MPI_Win_post(MPI_GROUP_EMPTY, 0, win); MPI_Win_wait(win); MPI_Win_free(&win); MPI_Finalize(); return 0; }