[OMPI users] mpirun CLI parsing
Hello, I am writing a wrapper around `mpirun` which requires pre-processing of the user's program. To achieve this, I need to isolate the program from the `mpirun` arguments on the command-line. The manual describes the program as: ``` The program executable. This is identified as the first non-recognized argument to `mpirun`. ``` However, it would be very unreliable to re-write my own parser and check the command line, so I was wondering if there is a clean built-in way to output what the argument parser understood as "the program" ? Thanks, Jean-Baptiste Skutnik
Re: [OMPI users] How to prevent linking in GPFS when it is present
I'm going to try ac_cv_header_gpfs_h=no; but --without-gpfs doesn't seem to exist. I tried it on both 3.1.5 and 2.1.6 [joan5896@admin2 openmpi-3.1.5]$ ./configure --without-gpfs configure: WARNING: unrecognized options: --without-gpfs From: users on behalf of Gilles Gouaillardet via users Sent: Sunday, March 29, 2020 6:17 PM To: users@lists.open-mpi.org Cc: Gilles Gouaillardet Subject: Re: [OMPI users] How to prevent linking in GPFS when it is present Jonathon, GPFS is used by both the ROMIO component (that comes from MPICH) and the fs/gpfs component that is used by ompio (native Open MPI MPI-IO so to speak). you should be able to disable both by running ac_cv_header_gpfs_h=no configure --without-gpfs ... Note that Open MPI is modular by default (e.g. unless you configure --disable-dlopen), and if you run it on a node that does not have libgpfs.so[.version], you might only see a warning and Open MPI will use ompio (note that might not apply on Lustre since only ROMIO is used on this filesystem) Cheers, Gilles On 3/30/2020 8:25 AM, Jonathon A Anderson via users wrote: > We are trying to build Open MPI on a system that happens to have GPFS > installed. This appears to cause Open MPI to detect gpfs.h and link against > libgpfs.so. We are trying to build a central software stack for use on > multiple clusters, some of which do not have GPFS. (It is our experience that > this provokes an error, as libgpfs.so is not found on these clusters.) To > accommodate this I want to build openmpi explicitly without linking against > GPFS. > > I tried to accomplish this with > > ./configure --with-io-romio-flags='--with-file-system=ufs+nfs' > > But gpfs was still linked. > > configure:397895: result: -lhwloc -ldl -lz -lpmi2 -lrt -lgpfs -lutil -lm > -lfabric > > How can I tell Open MPI to not link against GPFS? > > ~jonathon > > > p.s., I realize that I could just build on a system that does not have GPFS > installed; but I am trying to genericize this to encapsulate in the Spack > package. I also don't understand why the Spack package is detecting gpfs.h in > the first place, as I thought Spack tries to isolate its build environment > from the host system; but I'll ask them that in a separate message.
Re: [OMPI users] mpirun CLI parsing
I'm afraid the short answer is "no" - there is no way to do that today. > On Mar 30, 2020, at 1:45 PM, Jean-Baptiste Skutnik via users > wrote: > > Hello, > > I am writing a wrapper around `mpirun` which requires pre-processing of the > user's program. To achieve this, I need to isolate the program from the > `mpirun` arguments on the command-line. The manual describes the program as: > ``` > The program executable. This is identified as the first > non-recognized argument to `mpirun`. > ``` > However, it would be very unreliable to re-write my own parser and check the > command line, so I was wondering if there is a clean built-in way to output > what the argument parser understood as "the program" ? > > Thanks, > > Jean-Baptiste Skutnik
Re: [OMPI users] How to prevent linking in GPFS when it is present
ompio only added recently support for gpfs, and its only available in master (so far). If you are using any of the released versions of Open MPI (2.x, 3.x, 4.x) you will not find this feature in ompio yet. Thus, the issue is only how to disable gpfs in romio. I could not find right away an option for that, but I keep looking. Thanks Edgar -Original Message- From: users On Behalf Of Jonathon A Anderson via users Sent: Monday, March 30, 2020 4:36 PM To: users@lists.open-mpi.org Cc: Jonathon A Anderson Subject: Re: [OMPI users] How to prevent linking in GPFS when it is present I'm going to try ac_cv_header_gpfs_h=no; but --without-gpfs doesn't seem to exist. I tried it on both 3.1.5 and 2.1.6 [joan5896@admin2 openmpi-3.1.5]$ ./configure --without-gpfs configure: WARNING: unrecognized options: --without-gpfs From: users on behalf of Gilles Gouaillardet via users Sent: Sunday, March 29, 2020 6:17 PM To: users@lists.open-mpi.org Cc: Gilles Gouaillardet Subject: Re: [OMPI users] How to prevent linking in GPFS when it is present Jonathon, GPFS is used by both the ROMIO component (that comes from MPICH) and the fs/gpfs component that is used by ompio (native Open MPI MPI-IO so to speak). you should be able to disable both by running ac_cv_header_gpfs_h=no configure --without-gpfs ... Note that Open MPI is modular by default (e.g. unless you configure --disable-dlopen), and if you run it on a node that does not have libgpfs.so[.version], you might only see a warning and Open MPI will use ompio (note that might not apply on Lustre since only ROMIO is used on this filesystem) Cheers, Gilles On 3/30/2020 8:25 AM, Jonathon A Anderson via users wrote: > We are trying to build Open MPI on a system that happens to have GPFS > installed. This appears to cause Open MPI to detect gpfs.h and link against > libgpfs.so. We are trying to build a central software stack for use on > multiple clusters, some of which do not have GPFS. (It is our experience that > this provokes an error, as libgpfs.so is not found on these clusters.) To > accommodate this I want to build openmpi explicitly without linking against > GPFS. > > I tried to accomplish this with > > ./configure --with-io-romio-flags='--with-file-system=ufs+nfs' > > But gpfs was still linked. > > configure:397895: result: -lhwloc -ldl -lz -lpmi2 -lrt -lgpfs -lutil > -lm -lfabric > > How can I tell Open MPI to not link against GPFS? > > ~jonathon > > > p.s., I realize that I could just build on a system that does not have GPFS > installed; but I am trying to genericize this to encapsulate in the Spack > package. I also don't understand why the Spack package is detecting gpfs.h in > the first place, as I thought Spack tries to isolate its build environment > from the host system; but I'll ask them that in a separate message.
Re: [OMPI users] How to prevent linking in GPFS when it is present
It looks like this worked: ac_cv_header_gpfs_h=no ac_cv_header_gpfs_fcntl_h=no I'll keep testing the resultant builds, but I've got a prototype modification for the Spack package. Hopefully I'll submit a PR here: https://github.com/spack/spack/issues/15746 ~jonathon From: Gabriel, Edgar Sent: Monday, March 30, 2020 3:44 PM To: Open MPI Users Cc: Jonathon A Anderson Subject: RE: [OMPI users] How to prevent linking in GPFS when it is present ompio only added recently support for gpfs, and its only available in master (so far). If you are using any of the released versions of Open MPI (2.x, 3.x, 4.x) you will not find this feature in ompio yet. Thus, the issue is only how to disable gpfs in romio. I could not find right away an option for that, but I keep looking. Thanks Edgar -Original Message- From: users On Behalf Of Jonathon A Anderson via users Sent: Monday, March 30, 2020 4:36 PM To: users@lists.open-mpi.org Cc: Jonathon A Anderson Subject: Re: [OMPI users] How to prevent linking in GPFS when it is present I'm going to try ac_cv_header_gpfs_h=no; but --without-gpfs doesn't seem to exist. I tried it on both 3.1.5 and 2.1.6 [joan5896@admin2 openmpi-3.1.5]$ ./configure --without-gpfs configure: WARNING: unrecognized options: --without-gpfs From: users on behalf of Gilles Gouaillardet via users Sent: Sunday, March 29, 2020 6:17 PM To: users@lists.open-mpi.org Cc: Gilles Gouaillardet Subject: Re: [OMPI users] How to prevent linking in GPFS when it is present Jonathon, GPFS is used by both the ROMIO component (that comes from MPICH) and the fs/gpfs component that is used by ompio (native Open MPI MPI-IO so to speak). you should be able to disable both by running ac_cv_header_gpfs_h=no configure --without-gpfs ... Note that Open MPI is modular by default (e.g. unless you configure --disable-dlopen), and if you run it on a node that does not have libgpfs.so[.version], you might only see a warning and Open MPI will use ompio (note that might not apply on Lustre since only ROMIO is used on this filesystem) Cheers, Gilles On 3/30/2020 8:25 AM, Jonathon A Anderson via users wrote: > We are trying to build Open MPI on a system that happens to have GPFS > installed. This appears to cause Open MPI to detect gpfs.h and link against > libgpfs.so. We are trying to build a central software stack for use on > multiple clusters, some of which do not have GPFS. (It is our experience that > this provokes an error, as libgpfs.so is not found on these clusters.) To > accommodate this I want to build openmpi explicitly without linking against > GPFS. > > I tried to accomplish this with > > ./configure --with-io-romio-flags='--with-file-system=ufs+nfs' > > But gpfs was still linked. > > configure:397895: result: -lhwloc -ldl -lz -lpmi2 -lrt -lgpfs -lutil > -lm -lfabric > > How can I tell Open MPI to not link against GPFS? > > ~jonathon > > > p.s., I realize that I could just build on a system that does not have GPFS > installed; but I am trying to genericize this to encapsulate in the Spack > package. I also don't understand why the Spack package is detecting gpfs.h in > the first place, as I thought Spack tries to isolate its build environment > from the host system; but I'll ask them that in a separate message.