[mpich-discuss] Run MPICH without mpiexec

Kenneth Raffenetti raffenet at mcs.anl.gov
Thu Apr 10 16:57:19 CDT 2014


Hi Jackey,

To clarify in my first email, MPICH supports singleton init. However, 
MPICH does not support launching dynamic MPI processes (MPI_Comm_spawn 
or MPI_Comm_spawn_multiple) from a singleton init. For this you need to 
use mpiexec.

The crash you see in from the code below is a known bug: 
http://trac.mpich.org/projects/mpich/ticket/1541. I will see if we can 
fix this for an upcoming release.

Ken

On 04/10/2014 01:21 PM, Jackey Yan wrote:
> Hi Kenneth,
>
> === Here is my MPICH info===
> HYDRA build details:
>      Version:                                 3.1
>      Release Date:                            Thu Feb 20 11:41:13 CST 2014
>      CC:                              gcc
>      CXX:                             g++
>      F77:                             gfortran
>      F90:                             gfortran
>      Configure options:                       '--disable-option-checking' '--prefix=/icd/placement/zyan/tools/mpitch-install' '-enable-fast' '--cache-file=/dev/null' '--srcdir=/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/pm/hydra' 'CC=gcc' 'CFLAGS= -DNDEBUG -DNVALGRIND -O2' 'LDFLAGS= ' 'LIBS=-lrt -lpthread ' 'CPPFLAGS= -I/icd/placement/zyan/tools/build/mpich-3.1/src/mpl/include -I/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/mpl/include -I/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/openpa/src -I/icd/placement/zyan/tools/build/mpich-3.1/src/openpa/src -I/icd/placement/zyan/tools/build/mpich-3.1/src/mpi/romio/include'
>      Process Manager:                         pmi
>      Launchers available:                     ssh rsh fork slurm ll lsf sge manual persist
>      Topology libraries available:            hwloc
>      Resource management kernels available:   user slurm ll lsf sge pbs cobalt
>      Checkpointing libraries available:
>      Demux engines available:                 poll select
>
> === Here is partial sample of my code===
>    int world_size, universe_size, *universe_sizep, flag, rank;
>     MPI_Comm everyone;           /* intercommunicator */
>     char worker_program[100];
>     char hostname[1024];
>     gethostname(hostname, 1024);
>     std::cout << "Hi, I'm the master.  host: " << hostname << "  pid: " << getpid() << std::endl;
>     MPI_Init(&argc, &argv);
>     MPI_Comm_size(MPI_COMM_WORLD, &world_size);
>     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>
>     std::cout << "Hi, I'm the master again.  host: " << hostname << "  rank: " << rank
> 	     << ".  pid: " << getpid() << " world_size: " << world_size << std::endl;
>
>     if (world_size != 1)    std::cout << "Top heavy with management" << std::endl;
>     MPI_Comm_get_attr(MPI_COMM_WORLD, MPI_UNIVERSE_SIZE,
>                  &universe_sizep, &flag);
> ........
>
> === Here is the error message I got without using mpiexec===
> Hi, I'm the master.  host: place37  pid: 31698
> Hi, I'm the master again.  host: place37  rank: 0.  pid: 31698 world_size: 1
> [mpiexec at place37] match_arg (/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/pm/hydra/utils/args/args.c:159): unrecognized argument pmi_args
> [mpiexec at place37] HYDU_parse_array (/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/pm/hydra/utils/args/args.c:174): argument matching returned error
> [mpiexec at place37] parse_args (/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/pm/hydra/ui/mpich/utils.c:1596): error parsing input array
> [mpiexec at place37] HYD_uii_mpx_get_parameters (/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/pm/hydra/ui/mpich/utils.c:1648): unable to parse user arguments
> [mpiexec at place37] main (/icd/placement/zyan/tools/DOWNLOAD/mpich-3.1/src/pm/hydra/ui/mpich/mpiexec.c:153): error parsing parameters
>
>
> Looks like the error happens in the code line of calling MPI_Comm_get_attr().
>
> Thanks,
>
> Jackey
>
> -----Original Message-----
> From: discuss-bounces at mpich.org [mailto:discuss-bounces at mpich.org] On Behalf Of Kenneth Raffenetti
> Sent: Thursday, April 10, 2014 11:08 AM
> To: discuss at mpich.org
> Subject: Re: [mpich-discuss] Run MPICH without mpiexec
>
> MPICH supports these dynamic process features. Can you tell us more
> information about your version of MPICH and provide a small example code
> that can reproduce the error you are getting?
>
> On 04/10/2014 01:00 PM, Jackey Yan wrote:
>> Hi everyone,
>>
>> In MPICH, do I have to use mpiexec in the command line, in order to
>> launch a MPI run?
>>
>> I know that in MPI-2 standard, it supports the “dynamic process”
>> feature, i.e., dynamically generate/spawn processes from existing
>> singleton process.
>>
>> So it is not required to use mpiexec/mpirun in the command line, in
>> order to launch a singleton MPI.
>>
>> But, I tried to run without mpiexec in MPICH, but it error out when
>> parsing the arguments in Hydra…
>>
>> Thanks,
>>
>> Jackey
>>
>> 	
>>
>>
>>
>> _______________________________________________
>> discuss mailing list     discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>>
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
>



More information about the discuss mailing list