Gilles: Thank you for your reply. Unfortunately, it did not quite help me.
As I said in my e-mail, I can run this on a Mac by only specifying $mympirun -np 12 $exe input1 without worrying about “slots”. So, my questions are: 1. Why do I need “slot” on the Linux? 2. Is there a relation between slots, sockets, cores and threads? The workstation has 1 socket, 8 cores per socket and 2 threads per core, or 16 CPUs. How many slots are there? 3. If I need to specify “slot”, what is the syntax? I tried: $mympirun -np 12 slots=12 $exe input1 and got: ====================================================== No protocol specified -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 12 slots that were requested by the application: slots=12 Either request fewer slots for your application, or make more slots available for use. ====================================================== Finally, I made it work by using $mympirun -np 12 --use-hwthread-cpus $exe input1 and ignored all the slot options, so I missed the chance to learn about slots. I did not find an example on how to specify the “slot” although the message lists four options - four options but zero examples. Thank you, Paul > On Nov 7, 2020, at 8:23 PM, Gilles Gouaillardet via users > <users@lists.open-mpi.org> wrote: > > Paul, > > a "slot" is explicitly defined in the error message you copy/pasted: > > "If none of a hostfile, the --host command line parameter, or an RM is > present, Open MPI defaults to the number of processor cores" > > The error message also lists 4 ways on how you can move forward, but > you should first ask yourself if you really want to run 12 MPI tasks > on your machine. > > Cheers, > > Gilles > > On Sun, Nov 8, 2020 at 11:14 AM Paul Cizmas via users > <users@lists.open-mpi.org> wrote: >> >> Hello: >> >> I just installed OpenMPI 4.0.5 on a Linux machine running Pop!_OS (made by >> System76). The workstation has the following architecture: >> >> Architecture: x86_64 >> CPU op-mode(s): 32-bit, 64-bit >> Byte Order: Little Endian >> Address sizes: 39 bits physical, 48 bits virtual >> CPU(s): 16 >> On-line CPU(s) list: 0-15 >> Thread(s) per core: 2 >> Core(s) per socket: 8 >> Socket(s): 1 >> NUMA node(s): 1 >> Vendor ID: GenuineIntel >> CPU family: 6 >> >> I am trying to run on the Linux box a code that I usually run on a Mac OS >> without any issues. >> >> The script that I use is: >> >> exe='/usr/bin/mycode' # on jp2 >> mympirun='/opt/openmpi/4.0.5/bin/mpirun' # GFortran on jp2 >> $mympirun -np 12 $exe input1 >> >> I get the following error: >> ==================================================== >> No protocol specified >> -------------------------------------------------------------------------- >> There are not enough slots available in the system to satisfy the 12 >> slots that were requested by the application: >> >> /usr/bin/mycode >> >> Either request fewer slots for your application, or make more slots >> available for use. >> >> A "slot" is the Open MPI term for an allocatable unit where we can >> launch a process. The number of slots available are defined by the >> environment in which Open MPI processes are run: >> >> 1. Hostfile, via "slots=N" clauses (N defaults to number of >> processor cores if not provided) >> 2. The --host command line parameter, via a ":N" suffix on the >> hostname (N defaults to 1 if not provided) >> 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) >> 4. If none of a hostfile, the --host command line parameter, or an >> RM is present, Open MPI defaults to the number of processor cores >> >> In all the above cases, if you want Open MPI to default to the number >> of hardware threads instead of the number of processor cores, use the >> --use-hwthread-cpus option. >> >> Alternatively, you can use the --oversubscribe option to ignore the >> number of available slots when deciding the number of processes to >> launch. >> ======================================================= >> >> I do not understand “slots”. The architecture description of my Linux box >> lists sockets, cores and threads, but not slots. >> >> What shall I specify instead of "-np 12”? >> >> Thank you, >> Paul