Ken,
I confirmed that MPI_Comm_spawn fails completely if I build MPICH without the PMI2 option. Looking at the Slurm documentation
https://slurm.schedmd.com/mpi_guide.html#intel_mpiexec_hydra
it states "All MPI_comm_spawn work fine now going through hydra's PMI 1.1 interface." The full quote is below for reference.
1) how do I build MPICH to support hydra's PMI 1.1 interface?
2) Can you offer any guesses on how to build Slurm to do the same? (I realize this isn't a Slurm forum
😊)
Thanks,
Kurt
=========== Full quote ===============
MPICH2 with mpiexec
Do not add any flags to mpich and build the default (e.g. "./configure -prefix ... ". Do NOT pass the --with-slurm, --with-pmi, --enable-pmiport options).
Do not add -lpmi to your application (it will force slurm's pmi 1 interface which doesn't support PMI_Spawn_multiple).
Launch the application using salloc to create the job allocation and mpiexec to launch the tasks. A simple example is shown below.
salloc -N 2 mpiexec my_application
All MPI_comm_spawn work fine now going through hydra's PMI 1.1 interface.
-----Original Message-----
From: Mccall, Kurt E. (MSFC-EV41) via discuss <discuss@mpich.org>
Sent: Friday, January 28, 2022 1:43 PM
To: Raffenetti, Ken <raffenet@anl.gov>; discuss@mpich.org
Cc: Mccall, Kurt E. (MSFC-EV41) <kurt.e.mccall@nasa.gov>
Subject: [EXTERNAL] Re: [mpich-discuss] MPI_Comm_spawn crosses node boundaries
I have built in the past without the pmi2 option, and MPI_Comm_spawn doesn't work at all. My memory is a little fuzzy, so I'll try that to make sure. In the meantime, can you recommend an option with which to build Slurm that MPICH
also supports and has tested? Here is what we have now:
$ srun --mpi=list
srun: MPI types are...
srun: cray_shasta
srun: pmi2
srun: none
-----Original Message-----
From: Raffenetti, Ken <raffenet@anl.gov>
Sent: Friday, January 28, 2022 1:35 PM
To: Mccall, Kurt E. (MSFC-EV41) <kurt.e.mccall@nasa.gov>;
discuss@mpich.org
Subject: [EXTERNAL] Re: [mpich-discuss] MPI_Comm_spawn crosses node boundaries
I'm just now realizing that we don't test spawn functionality with our pmi2 implementation. Can you try rebuilding without that option and see if it works as expected?
Ken
On 1/28/22, 1:18 PM, "Mccall, Kurt E. (MSFC-EV41)" <kurt.e.mccall@nasa.gov> wrote:
../mpich-4.0rc3/configure --prefix=/opt/mpich --with-pmi=pmi2/simple --with-device=ch3:nemesis --disable-fortran -enable-debuginfo --enable-g=debug
-----Original Message-----
From: Raffenetti, Ken <raffenet@anl.gov>
Sent: Friday, January 28, 2022 1:16 PM
To: Mccall, Kurt E. (MSFC-EV41) <kurt.e.mccall@nasa.gov>;
discuss@mpich.org
Subject: [EXTERNAL] Re: [mpich-discuss] MPI_Comm_spawn crosses node boundaries
From what I can tell, the info keyvals are not being sent to the process manager, which would explain what you are seeing. Need to investigate why that is happening next. What is your MPICH ./configure line? That'll help narrow where
to look.
Ken
On 1/28/22, 12:49 PM, "Mccall, Kurt E. (MSFC-EV41)" <kurt.e.mccall@nasa.gov> wrote:
Ken,
There is a lot of my own output mixed up in the "mpiexec -v" output. I hope you can make sense of this.
Thanks,
Kurt
-----Original Message-----
From: Raffenetti, Ken <raffenet@anl.gov>
Sent: Friday, January 28, 2022 12:36 PM
To: Mccall, Kurt E. (MSFC-EV41) <kurt.e.mccall@nasa.gov>;
discuss@mpich.org
Subject: [EXTERNAL] Re: [mpich-discuss] MPI_Comm_spawn crosses node boundaries
"ip_address" won't be recognized, only "host", "hosts", or "hostfile". Could you run an example using "mpiexec -v" and capture/share the output? That should help tell us if the hostname information is being fed correctly to the
process manager by the spawn command.
Ken
On 1/28/22, 11:35 AM, "Mccall, Kurt E. (MSFC-EV41)" <kurt.e.mccall@nasa.gov> wrote:
Ken,
I'm using sbatch, which calls a bash script that calls mpiexec (4.0rc3). Which host name convention is correct, the short or the long host name? Would the "ip_address" info key work?
Kurt
-----Original Message-----
From: Raffenetti, Ken <raffenet@anl.gov>
Sent: Friday, January 28, 2022 10:49 AM
Cc: Mccall, Kurt E. (MSFC-EV41) <kurt.e.mccall@nasa.gov>
Subject: [EXTERNAL] Re: [mpich-discuss] MPI_Comm_spawn crosses node boundaries
Are you using mpiexec or srun when initially launching your job? Hydra (mpiexec) should support the "host" info key, but I'm not sure if srun will.
Ken
On 1/28/22, 10:41 AM, "Mccall, Kurt E. (MSFC-EV41) via discuss" <discuss@mpich.org> wrote:
Hi,
Running MPICH under Slurm, MPI_Comm_spawn unexpectedly creates new processes on any and all of the nodes that Slurm allocates to the job. I would like it to only create new processes locally on the node that called
MPI_Comm_spawn.
I’ve tried passing MPI_Comm_spawn an info struct created like this:
MPI_Info info;
MPI_Info_create(&info);
MPI_Info_set(info, "host", host_name);
MPI_Info_set(info, "bind_to", "core");
where hostname = “n001” or even the full name “n001.cluster.pssclabs.com”
but that doesn’t prevent the problem. Any suggestions?
Thanks,
Kurt
_______________________________________________
discuss mailing list
discuss@mpich.org
To manage subscription options or unsubscribe: