Andrew --

One must distinguish between threads and MPI processes.  They are different things.

One may do computations with P MPI processes and N OpenMP threads per process; for example https://openmp.org/wp-content/uploads/HybridPP_Slides.pdf

By using mpiexec you are setting the number of MPI processes.  Each MPI process has an independent memory space.  By contrast OpenMP threads share a memory.  (And I just exhausted my knowledge of OpenMP threads.)

In any case, running

export OMP_NUM_THREADS=N
mpiexec -n P ./program.py

might yield a hybrid computation which you want.

Ed



On Mon, Aug 2, 2021 at 3:57 PM Andrew Hicks <ahick17@lsu.edu> wrote:

Dear Firedrake,

 

I recently tried to run Firedrake using “mpiexec -n 80”, so 80 threads, to improve performance. But I got the warning “OMP_NUM_THREADS is not set or is set to a value greater than 1, we suggest setting OMP_NUM_THREADS=1 to improve performance” which doesn’t really make sense in my mind since I want 80 threads. Perhaps I am misunderstanding what’s going on here.

 

So, is this a problem, and if so, how can I set OMP_NUM_THREADS=1?

 

Andrew Hicks

_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake


--
Ed Bueler
Dept of Mathematics and Statistics
University of Alaska Fairbanks
Fairbanks, AK 99775-6660
306C Chapman