TR-08-01 MAESTRO: Program Thread and Synchronizaton Interface (version 0.1)

Allan Porterfield. MAESTRO: Program Thread and Synchronizaton Interface (version 0.1) Technical Report TR-08-01, RENCI, North Carolina, March 2008.

The MAESTRO API is intended to support a simple thread programming model for compilers and other automated tools. It is not expected to be visible to application programmers. MAESTRO must support other programming models, such as MPI and OpenMP, ef?ciently. The goal is to provide light weight threads than can run quickly and ef?ciently on a dynamic number of hardware resources running within a single address space. MAESTRO allows more threads to be created than resources exist and is responsible for mapping the work to existing resources. The goal is to allow easier parallel programming and porting between different machines by removing, knowledge of system size from the application. MAESTRO supplies explicit thread and parallel loop creation and uses an explicit join point for thread synchronization. In addition the MAESTRO API has a variety of synchronization mechanisms, ranging from optimistic point-to-point though global barriers. This draft is expected to be heavily modi?ed as initial implementation shows the numerous shortfalls.

@TECHREPORT{LFRT2008:tr0801,
AUTHOR = {Allan Porterfield},
TITLE = {MAESTRO: Program Thread and Synchronization Interface, version 0.1},
INSTITUTION = {RENCI},
YEAR = {2008},
NUMBER = {TR-08-01},
ADDRESS = {North Carolina},
MONTH = {March},
ABSTRACT = {The MAESTRO API is intended to support a simple thread programming model for compilers and other automated tools. It is not expected to be visible to application programmers. MAESTRO must support other programming models, such as MPI and OpenMP, ef?ciently. The goal is to provide light weight threads than can run quickly and ef?ciently on a dynamic number of hardware resources running within a single address space. MAESTRO allows more threads to be created than resources exist and is responsible for mapping the work to existing resources. The goal is to allow easier parallel programming and porting between different machines by removing, knowledge of system size from the application. MAESTRO supplies explicit thread and parallel loop creation and uses an explicit join point for thread synchronization. In addition the MAESTRO API has a variety of synchronization mechanisms, ranging from optimistic point-to-point though global barriers. This draft is expected to be heavily modi?ed as initial implementation shows the numerous shortfalls.},
URL = {http://www.renci.org/publications/techreports/TR0801.pdf}
}