Hi guys, I'm really confused about *slots* in resource allocation: I thought that slots are the number of processes spawnable in a certain node, so it should correspond to the number of Processing Elements of the node. For example, on each of my nodes I have 2 processors, total 16 cores with hyperthreading, so a total of 32 processing elements per node (i.e. 32 hw threads). However, considering a single node, passing in the hostfile 32 slots and requesting "-np 32" results is a performance degradation of 20x slower than using only "-np 16". The problem disappears specifing --map-by hwthread.
Investigating on the problem I found these counterintuitive things: - here <https://www.open-mpi.org/faq/?category=running#slots-without-hostfiles> is stated "*slots* are Open MPI's representation of how many processors are available" - here <https://www.open-mpi.org/doc/v1.10/man1/mpirun.1.php#sect6> is stated "Slots indicate how many processes can potentially execute on a node. For best performance, the number of slots may be chosen to be the number of cores on the node or the number of processor sockets" - I tried to remove the slots information from the hostfile, so according to this <https://www.open-mpi.org/faq/?category=running#slots-without-hostfiles> should be interpreted as "1", but it spawns anyway 32 processes - I'm not sure what --map-by and --rank-by do In custom RAS we are developing, what we have to send to mpirun? The number of processor sockets, the number of cores or the number of hwthread available? How --map-by and --rank-by affect the spawn policy? Thank you! OFFTOPIC: is someone going to EuroMPI 2016 in September? We will be there to present our migration technique. Cheers, Federico __ Federico Reghenzani M.Eng. Student @ Politecnico di Milano Computer Science and Engineering