Thanks Ralph,

 

There’s no MCA parameters in my environment at all. Here’s the contents of 
openmpi-mca-params.conf:

 

mpi_leave_pinned = 0

hwloc_base_binding_policy = core

rmaps_base_mapping_policy = core

hwloc_base_mem_alloc_policy = local_only

shmem_mmap_enable_nfs_warning = 0

pml = ^yalla

mtl = ^mxm

mtl_mxm_np = 0

coll = ^fca

coll_fca_enable = 1

coll_fca_np = 0

 

There are the same as for 1.10.0 (it’s a symlink to the same file). There’s 
nothing there that I can see that would cause it to think that I was asking for 
multiple CPUs per proc. Getting rid of all of the ‘policy’ options doesn’t 
change the behaviour, except it then says

 

[r51:18193] mca:rmaps:rr: mapping no-span by Socket for job [25745,1] slots 32 
num_procs 32

[r51:18193] mca:rmaps:rr: found 2 Socket objects on node r51

[r51:18193] mca:rmaps:rr: assigning proc to object 0

--------------------------------------------------------------------------

A request for multiple cpus-per-proc was given, but a directive

was also give to map to an object level that has less cpus than

requested ones:

 

  #cpus-per-proc:  1

  number of cpus:  0

  map-by:          BYSOCKET:NOOVERSUBSCRIBE

 

Please specify a mapping level that has more cpus, or else let us

define a default mapping that will allow multiple cpus-per-proc.

--------------------------------------------------------------------------

 

Forcing it to use ppr instead of rr with ppr:1:core:PE=1 using the MCA 
parameters above gives this:

 

[r51:18320] AVAILABLE NODES FOR MAPPING:

[r51:18320]     node: r51 daemon: 0

[r51:18320]     node: r58 daemon: 1

[r51:18320] mca:rmaps:base: computing vpids by slot for job [25616,1]

[r51:18320] mca:rmaps:base: assigning rank 0 to node r51

[r51:18320] mca:rmaps:base: assigning rank 1 to node r51

[r51:18320] mca:rmaps:base: assigning rank 2 to node r58

[r51:18320] mca:rmaps:base: assigning rank 3 to node r58

[r51:18320] mca:rmaps: compute bindings for job [25616,1] with policy CORE[4008]

[r51:18320] [[25616,0],0] reset_usage: node r51 has 2 procs on it

[r51:18320] [[25616,0],0] reset_usage: ignoring proc [[25616,1],0]

[r51:18320] [[25616,0],0] reset_usage: ignoring proc [[25616,1],1]

[r51:18320] [[25616,0],0] bind_depth: 6 map_depth 2

[r51:18320] mca:rmaps: bind downward for job [25616,1] with bindings CORE

--------------------------------------------------------------------------

While computing bindings, we found no available cpus on

the following node:

 

  Node:  r51

 

Please check your allocation.

--------------------------------------------------------------------------

 

(actually, it’s the regardless of if it’s socket, core, or node). If I get rid 
of the policy options as above, I get the original error.

 

However, if I do it outside of a PBS job (so no cgroup), it works as I would 
expect. So have there been any changes in the handling of cpusets?

 

Cheers,

Ben

 

 

From: users [mailto:users-boun...@open-mpi.org] On Behalf Of Ralph Castain
Sent: Friday, 29 January 2016 3:46 AM
To: Open MPI Users <us...@open-mpi.org>
Subject: Re: [OMPI users] Any changes to rmaps in 1.10.2?

 

I'm unaware of any change that would impact you here. For some reason, mpirun 
believes you are requesting multiple cpus-per-proc, and that seems to be the 
heart of the problem. Is there an MCA parameter in your environment or default 
param file, perhaps?

 

 

On Wed, Jan 27, 2016 at 2:57 PM, Ben Menadue <ben.mena...@nci.org.au 
<mailto:ben.mena...@nci.org.au> > wrote:

Hi,

Were there any changes to rmaps in going to 1.10.2? An otherwise-identical
setup that worked in 1.10.0 fails to launch in 1.10.2, complaining that
there's no CPUs available in a socket...

With 1.10.0:

