I am not aware of the solution of Nest for managing the communication between process and
thread. I would like to learn more about it for adapting the interface with the actual
solution. If someone can answer some of my questions :
The interaction between MPI and threads has evolved somewhat over time and is described in
a series of papers, especially Plesser et al (2007), Kunkel et al (2012), Kunkel et al
(2014) and Jordan et al (2018), where the last paper describes the status in NEST 2.16 and
later. But throughout we have limited the responsibility for MPI communication to the
1) By looking at the initialization of the MPI, I saw Nest use the MPI_THREAD_FUNNELED for
the level of thread support.
What is the reason for it?
2) This level of thread support surprise me because I suppose that it will overload one
thread with all the MPI calls.
Why do you do not choose the level MPI_THREAD_SERIALIZED?
The key reason for this is simplicity, simply fewer degrees of freedom to need to keep
under control if MPI communication is kept to thread 0.
3) I would like to have different levels for thread support. Do you think it's
We would need to think *very* carefully about this.
Thank you in advance for your answer,
PS: The reference to the different MPI thread support :
NEST Users mailing list --
To unsubscribe send an email to
Prof. Dr. Hans Ekkehard Plesser
Head, Data Science Section
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560