Ralph H. Castain wrote: > I confess to confusion. OpenMPI will by default map your processes in > a round-robin fashion based on process slot. If you are in a resource > managed environment (e.g., TM or SLURM), then the slots correspond to > cores. If you are in an unmanaged environment, then your hostfile > needs to specify a single hostname, and the slots=x number should > reflect the total number of cores on your machine.
> If you then set mpi_paffinity_alone=1, OMPI will bind each rank to its > associated core. > Is that not what you are trying to do? > Ralph I probably didn't explain myself well. In this case, the system is not running a resource manager like SLURM. It is running Linux. If I run numactl --hardware, then I get: available: 8 nodes (0-7) node 0 cpus: 0 1 2 3 node 1 cpus: 4 5 6 7 node 3 cpus: 12 13 14 15 node 4 cpus: 16 17 18 19 node 5 cpus: 20 21 22 23 node 6 cpus: 24 25 26 27 node 7 cpus: 28 29 30 31 where I've elided the memory-related output as well as the node distances. Just to reiterate, each node here is an AMD processor, part of the 8-way system; there is no IP networking going on. What I'd like is, if start a job with mpirun -np 16 <executablename>, these 16 MPI processes get allocated on continuous "cpus" in numactl parlance, e.g. cpus 0-15, or 12-27, etc. As it stands, if I check the cpus allocated to the aforementioned -np 16 job, I see various cores active on multiple sockets, but I don't see whole sockets (all 4 cores) active at a time on this job. Does this make more sense? -- V. Ram v_r_...@fastmail.fm -- http://www.fastmail.fm - A no graphics, no pop-ups email service