Hello Erik, all,
Unfortunately, hwloc does not choose the number of MPI processes or OpenMP threads. It seems that you are starting 2 MPI processes with 4 threads each, which are 8 threads altogether, and which over-subscribes the cores you allocated to the VM. hwloc then warns about this, which is correct.
True.
The number of threads is chosen via Simfactory. You probably need to update the machine description's default number of OpenMP threads.
Well actually, I was not using simfactory to run the test, only to compile the executable. Thinking about this now, I think I was simply not looking at this correctly. Since OMP_NUM_THREADS was not set I got 4 threads (as many as there are cores which is the OpenMP default) per process. However since I was running 2 MPI processes I was obviously oversubscribing. This had nothing to do with SMT or virtual machines. The error was sitting right in front of the keyboard.
It is a good idea to let hwloc choose the number of OpenMP threads. We should introduce an option for this! Please open a feature request.
Oh, I had no intention claiming that hwloc is doing anything wrong. A feature request has been created.
Yours, Roland