Advanced Message Passing and Threading Issues
Today the challenge of programming currentmachines on the Top500 is a well understood problem. The next generation of super-computers will include hundreds of thousands of processors, each one composed of by several semi-specialized cores. From a pure performance view point such architectures appear very promising, even if the most suitable programming methods from the users view point have yet to be discovered. Currently both message passing and threading techniques each have their own domain and occasionally they are used together. Future architectures will force users to always combine these programming paradigms until new languages or better compilers become available.
The current trend in HPC area is toward clusters of multi-core processors exhibiting a deep hierarchical memory model. Simultaneously, some classes of application require a variable number of processors during their execution time. The latest version of the MPI standard introduces several advanced topics that fit well in these environments, this includes threading and process management which when combined allow for much better potential performance in future systems.