On Sep 2, 2014, at 10:48 AM, Lane, William <william.l...@cshs.org> wrote:

> Ralph,
> 
> There are at least three different permutations of CPU configurations in the 
> cluster
> involved. Some are blades that have two sockets with two cores per Intel CPU 
> (and not all
> sockets are filled). Some are IBM x3550 systems having two sockets with three 
> cores
> per Intel CPU (and not all sockets are populated). All nodes have 
> hyperthreading turned
> on as well.
> 
> I will look into getting the numactl-devel package installed.
> 
> I will try the --bind-to none switch again. For some reason the 
> --hetero-nodes switch wasn't
> recognized by mpirun. Is the --hetero-nodes swtich an MCA parameter?

My bad - I forgot that you are using a very old OMPI version. I think you'll 
need to upgrade, though, as I don't believe something that old will know how to 
handle such a hybrid system. I suspect this may be at the bottom of the problem 
you are seeing.

You'll really need to get up to the 1.8 series, I'm afraid - I'm not sure even 
1.6 can handle this setup.

> 
> Thanks for your help.
> 
> -Bill Lane
> ________________________________________
> From: users [users-boun...@open-mpi.org] on behalf of Ralph Castain 
> [r...@open-mpi.org]
> Sent: Saturday, August 30, 2014 7:15 AM
> To: Open MPI Users
> Subject: Re: [OMPI users] Mpirun 1.5.4 problems when request > 28       slots 
>   (updated findings)
> 
> hwloc requires the numactl-devel package in addition to the numactl one
> 
> If I understand the email thread correctly, it sounds like you have at least 
> some nodes in your system that have fewer cores than others - is that correct?
> 
>>> Here are the definitions of the two parallel environments tested (with orte 
>>> always failing when
>>> more slots are requested than there are CPU cores on the first node 
>>> allocated to the job by
>>> SGE):
> 
> If that is the situation, then you need to add --hetero-nodes to your cmd 
> line so we look at the actual topology of every node. Otherwise, for 
> scalability reasons, we only look at the first node in the allocation and 
> assume all nodes are the same.
> 
> If that isn't the case, then it sounds like we are seeing fewer cores than 
> exist on the system for some reason. You could try installing hwloc 
> independently, and then running "lstopo" to find out what it detects. Another 
> thing you could do is add "-mca plm_base_verbose 100" to your cmd line (I 
> suggest doing that with just a couple of nodes in your allocation) and that 
> will dump the detected topology to stderr.
> 
> I'm surprised the bind-to none option didn't remove the error - it definitely 
> should as we won't be binding when that is given. However, I note that you 
> misspelled it in your reply, so maybe you just didn't type it correctly? It 
> is "--bind-to none" - note the space between the "to" and the "none". You'll 
> take a performance hit, but it should at least run.
> 
> 
> 
> On Aug 29, 2014, at 11:29 PM, Lane, William <william.l...@cshs.org> wrote:
> 
>> The --bind-to-none switch didn't help, I'm still getting the same errors.
>> 
>> The only NUMA package installed on the nodes in this CentOS 6.2 cluster is 
>> the
>> following:
>> 
>> numactl-2.0.7-3.el6.x86_64
>> this package is described as: numactl.x86_64 : Library for tuning for Non 
>> Uniform Memory Access machines
>> 
>> Since many of these systems are NUMA systems (with separate memory address 
>> spaces
>> for the sockets) could it be that the correct NUMA libraries aren't 
>> installed?
>> 
>> Here are some of the other NUMA packages available for CentOS 6.x:
>> 
>> yum search numa | less
>> 
>>               Loaded plugins: fastestmirror
>>               Loading mirror speeds from cached hostfile
>>               ============================== N/S Matched: numa 
>> ===============================
>>               numactl-devel.i686 : Development package for building 
>> Applications that use numa
>>               numactl-devel.x86_64 : Development package for building 
>> Applications that use
>>                                    : numa
>>               numad.x86_64 : NUMA user daemon
>>               numactl.i686 : Library for tuning for Non Uniform Memory 
>> Access machines
>>               numactl.x86_64 : Library for tuning for Non Uniform Memory 
>> Access machines
>> 
>> -Bill Lane
>> ________________________________________
>> From: users [users-boun...@open-mpi.org] on behalf of Reuti 
>> [re...@staff.uni-marburg.de]
>> Sent: Thursday, August 28, 2014 3:27 AM
>> To: Open MPI Users
>> Subject: Re: [OMPI users] Mpirun 1.5.4 problems when request > 28 slots 
>> (updated findings)
>> 
>> Am 28.08.2014 um 10:09 schrieb Lane, William:
>> 
>>> I have some updates on these issues and some test results as well.
>>> 
>>> We upgraded OpenMPI to the latest version 1.8.2, but when submitting jobs 
>>> via the SGE orte parallel environment received
>>> errors whenever more slots are requested than there are actual cores on the 
>>> first node allocated to the job.
>> 
>> Does "-bind-to none" help? The binding is switched on by default in Open MPI 
>> 1.8 onwards.
>> 
>> 
>>> The btl tcp,self switch passed to mpirun made significant differences in 
>>> performance as per the below:
>>> 
>>> Even with the oversubscribe option, the memory mapping errors still 
>>> persist. On 32 core nodes and with HPL run compiled for openmpi/1.8.2,  it 
>>> reliably starts failing at 20 cores allocated. Note that I tested with 'btl 
>>> tcp,self' defined and it does slow down the solve by 2 on a quick solve. 
>>> The results on a larger solve would probably be more dramatic:
>>> - Quick HPL 16 core with SM: ~19GFlops
>>> - Quick HPL 16 core without SM: ~10GFlops
>>> 
>>> Unfortunately, a recompiled HPL did not work, but it did give us more 
>>> information (error below). Still trying a couple things.
>>> 
>>> A request was made to bind to that would result in binding more
>>> processes than cpus on a resource:
>>> 
>>> Bind to:     CORE
>>> Node:        csclprd3-0-7
>>> #processes:  2
>>> #cpus:       1
>>> 
>>> You can override this protection by adding the "overload-allowed"
>>> option to your binding directive.
>>> 
>>> When using the SGE make parallel environment to submit jobs everything 
>>> worked perfectly.
>>> I noticed when using the make PE, the number of slots allocated from each 
>>> node to the job
>>> corresponded to the number of CPU's and disregarded any additional cores 
>>> within a CPU and
>>> any hyperthreading cores.
>> 
>> For SGE the hyperthreading cores count as normal cores. In principle it's 
>> possible to have an RQS defined in SGE (`qconf -srqsl`) which will limit the 
>> number of cores for the "make" PE, or (better) limit it in each exechost 
>> defintion to the physical installed ones (this is what I set up usually - 
>> maybe leaving hyperthreading switched on gives some room for the kernel 
>> processes this way).
>> 
>> 
>>> Here are the definitions of the two parallel environments tested (with orte 
>>> always failing when
>>> more slots are requested than there are CPU cores on the first node 
>>> allocated to the job by
>>> SGE):
>>> 
>>> [root@csclprd3 ~]# qconf -sp orte
>>> pe_name            orte
>>> slots              9999
>>> user_lists         NONE
>>> xuser_lists        NONE
>>> start_proc_args    /bin/true
>>> stop_proc_args     /bin/true
>>> allocation_rule    $fill_up
>>> control_slaves     TRUE
>>> job_is_first_task  FALSE
>>> urgency_slots      min
>>> accounting_summary TRUE
>>> qsort_args         NONE
>>> 
>>> [root@csclprd3 ~]# qconf -sp make
>>> pe_name            make
>>> slots              999
>>> user_lists         NONE
>>> xuser_lists        NONE
>>> start_proc_args    NONE
>>> stop_proc_args     NONE
>>> allocation_rule    $round_robin
>>> control_slaves     TRUE
>>> job_is_first_task  FALSE
>>> urgency_slots      min
>>> accounting_summary TRUE
>>> qsort_args         NONE
>>> 
>>> Although everything seems to work with the make PE, I'd still like
>>> to know why? Because on a much older version of openMPI loaded
>>> on an older version of CentOS, SGE and ROCKS, using all physical
>>> cores, as well as all hyperthreads was never a problem (even on NUMA
>>> nodes).
>>> 
>>> What is the recommended SGE parallel environment definition for
>>> OpenMPI 1.8.2?
>> 
>> Whether you prefer $fill_up or $round_robin is up to you - do you prefer all 
>> your processes on the least amount of machines or spread around in the 
>> cluster. If there is much communication maybe it's better on less machines, 
>> but if each process has heavy I/O to the local scratch disk spreading it 
>> around may be the preferred choice. This doesn't make any difference to Open 
>> MPI, as the generated $PE_HOSTFILE contains just the list of granted slots. 
>> Doing it in an $fill_up style will of course fill the first node including 
>> the hyperthreading ones before moving to the next machine (`man sge_pe`).
>> 
>> -- Reuti
>> 
>> 
>>> I apologize for the length of this, but I thought it best to provide more
>>> information than less.
>>> 
>>> Thank you in advance,
>>> 
>>> -Bill Lane
>>> 
>>> ________________________________________
>>> From: users [users-boun...@open-mpi.org] on behalf of Jeff Squyres 
>>> (jsquyres) [jsquy...@cisco.com]
>>> Sent: Friday, August 08, 2014 5:25 AM
>>> To: Open MPI User's List
>>> Subject: Re: [OMPI users] Mpirun 1.5.4  problems when request > 28 slots
>>> 
>>> On Aug 8, 2014, at 1:24 AM, Lane, William <william.l...@cshs.org> wrote:
>>> 
>>>> Using the "--mca btl tcp,self" switch to mpirun solved all the issues (in 
>>>> addition to
>>>> the requirement to include the --mca btl_tcp_if_include eth0 switch). I 
>>>> believe
>>>> the "--mca btl tcp,self" switch limits inter-process communication within 
>>>> a node to using the TCP
>>>> loopback rather than shared memory.
>>> 
>>> Correct.  You will not be using shared memory for MPI communication at all 
>>> -- just TCP.
>>> 
>>>> I should also point out that all of the nodes
>>>> on this cluster feature NUMA architecture.
>>>> 
>>>> Will using the "--mca btl tcp,self" switch to mpirun result in any 
>>>> degraded performance
>>>> issues over using shared memory?
>>> 
>>> Generally yes, but it depends on your application.  If your application 
>>> does very little MPI communication, then the difference between shared 
>>> memory and TCP is likely negligible.
>>> 
>>> I'd strongly suggest two things:
>>> 
>>> - Upgrade to at least Open MPI 1.6.5 (1.8.x would be better, if possible)
>>> - Run your program through a memory-checking debugger such as Valgrind
>>> 
>>> Seg faults like you initially described can be caused by errors in your MPI 
>>> application itself -- the fact that using TCP only (and not shared memory) 
>>> avoids the segvs does not mean that the issue is actually fixed; it may 
>>> well mean that the error is still there, but is happening in a case that 
>>> doesn't seem to cause enough damage to cause a segv.
>>> 
>>> --
>>> Jeff Squyres
>>> jsquy...@cisco.com
>>> For corporate legal information go to: 
>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>> 
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> Link to this post: 
>>> http://www.open-mpi.org/community/lists/users/2014/08/24951.php
>>> IMPORTANT WARNING: This message is intended for the use of the person or 
>>> entity to which it is addressed and may contain information that is 
>>> privileged and confidential, the disclosure of which is governed by 
>>> applicable law. If the reader of this message is not the intended 
>>> recipient, or the employee or agent responsible for delivering it to the 
>>> intended recipient, you are hereby notified that any dissemination, 
>>> distribution or copying of this information is STRICTLY PROHIBITED. If you 
>>> have received this message in error, please notify us immediately by 
>>> calling (310) 423-6428 and destroy the related message. Thank You for your 
>>> cooperation.
>>> 
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> Link to this post: 
>>> http://www.open-mpi.org/community/lists/users/2014/08/25176.php
>> 
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post: 
>> http://www.open-mpi.org/community/lists/users/2014/08/25179.php
>> IMPORTANT WARNING: This message is intended for the use of the person or 
>> entity to which it is addressed and may contain information that is 
>> privileged and confidential, the disclosure of which is governed by 
>> applicable law. If the reader of this message is not the intended recipient, 
>> or the employee or agent responsible for delivering it to the intended 
>> recipient, you are hereby notified that any dissemination, distribution or 
>> copying of this information is STRICTLY PROHIBITED. If you have received 
>> this message in error, please notify us immediately by calling (310) 
>> 423-6428 and destroy the related message. Thank You for your cooperation.
>> 
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post: 
>> http://www.open-mpi.org/community/lists/users/2014/08/25202.php
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post: 
> http://www.open-mpi.org/community/lists/users/2014/08/25203.php
> IMPORTANT WARNING: This message is intended for the use of the person or 
> entity to which it is addressed and may contain information that is 
> privileged and confidential, the disclosure of which is governed by 
> applicable law. If the reader of this message is not the intended recipient, 
> or the employee or agent responsible for delivering it to the intended 
> recipient, you are hereby notified that any dissemination, distribution or 
> copying of this information is STRICTLY PROHIBITED. If you have received this 
> message in error, please notify us immediately by calling (310) 423-6428 and 
> destroy the related message. Thank You for your cooperation.
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post: 
> http://www.open-mpi.org/community/lists/users/2014/09/25224.php

Reply via email to