$ /apps/openmpi/1.10.0/bin/mpirun -np 2 -mca rmaps_base_verbose 1000
hostname
[r47:18709] mca: base: components_register: registering rmaps components
[r47:18709] mca: base: components_register: found loaded component resilient
[r47:18709] mca: base: components_register: component resilient register
function successful
[r47:18709] mca: base: components_register: found loaded component rank_file
[r47:18709] mca: base: components_register: component rank_file register
function successful
[r47:18709] mca: base: components_register: found loaded component staged
[r47:18709] mca: base: components_register: component staged has no register
or open function
[r47:18709] mca: base: components_register: found loaded component ppr
[r47:18709] mca: base: components_register: component ppr register function
successful
[r47:18709] mca: base: components_register: found loaded component seq
[r47:18709] mca: base: components_register: component seq register function
successful
[r47:18709] mca: base: components_register: found loaded component
round_robin
[r47:18709] mca: base: components_register: component round_robin register
function successful
[r47:18709] mca: base: components_register: found loaded component mindist
[r47:18709] mca: base: components_register: component mindist register
function successful
[r47:18709] [[63529,0],0] rmaps:base set policy with core
[r47:18709] mca: base: components_open: opening rmaps components
[r47:18709] mca: base: components_open: found loaded component resilient
[r47:18709] mca: base: components_open: component resilient open function
successful
[r47:18709] mca: base: components_open: found loaded component rank_file
[r47:18709] mca: base: components_open: component rank_file open function
successful
[r47:18709] mca: base: components_open: found loaded component staged
[r47:18709] mca: base: components_open: component staged open function
successful
[r47:18709] mca: base: components_open: found loaded component ppr
[r47:18709] mca: base: components_open: component ppr open function
successful
[r47:18709] mca: base: components_open: found loaded component seq
[r47:18709] mca: base: components_open: component seq open function
successful
[r47:18709] mca: base: components_open: found loaded component round_robin
[r47:18709] mca: base: components_open: component round_robin open function
successful
[r47:18709] mca: base: components_open: found loaded component mindist
[r47:18709] mca: base: components_open: component mindist open function
successful
[r47:18709] mca:rmaps:select: checking available component resilient
[r47:18709] mca:rmaps:select: Querying component [resilient]
[r47:18709] mca:rmaps:select: checking available component rank_file
[r47:18709] mca:rmaps:select: Querying component [rank_file]
[r47:18709] mca:rmaps:select: checking available component staged
[r47:18709] mca:rmaps:select: Querying component [staged]
[r47:18709] mca:rmaps:select: checking available component ppr
[r47:18709] mca:rmaps:select: Querying component [ppr]
[r47:18709] mca:rmaps:select: checking available component seq
[r47:18709] mca:rmaps:select: Querying component [seq]
[r47:18709] mca:rmaps:select: checking available component round_robin
[r47:18709] mca:rmaps:select: Querying component [round_robin]
[r47:18709] mca:rmaps:select: checking available component mindist
[r47:18709] mca:rmaps:select: Querying component [mindist]
[r47:18709] [[63529,0],0]: Final mapper priorities
[r47:18709]     Mapper: ppr Priority: 90
[r47:18709]     Mapper: seq Priority: 60
[r47:18709]     Mapper: resilient Priority: 40
[r47:18709]     Mapper: mindist Priority: 20
[r47:18709]     Mapper: round_robin Priority: 10
[r47:18709]     Mapper: staged Priority: 5
[r47:18709]     Mapper: rank_file Priority: 0
[r47:18709] mca:rmaps: mapping job [63529,1]
[r47:18709] mca:rmaps: creating new map for job [63529,1]
[r47:18709] mca:rmaps: nprocs 2
[r47:18709] mca:rmaps mapping given - using default
[r47:18709] mca:rmaps:ppr: job [63529,1] not using ppr mapper
[r47:18709] mca:rmaps:seq: job [63529,1] not using seq mapper
[r47:18709] mca:rmaps:resilient: cannot perform initial map of job [63529,1]
- no fault groups
[r47:18709] mca:rmaps:mindist: job [63529,1] not using mindist mapper
[r47:18709] mca:rmaps:rr: mapping job [63529,1]
[r47:18709] AVAILABLE NODES FOR MAPPING:
[r47:18709]     node: r47 daemon: 0
[r47:18709]     node: r57 daemon: 1
[r47:18709]     node: r58 daemon: 2
[r47:18709]     node: r59 daemon: 3
[r47:18709] mca:rmaps:rr: mapping no-span by Core for job [63529,1] slots 64
num_procs 2
[r47:18709] mca:rmaps:rr: found 16 Core objects on node r47
[r47:18709] mca:rmaps:rr: assigning proc to object 0
[r47:18709] mca:rmaps:rr: assigning proc to object 1
[r47:18709] mca:rmaps: computing ranks by core for job [63529,1]
[r47:18709] mca:rmaps:rank_by: found 16 objects on node r47 with 2 procs
[r47:18709] mca:rmaps:rank_by: assigned rank 0
[r47:18709] mca:rmaps:rank_by: assigned rank 1
[r47:18709] mca:rmaps:rank_by: found 16 objects on node r57 with 0 procs
[r47:18709] mca:rmaps:rank_by: found 16 objects on node r58 with 0 procs
[r47:18709] mca:rmaps:rank_by: found 16 objects on node r59 with 0 procs
[r47:18709] mca:rmaps: compute bindings for job [63529,1] with policy
CORE[4008]
[r47:18709] mca:rmaps: bindings for job [63529,1] - bind in place
[r47:18709] mca:rmaps: bind in place for job [63529,1] with bindings CORE
[r47:18709] [[63529,0],0] reset_usage: node r47 has 2 procs on it
[r47:18709] [[63529,0],0] reset_usage: ignoring proc [[63529,1],0]
[r47:18709] [[63529,0],0] reset_usage: ignoring proc [[63529,1],1]
[r47:18709] BINDING PROC [[63529,1],0] TO Core NUMBER 0
[r47:18709] [[63529,0],0] BOUND PROC [[63529,1],0] TO 0[Core:0] on node r47
[r47:18709] BINDING PROC [[63529,1],1] TO Core NUMBER 1
[r47:18709] [[63529,0],0] BOUND PROC [[63529,1],1] TO 1[Core:1] on node r47
r47
r47
[r47:18709] mca: base: close: component resilient closed
[r47:18709] mca: base: close: unloading component resilient
[r47:18709] mca: base: close: component rank_file closed
[r47:18709] mca: base: close: unloading component rank_file
[r47:18709] mca: base: close: component staged closed
[r47:18709] mca: base: close: unloading component staged
[r47:18709] mca: base: close: component ppr closed
[r47:18709] mca: base: close: unloading component ppr
[r47:18709] mca: base: close: component seq closed
[r47:18709] mca: base: close: unloading component seq
[r47:18709] mca: base: close: component round_robin closed
[r47:18709] mca: base: close: unloading component round_robin
[r47:18709] mca: base: close: component mindist closed
[r47:18709] mca: base: close: unloading component mindist

