also see https://svn.open-mpi.org/trac/ompi/ticket/1449



On 12/9/08, Lenny Verkhovsky <lenny.verkhov...@gmail.com> wrote:
>
> maybe it's related to https://svn.open-mpi.org/trac/ompi/ticket/1378  ??
>
> On 12/5/08, Justin <luitj...@cs.utah.edu> wrote:
>>
>> The reason i'd like to disable these eager buffers is to help detect the
>> deadlock better.  I would not run with this for a normal run but it would be
>> useful for debugging.  If the deadlock is indeed due to our code then
>> disabling any shared buffers or eager sends would make that deadlock
>> reproduceable.    In addition we might be able to lower the number of
>> processors down.  Right now determining which processor is deadlocks when we
>> are using 8K cores and each processor has hundreds of messages sent out
>> would be quite difficult.
>>
>> Thanks for your suggestions,
>> Justin
>> Brock Palen wrote:
>>
>>> OpenMPI has differnt eager limits for all the network types, on your
>>> system run:
>>>
>>> ompi_info --param btl all
>>>
>>> and look for the eager_limits
>>> You can set these values to 0 using the syntax I showed you before. That
>>> would disable eager messages.
>>> There might be a better way to disable eager messages.
>>> Not sure why you would want to disable them, they are there for
>>> performance.
>>>
>>> Maybe you would still see a deadlock if every message was below the
>>> threshold. I think there is a limit of the number of eager messages a
>>> receving cpus will accept. Not sure about that though.  I still kind of
>>> doubt it though.
>>>
>>> Try tweaking your buffer sizes,  make the openib  btl eager limit the
>>> same as shared memory. and see if you get locks up between hosts and not
>>> just shared memory.
>>>
>>> Brock Palen
>>> www.umich.edu/~brockp
>>> Center for Advanced Computing
>>> bro...@umich.edu
>>> (734)936-1985
>>>
>>>
>>>
>>> On Dec 5, 2008, at 2:10 PM, Justin wrote:
>>>
>>>  Thank you for this info.  I should add that our code tends to post a lot
>>>> of sends prior to the other side posting receives.  This causes a lot of
>>>> unexpected messages to exist.  Our code explicitly matches up all tags and
>>>> processors (that is we do not use MPI wild cards).  If we had a dead lock I
>>>> would think we would see it regardless of weather or not we cross the
>>>> roundevous threshold.  I guess one way to test this would be to to set this
>>>> threshold to 0.  If it then dead locks we would likely be able to track 
>>>> down
>>>> the deadlock.  Are there any other parameters we can send mpi that will 
>>>> turn
>>>> off buffering?
>>>>
>>>> Thanks,
>>>> Justin
>>>>
>>>> Brock Palen wrote:
>>>>
>>>>> When ever this happens we found the code to have a deadlock.  users
>>>>> never saw it until they cross the eager->roundevous threshold.
>>>>>
>>>>> Yes you can disable shared memory with:
>>>>>
>>>>> mpirun --mca btl ^sm
>>>>>
>>>>> Or you can try increasing the eager limit.
>>>>>
>>>>> ompi_info --param btl sm
>>>>>
>>>>> MCA btl: parameter "btl_sm_eager_limit" (current value:
>>>>>                          "4096")
>>>>>
>>>>> You can modify this limit at run time,  I think (can't test it right
>>>>> now) it is just:
>>>>>
>>>>> mpirun --mca btl_sm_eager_limit 40960
>>>>>
>>>>> I think you can also in tweaking these values use env Vars in place of
>>>>> putting it all in the mpirun line:
>>>>>
>>>>> export OMPI_MCA_btl_sm_eager_limit=40960
>>>>>
>>>>> See:
>>>>> http://www.open-mpi.org/faq/?category=tuning
>>>>>
>>>>>
>>>>> Brock Palen
>>>>> www.umich.edu/~brockp
>>>>> Center for Advanced Computing
>>>>> bro...@umich.edu
>>>>> (734)936-1985
>>>>>
>>>>>
>>>>>
>>>>> On Dec 5, 2008, at 12:22 PM, Justin wrote:
>>>>>
>>>>>  Hi,
>>>>>>
>>>>>> We are currently using OpenMPI 1.3 on Ranger for large processor jobs
>>>>>> (8K+).  Our code appears to be occasionally deadlocking at random within
>>>>>> point to point communication (see stacktrace below).  This code has been
>>>>>> tested on many different MPI versions and as far as we know it does not
>>>>>> contain a deadlock.  However, in the past we have ran into problems with
>>>>>> shared memory optimizations within MPI causing deadlocks.  We can usually
>>>>>> avoid these by setting a few environment variables to either increase the
>>>>>> size of shared memory buffers or disable shared memory optimizations all
>>>>>> together.   Does OpenMPI have any known deadlocks that might be causing 
>>>>>> our
>>>>>> deadlocks?  If are there any work arounds?  Also how do we disable shared
>>>>>> memory within OpenMPI?
>>>>>>
>>>>>> Here is an example of where processors are hanging:
>>>>>>
>>>>>> #0  0x00002b2df3522683 in mca_btl_sm_component_progress () from
>>>>>> /opt/apps/intel10_1/openmpi/1.3/lib/openmpi/mca_btl_sm.so
>>>>>> #1  0x00002b2df2cb46bf in mca_bml_r2_progress () from
>>>>>> /opt/apps/intel10_1/openmpi/1.3/lib/openmpi/mca_bml_r2.so
>>>>>> #2  0x00002b2df0032ea4 in opal_progress () from
>>>>>> /opt/apps/intel10_1/openmpi/1.3/lib/libopen-pal.so.0
>>>>>> #3  0x00002b2ded0d7622 in ompi_request_default_wait_some () from
>>>>>> /opt/apps/intel10_1/openmpi/1.3//lib/libmpi.so.0
>>>>>> #4  0x00002b2ded109e34 in PMPI_Waitsome () from
>>>>>> /opt/apps/intel10_1/openmpi/1.3//lib/libmpi.so.0
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Justin
>>>>>> _______________________________________________
>>>>>> 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
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> 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