Download Cluster OpenMP User`s Guide
Transcript
Cluster OpenMP* 12 Technical Issues This chapter provides technical details on Cluster OpenMP*. 12.1 How a Cluster OpenMP* Program Works In the following description, the assumption is that the Cluster OpenMP program is running on a cluster with one process per node. Each sharable page is represented by a set of associated pages, one on each process. Each such page is at the same virtual address within each process. The access protection of each sharable page is managed according to a protocol within each process, based on the accesses made to the page by that process, and the accesses made to the associated pages on the other processes. The basic idea of the protocol is that whenever a page is not fully up-to-date with respect to the associated pages on other processes, the page is protected against reading and writing. Then, whenever your program accesses the page in any way, the protection is violated, the Cluster OpenMP library gets notified of the protection failure, and it sends messages to the other processes to get the current up-to-date version of the page. When the data is received from the other processes and the page is brought up-to-date, the protection is removed, the instruction that accessed the page in the first place is re-started and this time the access succeeds. In order for each process to know which other processes modified which pages, information about the modifications is exchanged between the processes. At crossthread synchronizations (barriers and lock synchronizations), information is exchanged about which pages were modified since the last cross-thread synchronization. This information is in the form of a set of write notices. A write notice gives the page number that a process wrote to and the vector time stamp of the write. The vector time stamp is an array of synchronization epoch values, one per process in the system. A particular process increments its epoch value each time it synchronizes with at least one other process. The epoch values on that process for all the other processes in the system represent the epoch values of each at the last synchronization point between that process and the current process. The vector time stamps are associated with a sharable page to show the state of the information on that page with respect to each process. This enables the process to check to see whether it needs updated information from a given process for a given page. 62 Document Number: 309076-003US