With 1.10.2:

$ /apps/openmpi/1.10.2/bin/mpirun -np 2 -mca rmaps_base_verbose 1000
hostname
[r47:18733] mca: base: components_register: registering rmaps components
[r47:18733] mca: base: components_register: found loaded component resilient
[r47:18733] mca: base: components_register: component resilient register
function successful
[r47:18733] mca: base: components_register: found loaded component rank_file
[r47:18733] mca: base: components_register: component rank_file register
function successful
[r47:18733] mca: base: components_register: found loaded component staged
[r47:18733] mca: base: components_register: component staged has no register
or open function
[r47:18733] mca: base: components_register: found loaded component ppr
[r47:18733] mca: base: components_register: component ppr register function
successful
[r47:18733] mca: base: components_register: found loaded component seq
[r47:18733] mca: base: components_register: component seq register function
successful
[r47:18733] mca: base: components_register: found loaded component
round_robin
[r47:18733] mca: base: components_register: component round_robin register
function successful
[r47:18733] mca: base: components_register: found loaded component mindist
[r47:18733] mca: base: components_register: component mindist register
function successful
[r47:18733] [[63505,0],0] rmaps:base set policy with core
[r47:18733] mca: base: components_open: opening rmaps components
[r47:18733] mca: base: components_open: found loaded component resilient
[r47:18733] mca: base: components_open: component resilient open function
successful
[r47:18733] mca: base: components_open: found loaded component rank_file
[r47:18733] mca: base: components_open: component rank_file open function
successful
[r47:18733] mca: base: components_open: found loaded component staged
[r47:18733] mca: base: components_open: component staged open function
successful
[r47:18733] mca: base: components_open: found loaded component ppr
[r47:18733] mca: base: components_open: component ppr open function
successful
[r47:18733] mca: base: components_open: found loaded component seq
[r47:18733] mca: base: components_open: component seq open function
successful
[r47:18733] mca: base: components_open: found loaded component round_robin
[r47:18733] mca: base: components_open: component round_robin open function
successful
[r47:18733] mca: base: components_open: found loaded component mindist
[r47:18733] mca: base: components_open: component mindist open function
successful
[r47:18733] mca:rmaps:select: checking available component resilient
[r47:18733] mca:rmaps:select: Querying component [resilient]
[r47:18733] mca:rmaps:select: checking available component rank_file
[r47:18733] mca:rmaps:select: Querying component [rank_file]
[r47:18733] mca:rmaps:select: checking available component staged
[r47:18733] mca:rmaps:select: Querying component [staged]
[r47:18733] mca:rmaps:select: checking available component ppr
[r47:18733] mca:rmaps:select: Querying component [ppr]
[r47:18733] mca:rmaps:select: checking available component seq
[r47:18733] mca:rmaps:select: Querying component [seq]
[r47:18733] mca:rmaps:select: checking available component round_robin
[r47:18733] mca:rmaps:select: Querying component [round_robin]
[r47:18733] mca:rmaps:select: checking available component mindist
[r47:18733] mca:rmaps:select: Querying component [mindist]
[r47:18733] [[63505,0],0]: Final mapper priorities
[r47:18733]     Mapper: ppr Priority: 90
[r47:18733]     Mapper: seq Priority: 60
[r47:18733]     Mapper: resilient Priority: 40
[r47:18733]     Mapper: mindist Priority: 20
[r47:18733]     Mapper: round_robin Priority: 10
[r47:18733]     Mapper: staged Priority: 5
[r47:18733]     Mapper: rank_file Priority: 0
[r47:18733] mca:rmaps: mapping job [63505,1]
[r47:18733] mca:rmaps: creating new map for job [63505,1]
[r47:18733] mca:rmaps: nprocs 2
[r47:18733] mca:rmaps mapping given - using default
[r47:18733] mca:rmaps:ppr: job [63505,1] not using ppr mapper
[r47:18733] mca:rmaps:seq: job [63505,1] not using seq mapper
[r47:18733] mca:rmaps:resilient: cannot perform initial map of job [63505,1]
- no fault groups
[r47:18733] mca:rmaps:mindist: job [63505,1] not using mindist mapper
[r47:18733] mca:rmaps:rr: mapping job [63505,1]
[r47:18733] AVAILABLE NODES FOR MAPPING:
[r47:18733]     node: r47 daemon: 0
[r47:18733]     node: r57 daemon: 1
[r47:18733]     node: r58 daemon: 2
[r47:18733]     node: r59 daemon: 3
[r47:18733] mca:rmaps:rr: mapping no-span by Core for job [63505,1] slots 64
num_procs 2
[r47:18733] mca:rmaps:rr: found 16 Core objects on node r47
[r47:18733] mca:rmaps:rr: assigning proc to object 0
--------------------------------------------------------------------------
A request for multiple cpus-per-proc was given, but a directive
was also give to map to an object level that has less cpus than
requested ones:

  #cpus-per-proc:  1
  number of cpus:  0
  map-by:          BYCORE:NOOVERSUBSCRIBE

Please specify a mapping level that has more cpus, or else let us
define a default mapping that will allow multiple cpus-per-proc.
--------------------------------------------------------------------------
[r47:18733] mca: base: close: component resilient closed
[r47:18733] mca: base: close: unloading component resilient
[r47:18733] mca: base: close: component rank_file closed
[r47:18733] mca: base: close: unloading component rank_file
[r47:18733] mca: base: close: component staged closed
[r47:18733] mca: base: close: unloading component staged
[r47:18733] mca: base: close: component ppr closed
[r47:18733] mca: base: close: unloading component ppr
[r47:18733] mca: base: close: component seq closed
[r47:18733] mca: base: close: unloading component seq
[r47:18733] mca: base: close: component round_robin closed
[r47:18733] mca: base: close: unloading component round_robin
[r47:18733] mca: base: close: component mindist closed
[r47:18733] mca: base: close: unloading component mindist

There are both in the same PBS Pro job. And the cpuset definitely has all
cores available:

$ cat /cgroup/cpuset/pbspro/4347646.r-man2/cpuset.cpus
0-15

Is there something here I'm missing?

Cheers,
Ben


_______________________________________________
users mailing list
us...@open-mpi.org <mailto: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/2016/01/28393.php

 

Reply via email to