[OMPI devel] malloc(0) warnings in post/wait and start/complete calls with GROUP_EMPTY
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 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 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; }
[OMPI devel] Fwd: Re: [OMPI users] New libmpi.so dependency on libibverbs.so?
Folks, this is a question (and my reply) initially posted on the users ML in v1.10 libmpi.so depends on libibverbs.so.1 because of ompi/mca/common/verbs_usnic i can understand this is not desired if OpenMPI install tree is shared with nodes without infiniband libraries. so far, the non-user friendly workaround is to configure DISABLE_common_verbs_usnic=1 configure --without-usnic still builds ompi/mca/common/verbs_usnic, and hence the dependency on libibverbs.so.1 i made the attached patch as a proof of concept : note there are now two AC_ARG_WITH([usnic],...) - ompi/mca/common/verbs_usnic/configure.m4 - ompi/mca/btl/usnic/configure.m4 though it seems to work as expected, i am not sure this is the right way to do things. any thoughts ? Cheers, Gilles Forwarded Message Subject:Re: [OMPI users] New libmpi.so dependency on libibverbs.so? List-Post: devel@lists.open-mpi.org Date: Tue, 2 Feb 2016 10:26:53 +0900 From: Gilles Gouaillardet To: Open MPI Users Simon, this is an usnic requirement (mca/common/verbs_usnic to be more specific) as a workaround (and assuming you do not need usnic stuff on any of your nodes) you can configure DISABLE_common_verbs_usnic=1 ... && make install note that if libibverbs.so.1 is missing on some nodes, you will get warnings (such as cannot dlopen mca_btl_openib.so) on these nodes unless you specify --mca btl ^openib on these nodes i think it would be much easier if libibverbs.so.1 were available on all your nodes, including those with no infiniband hardware Cheers, Gilles On 2/2/2016 2:52 AM, Number Cruncher wrote: Having compiled various recent Open MPI sources with the same "configure" options, I've noticed that the "libmpi.so" shared library from 1.10.1 now depends itself directly on libibverbs.so.1. Previously, 1.10.0 for example, only plugins such as mca_btl_openib.so depended on it. E.g. readelf -d ../ompi_install4/lib/libmpi.so.12.0.0: 0x0001 (NEEDED) Shared library: [libopen-rte.so.12] 0x0001 (NEEDED) Shared library: [libopen-pal.so.13] 0x0001 (NEEDED) Shared library: [libdl.so.2] 0x0001 (NEEDED) Shared library: [librt.so.1] 0x0001 (NEEDED) Shared library: [libm.so.6] 0x0001 (NEEDED) Shared library: [libutil.so.1] 0x0001 (NEEDED) Shared library: [libpthread.so.0] 0x0001 (NEEDED) Shared library: [libc.so.6] 0x000e (SONAME) Library soname: [libmpi.so.12] readelf -d ../ompi_install4/lib/libmpi.so.12.0.1 0x0001 (NEEDED) Shared library: [libibverbs.so.1] 0x0001 (NEEDED) Shared library: [libopen-rte.so.12] 0x0001 (NEEDED) Shared library: [libopen-pal.so.13] 0x0001 (NEEDED) Shared library: [libdl.so.2] 0x0001 (NEEDED) Shared library: [librt.so.1] 0x0001 (NEEDED) Shared library: [libm.so.6] 0x0001 (NEEDED) Shared library: [libutil.so.1] 0x0001 (NEEDED) Shared library: [libpthread.so.0] 0x0001 (NEEDED) Shared library: [libc.so.6] 0x000e (SONAME) Library soname: [libmpi.so.12] This could make it difficult to share an install between machines. Is this intended? Thanks, Simon ___ users mailing list us...@open-mpi.org Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users Link to this post: http://www.open-mpi.org/community/lists/users/2016/02/28424.php diff --git a/ompi/mca/common/verbs_usnic/configure.m4 b/ompi/mca/common/verbs_usnic/configure.m4 index 60aaa62..ad6eeb1 100644 --- a/ompi/mca/common/verbs_usnic/configure.m4 +++ b/ompi/mca/common/verbs_usnic/configure.m4 @@ -40,15 +40,25 @@ AC_DEFUN([MCA_ompi_common_verbs_usnic_CONFIG],[ AC_CONFIG_FILES([ompi/mca/common/verbs_usnic/Makefile]) common_verbs_usnic_happy="no" -OMPI_CHECK_OPENFABRICS([common_verbs_usnic], - [common_verbs_usnic_happy="yes"]) +AC_ARG_WITH([usnic], +[AS_HELP_STRING([--with-usnic], +[If specified, cause an error if usNIC + support cannot be built])]) -AS_IF([test "$common_verbs_usnic_happy" = "yes"], - [$1], - [$2]) +# If --without-usnic was specified, then gracefully exit. +# Otherwise, do the rest of the config. +AS_IF([test "x$with_usnic" = "xno"], + [AC_MSG_WARN([--without-usnic specified; skipping verbs_usnic]) + $2], + [OMPI_CHECK_OPENFABRICS([common_verbs_usnic], + [common_verbs_usnic_happy="yes"]) -# substitute in the things needed to build openib -AC_SUBST([common_verbs_usnic_C