I'll check to see - should be working

On May 23, 2014, at 8:07 AM, Iván Cores González <ivan.cor...@udc.es> wrote:

>> I assume you mean have them exit without calling MPI_Finalize ...
> 
> Yes, thats my idea, exit some processes while the others continue. I am 
> trying to 
> use the "orte_allowed_exit_without_sync" flag in the next code (note that the 
> code
> is different):
> 
> int main( int argc, char *argv[] )
> {
>       MPI_Init(&argc, &argv);
> 
>       int myid;
>       MPI_Comm_rank(MPI_COMM_WORLD, &myid);
> 
>       if (myid == 0)
>       {       
>               printf("Exit P0 ...\n");
>               //With "--mca orte_allowed_exit_without_sync 1" this
>               //process should die, but not P1, P2 ... , is ok?
>               exit(0);
>        }
>               
>        //Imagine some important job here
>       sleep(20);
>                       
>       printf("Calling MPI_Finalize() ...\n");
>       // Process 0 maintain load at 100%.
>       MPI_Finalize();
>       return 0;
> }
> 
> and the cmd:
> mpirun --mca orte_allowed_exit_without_sync 1 -hostfile ./hostfile -np 2 
> --prefix /share/apps/openmpi/gcc/ib/1.7.2 ./a.out
> 
> But it does not work, all job fails in the "exit(0)" call. Maybe I don't 
> undertand your response...
> 
> 
> Sorry for not response in order, I have some problems with my 
> e-mail receiving the Open-MPI mails. 
> 
>> In my codes, I am using MPI_Send and MPI_Recv functions to notify P0 that
>> every other process have finished their own calculations. Maybe you cal
>> also use the same method and keep P0 in waiting until it receives some data
>> from other processes? 
> 
> This solution was my first idea, but I can't do it. I use spawned processes 
> and
> different communicators for manage "groups" of processes, so the ideal 
> behaviour
> is that processes finished and died (or at least don't stay at 100% load) when
> their finish their work. Its a bit hard to explain. 
> 
> 
> 
> 
> ----- Mensaje original -----
> De: "Ralph Castain" <r...@open-mpi.org>
> Para: "Open MPI Users" <us...@open-mpi.org>
> Enviados: Viernes, 23 de Mayo 2014 16:39:34
> Asunto: Re: [OMPI users] MPI_Finalize() maintains load at 100%.
> 
> 
> On May 23, 2014, at 7:21 AM, Iván Cores González <ivan.cor...@udc.es> wrote:
> 
>> Hi Ralph,
>> Thanks for your response. 
>> I see your point, I try to change the algorithm but some processes finish 
>> while the others are still calling MPI functions. I can't avoid this 
>> behaviour. 
>> The ideal behavior is the processes go to sleep (or don't use the 100% of 
>> load) when the MPI_Finalize is called.
>> 
>> For the time being maybe the fastest solution is instert a "manual" sleep 
>> before the MPI_Finalize.  
>> 
>> Another question, Could be possible kill some MPI processes and avoid that 
>> the mpirun fails? Or this behaviuor is impossible?
> 
> I assume you mean have them exit without calling MPI_Finalize, so they don't 
> block? Technically, yes, though we wouldn't recommend that behavior. You can 
> add "-mca orte_allowed_exit_without_sync 1" to your cmd line (or set the mca 
> param in your environment, etc.) and mpirun won't terminate you if a proc 
> exits without calling MPI_Finalize. We will still, however, terminate the job 
> if (a) a proc dies by signal (e.g., segfaults), or (b) a proc exits with a 
> non-zero status, so you'll still have some protection from hangs.
> 
>> 
>> Thanks,
>> Ivan Cores
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to