Hi, here is a sample code that I ran to allocate memory using MPI_Alloc_mem call. ************* #include "mpi.h" #include <stdio.h>
int main( int argc, char *argv[] ) { int err; int j, count = 100; char *ap; MPI_Init( &argc, &argv ); MPI_Errhandler_set( MPI_COMM_WORLD, MPI_ERRORS_RETURN ); err = MPI_Alloc_mem( count, MPI_INFO_NULL, &ap ); if (err) { int errclass; printf("\n Inside error!"); printf("allocation failed"); } else { printf("\n I m here in else part"); /* Access all of this memory */ MPI_Free_mem( ap ); } MPI_Finalize(); return 0; } **********
mpirun -np 1 -hostfile nodelist ./memalloc Signal:11 info.si_errno:0(Success) si_code:1(SEGV_MAPERR) Failing at addr:0x38 [0] func:/usr/local/ofed/mpi/gcc/openmpi-1.1b1-1/lib64/libopal.so.0
[0x2aaaaadceb36]
[1] func:/lib64/libpthread.so.0 [0x33da90c380] [2] func:/usr/local/ofed/mpi/gcc/openmpi-1.1b1-1/lib64/openmpi/mca_mpool_openib.so(mca_mpool_openib_free+0x12)
[0x2aaaac7d246c] [3] func:/usr/local/ofed/mpi/gcc/openmpi-1.1b1-1/lib64/libmpi.so.0(mca_mpool_base_free+0x135)
[0x2aaaaab3c346]
[4] func:/usr/local/ofed/mpi/gcc/openmpi-1.1b1-1/lib64/libmpi.so.0(PMPI_Free_mem+0x1a)
[0x2aaaaab1f9ba]
[5] func:./memalloc(main+0x78) [0x400a30] [6] func:/lib64/libc.so.6(__libc_start_main+0xdc) [0x33da01c4cc] [7] func:./memalloc [0x400929] *** End of error message ***