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