[mpich-discuss] Spawn MPI-Process
Silvan Brändli
silvan.braendli at tu-harburg.de
Wed Oct 31 10:42:20 CDT 2012
Dear all
After a long time I'm coming back to this topic...
Good news: The first example is running (see attached case "test_spawn",
run ./build to compile and ./run to start the example). Setting -hosts
localhost:XYZ to something bigger than 1, as Pavan suggested helped.
Bad news: I also need to pass an argument to the program I want to
start. When I try, I get a segmentation fault (see second case:
test_spawn_argv). I guess something must be wrong with the argv I am
passing:
char* hiargv[1];
char h0[]={"23"};
hiargv[0]=h0;
The resulting output is:
=================================================
[0] Main rank 0
[0] Main world_size 1
[0] Main universe size 2
[0] before spawn 1
=====================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 11
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
=====================================================================================
APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
=================================================
I am grateful for any help.
Best regards
Silvan
On 08/21/12 16:42, Silvan Brändli wrote:
> When I use MPI_ARGV_NULL I get:
>
> [0] world_size 1
> [0] universe size 1
> [0] try to spawn
> [mpiexec at skfp4] HYD_pmcd_pmi_alloc_pg_scratch
> (./pm/pmiserv/pmiserv_utils.c:595): assert (pg->pg_process_count *
> sizeof(struct HYD_pmcd_pmi_ecount)) failed
> [mpiexec at skfp4] fn_spawn (./pm/pmiserv/pmiserv_pmi_v1.c:468): unable to
> allocate pg scratch space
> [mpiexec at skfp4] handle_pmi_cmd (./pm/pmiserv/pmiserv_cb.c:44): PMI
> handler returned error
> [mpiexec at skfp4] control_cb (./pm/pmiserv/pmiserv_cb.c:289): unable to
> process PMI command
> [mpiexec at skfp4] HYDT_dmxu_poll_wait_for_event
> (./tools/demux/demux_poll.c:77): callback returned error status
> [mpiexec at skfp4] HYD_pmci_wait_for_completion
> (./pm/pmiserv/pmiserv_pmci.c:181): error waiting for event
> [mpiexec at skfp4] main (./ui/mpich/mpiexec.c:405): process manager error
> waiting for completion
>
> Can you get some helpful information out of this?
>
> Best regards
> Silvan
>
>
> On 08/21/12 15:21, Rajeev Thakur wrote:
>> Trying passing MPI_ARGV_NULL instead of hiargv. If that also doesn't
>> work, then use a debugger to locate the seg fault.
>>
>> Rajeev
>>
>> On Aug 21, 2012, at 5:07 AM, Silvan Brändli wrote:
>>
>>> Rajeev and Pavan, thank you for your suggestions. Unfortunately I
>>> still get the same error (segmentation fault). So I'm quite clueless
>>> where to look for the error now... If somebody could execute the
>>> example to see if the same error occurs this might be helpful.
>>>
>>> Best regards
>>> Silvan
>>>
>>> On 08/21/12 01:59, Rajeev Balaji wrote:
>>>>
>>>> Or you can specify multiple process on the node using:
>>>>
>>>> mpiexec -hosts localhost:100 -np 1 ./main
>>>>
>>>> Then the universe size will be set to 100.
>>>>
>>>> -- Pavan
>>>>
>>>> On 08/20/2012 12:49 PM, Rajeev Thakur wrote:
>>>>> Instead of universe_size-1, try passing some number like 3 or 4.
>>>>>
>>>>> Rajeev
>>>>>
>>>>> On Aug 20, 2012, at 4:39 AM, Silvan Brändli wrote:
>>>>>
>>>>>> Dear all
>>>>>>
>>>>>> I try to start an application using the MPI_Comm_spawn command.
>>>>>> However, when I execute my program I get a segmentation fault. I
>>>>>> guess, this might be because universe_size is one. As I couldn't find
>>>>>> helpful information on setting universe_size I hope some of you could
>>>>>> help me.
>>>>>>
>>>>>> Find the source code below or in the attached files. I compile the
>>>>>> code using
>>>>>> mpicxx main.cpp -o main
>>>>>> mpicxx hi.cpp -o hi
>>>>>>
>>>>>> and execute the case with
>>>>>>
>>>>>> mpiexec -prepend-rank -np 1 ./main
>>>>>>
>>>>>> The output is
>>>>>>
>>>>>> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>>>>
>>>>>>
>>>>>>
>>>>>> [0] world_size 1
>>>>>> [0] universe size 1
>>>>>> [0] try to spawn
>>>>>>
>>>>>> =====================================================================================
>>>>>>
>>>>>>
>>>>>> = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
>>>>>> = EXIT CODE: 11
>>>>>> = CLEANING UP REMAINING PROCESSES
>>>>>> = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
>>>>>> =====================================================================================
>>>>>>
>>>>>>
>>>>>> APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault
>>>>>> (signal 11)
>>>>>>
>>>>>> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>>>>
>>>>>>
>>>>>>
>>>>>> Best regards
>>>>>> Silvan
>>>>>>
>>>>>> $$$$==main.cpp==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>>>>
>>>>>>
>>>>>>
>>>>>> #include <sstream>
>>>>>> #include <mpi.h>;
>>>>>>
>>>>>> using std::string;
>>>>>>
>>>>>> int main(int argc, char *argv[])
>>>>>> {
>>>>>> int myrank;
>>>>>> if (MPI_Init(&argc,&argv)!=MPI_SUCCESS)
>>>>>> {
>>>>>> printf("MPI_Init failed");
>>>>>> }
>>>>>> MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
>>>>>>
>>>>>> int world_size, universe_size, *universe_sizep, flag;
>>>>>> MPI_Comm_size(MPI_COMM_WORLD, &world_size);
>>>>>> printf("world_size %d\n",world_size);
>>>>>>
>>>>>> MPI_Attr_get(MPI_COMM_WORLD, MPI_UNIVERSE_SIZE,
>>>>>> &universe_sizep, &flag);
>>>>>>
>>>>>> if (!flag)
>>>>>> {
>>>>>> printf("This MPI does not support UNIVERSE_SIZE. How many
>>>>>> processes total?");
>>>>>> scanf("%d", &universe_size);
>>>>>> } else universe_size = *universe_sizep;
>>>>>> printf("universe size %d\n",universe_size);
>>>>>>
>>>>>> char* hiargv[1];
>>>>>> char* m0=" ";
>>>>>> hiargv[0]=m0;
>>>>>>
>>>>>> MPI_Comm childComm;
>>>>>> int spawnerror;
>>>>>> printf("try to spawn\n");
>>>>>> MPI_Comm_spawn("./hi",hiargv, universe_size-1, MPI_INFO_NULL,
>>>>>> myrank, MPI_COMM_SELF, &childComm, &spawnerror);
>>>>>> printf("after spawn\n");
>>>>>> MPI_Finalize();
>>>>>> return 0;
>>>>>> }
>>>>>>
>>>>>> $$$$==hi.cpp==$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>>>>
>>>>>>
>>>>>>
>>>>>> #include <mpi.h>;
>>>>>> int main(int argc, char** argv) {
>>>>>> MPI_Init(NULL, NULL);
>>>>>>
>>>>>> int world_size;
>>>>>> MPI_Comm_size(MPI_COMM_WORLD, &world_size);
>>>>>>
>>>>>> int world_rank;
>>>>>> MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
>>>>>>
>>>>>> printf("Hello world from, rank %d"
>>>>>> " out of %d processors\n",
>>>>>> world_rank, world_size);
>>>>>>
>>>>>> MPI_Finalize();
>>>>>> return 0;
>>>>>> }
>>>>>>
>>>>>> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Dipl.-Ing. Silvan Brändli
>>>>>> Numerische Strukturanalyse mit Anwendungen in der Schiffstechnik
>>>>>> (M-10)
>>>>>>
>>>>>> Technische Universität Hamburg-Harburg
>>>>>> Schwarzenbergstraße 95c
>>>>>> 21073 Hamburg
>>>>>>
>>>>>> Tel. : +49 (0)40 42878 - 6187
>>>>>> Fax. : +49 (0)40 42878 - 6090
>>>>>> e-mail: silvan.braendli at tu-harburg.de
>>>>>> www : http://www.tuhh.de/skf
>>>>>>
>>>>>> <main.cpp><hi.cpp>_______________________________________________
>>>>>> mpich-discuss mailing list mpich-discuss at mcs.anl.gov
>>>>>> To manage subscription options or unsubscribe:
>>>>>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>>>>
>>>>> _______________________________________________
>>>>> mpich-discuss mailing list mpich-discuss at mcs.anl.gov
>>>>> To manage subscription options or unsubscribe:
>>>>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>>>>
>>>>
>>>
>>>
>>> --
>>> Dipl.-Ing. Silvan Brändli
>>> Numerische Strukturanalyse mit Anwendungen in der Schiffstechnik (M-10)
>>>
>>> Technische Universität Hamburg-Harburg
>>> Schwarzenbergstraße 95c
>>> 21073 Hamburg
>>>
>>> Tel. : +49 (0)40 42878 - 6187
>>> Fax. : +49 (0)40 42878 - 6090
>>> e-mail: silvan.braendli at tu-harburg.de
>>> www : http://www.tuhh.de/skf
>>>
>>>
>>> _______________________________________________
>>> mpich-discuss mailing list mpich-discuss at mcs.anl.gov
>>> To manage subscription options or unsubscribe:
>>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>
>> _______________________________________________
>> mpich-discuss mailing list mpich-discuss at mcs.anl.gov
>> To manage subscription options or unsubscribe:
>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>
>
>
--
Dipl.-Ing. Silvan Brändli
Numerische Strukturanalyse mit Anwendungen in der Schiffstechnik (M-10)
Technische Universität Hamburg-Harburg
Schwarzenbergstraße 95c
21073 Hamburg
Tel. : +49 (0)40 42878 - 6187
Fax. : +49 (0)40 42878 - 6090
e-mail: silvan.braendli at tu-harburg.de
www : http://www.tuhh.de/skf
5th GACM Colloquium on Computational Mechanics
http://www.tu-harburg.de/gacm2013
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_spawn.zip
Type: application/zip
Size: 41209 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20121031/ab356e4a/attachment-0002.zip>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_spawn_argv.zip
Type: application/zip
Size: 42179 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20121031/ab356e4a/attachment-0003.zip>
More information about the mpich-discuss
mailing list