TY - GEN
T1 - The design of MPI based distributed shared memory systems to support OpenMP on clusters
AU - Wong, H'Sien J.
AU - Rendell, A. P.
PY - 2007
Y1 - 2007
N2 - OpenMP can be supported in cluster environments by using distributed shared memory (DSM) systems. A portable approach for building DSM systems is to layer it on MPI. With these goals in mind, this paper makes two contributions. The first is a discussion about two software DSM systems that we have implemented using MPI. One uses background polling threads while the other uses processes that are driven only by incoming MPI messages. Comparisons of the two approaches show the latter to be a more scalable architecture that is better suited for the multi-core processors that are becoming commonplace. The second contribution recognizes that a common workaround for sub-team synchronizations in OpenMP is to use the flush directive on shared variables within busy-wait loops. In such a situation, only the flush in the last iteration of the busy-wait loop will result in the conditions necessary for exiting the loop. Thus transfer of the shared value need only be done if there were changes. We implement in our DSM a flush mechanism that eliminates the unnecessary data transfers entirely without any additional support or hints from the programmer.
AB - OpenMP can be supported in cluster environments by using distributed shared memory (DSM) systems. A portable approach for building DSM systems is to layer it on MPI. With these goals in mind, this paper makes two contributions. The first is a discussion about two software DSM systems that we have implemented using MPI. One uses background polling threads while the other uses processes that are driven only by incoming MPI messages. Comparisons of the two approaches show the latter to be a more scalable architecture that is better suited for the multi-core processors that are becoming commonplace. The second contribution recognizes that a common workaround for sub-team synchronizations in OpenMP is to use the flush directive on shared variables within busy-wait loops. In such a situation, only the flush in the last iteration of the busy-wait loop will result in the conditions necessary for exiting the loop. Thus transfer of the shared value need only be done if there were changes. We implement in our DSM a flush mechanism that eliminates the unnecessary data transfers entirely without any additional support or hints from the programmer.
UR - http://www.scopus.com/inward/record.url?scp=53349128614&partnerID=8YFLogxK
U2 - 10.1109/CLUSTR.2007.4629236
DO - 10.1109/CLUSTR.2007.4629236
M3 - Conference contribution
SN - 1424413885
SN - 9781424413881
T3 - Proceedings - IEEE International Conference on Cluster Computing, ICCC
SP - 231
EP - 240
BT - Proceedings - 2007 IEEE International Conference on Cluster Computing, CLUSTER 2007
T2 - 2007 IEEE International Conference on Cluster Computing, CLUSTER 2007
Y2 - 19 September 2007 through 20 September 2007
ER -