Re: [OMPI users] Runtime replacement of mpi libraries?
Another option is SGI PerfBoost. It will let you run apps compiled against other ABIs with SGI MPT with practically no performance loss. $ module load openmpi $ make $ module unload openmpi $ module load mpt perfboost $ mpiexec_mpt -np 2 perfboost -ompi a.out On 09/11/2014 01:28 PM, JR Cary wrote: We need to build an application on our machine with one mpi (e.g. openmpi), but for performance reasons, upon installation, we would like to runtime link to a different, specialized mpi, such as an SGI implementation provided for their systems. Can one expect this to work? I tried this with openmpi and mpich, building the code against shared openmpi and then changing the LD_LIBRARY_PATH to point to the shared mpich. This failed due to the sonames being different. $ ldd foo | grep mpi libmpi_usempi.so.1 => not found libmpi_mpifh.so.2 => not found libmpi.so.1 => not found libmpi_cxx.so.1 => not found but in the mpich distribution one has different sonames libmpi.so.12 so the runtime loader will not load the mpich libraries instead. and the fortran libraries (which may not matter to us) have different names, $ \ls /contrib/mpich-shared/lib/*.so.12 /contrib/mpich-shared/lib/libmpicxx.so.12 /contrib/mpich-shared/lib/libmpifort.so.12 /contrib/mpich-shared/lib/libmpi.so.12 Is there a general approach to this? Or in practice, must one build on a machine to use that machine's MPI? Thx.John Cary ___ 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/2014/09/25311.php -- Michael A. Raymond SGI MPT Team Leader 1 (651) 683-7523
Re: [OMPI users] Runtime replacement of mpi libraries?
Doing the `module load perfboost` sets the LD_LIBRARY_PATH. To see more, after doing the module load of both SGI modules, do an `ldd` on your app. On 09/11/2014 03:40 PM, John Cary wrote: Thanks much! So does mpiexec_mpt then set the LD_LIBRARY_PATH as needed? John On 9/11/2014 1:27 PM, Michael Raymond wrote: Another option is SGI PerfBoost. It will let you run apps compiled against other ABIs with SGI MPT with practically no performance loss. $ module load openmpi $ make $ module unload openmpi $ module load mpt perfboost $ mpiexec_mpt -np 2 perfboost -ompi a.out On 09/11/2014 01:28 PM, JR Cary wrote: We need to build an application on our machine with one mpi (e.g. openmpi), but for performance reasons, upon installation, we would like to runtime link to a different, specialized mpi, such as an SGI implementation provided for their systems. Can one expect this to work? I tried this with openmpi and mpich, building the code against shared openmpi and then changing the LD_LIBRARY_PATH to point to the shared mpich. This failed due to the sonames being different. $ ldd foo | grep mpi libmpi_usempi.so.1 => not found libmpi_mpifh.so.2 => not found libmpi.so.1 => not found libmpi_cxx.so.1 => not found but in the mpich distribution one has different sonames libmpi.so.12 so the runtime loader will not load the mpich libraries instead. and the fortran libraries (which may not matter to us) have different names, $ \ls /contrib/mpich-shared/lib/*.so.12 /contrib/mpich-shared/lib/libmpicxx.so.12 /contrib/mpich-shared/lib/libmpifort.so.12 /contrib/mpich-shared/lib/libmpi.so.12 Is there a general approach to this? Or in practice, must one build on a machine to use that machine's MPI? Thx.John Cary ___ 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/2014/09/25311.php ___ 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/2014/09/25316.php -- Michael A. Raymond SGI MPT Team Leader 1 (651) 683-7523
Re: [OMPI users] Directed to Undirected Graph
You need to use 2 calls. One option is an Allgather followed by an Allgatherv. Allgather() with one integer, which is the number of nodes the rank is linked to Allgatherv() with a variable size array of integers where each entry is a connected to node On 06/05/2012 08:39 AM, Mudassar Majeed wrote: Dear people, Let say there are N MPI processes. Each MPI process has to communicate with some T processes, where T < N. This information is a directed graph (and every process knows only about its own). I need to convert it to undirected graph, so that each process will inform T other processes about it. Every process will update this information. (that may be stored in an array of maximum size N). What can be the best way to exchange this information among all MPI processes ? MPI_AllGather and MPI_AllGatherv do not solve my problem. best regards, -- Mudassar ___ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users -- Michael A. Raymond SGI MPT Team Leader (651) 683-3434