As part of my research, I developped multiple pieces of software that are available as open source.
During my PhD, I developped PIOMan in the PM2 software suite. PIOMan is a generic I/O manager, designed to deal with interactions between communication and multi-threading. It guarantees a good level of reactivity by working closely with the Marcel threads scheduler. It is able to automatically choose between active polling and blocking calls depending on the context, and may offload I/O requests to idle cores when availble to handle multiple requests in parallel and overlap communication and computation. [www]
NewMadeleine a communication library for high speed networks. NewMadeleine embeds an optimizing scheduler SchedOpt that targets applications with irregular, multi-flow communication schemes such as found in the increasingly common application conglomerates made of multiple programming environments and coupled pieces of code, for instance. SchedOpt itself is easily extensible through the concepts of optimization strategies (what to optimize for, what the optimization goal is) expressed in terms of tactics (how to optimize to reach the optimization goal). Tactics themselves are made of basic communication flows operations such as packet merging or reordering.
The communication library is fully multi-threaded through its close integration with PIOMan. It manages concurrent communication operations from multiple libraries and from multiple threads. Its MPI implementation Mad-MPI fully supports the MPI_THREAD_MULTIPLE multi-threading level. [www]
Modifié le 9 février 2015