Dear Lionel,

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 master thread.

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 possible ?

We would need to think *very* carefully about this.

Hans Ekkehard

Thank you in advance for your answer,

Kusch Lionel

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