[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