Hi, On multi-socket/multicore nodes, MPI+OpenMP programming model is pretty successful. This is the primary programming model we have now in Cactus. However, when one wants to granulize beyond loops either by coding up a thread manager oneself or using a matured thread manager, at some point, one will have to deal with global variables in Cactus (both flesh and some thorns).
There are several methods to make those global variables thread-safe (see http://charm.cs.illinois.edu/newPapers/11-23/paper.pdf) In a ticket submitted a couple weeks ago, we tried to take the thread local storage (TLS) based approach to deal with global variables in Cactus (flesh and thorns used for testing). https://trac.einsteintoolkit.org/ticket/1618 Although it is not urgent to push anything in the development version of Cactus at this point, it will be good to start the discussion and come up with a systematic approach to deal with the global variables in Cactus now. The patch attached in the ticket marked the places where the attention should be paid and proposed quick fixes. It is open to discussion about how to make those fixes fit in Cactus though. Regards, Jian _______________________________________________ Developers mailing list [email protected] http://www.cactuscode.org/mailman/listinfo/developers
