Chapter

Concurrency, Compositionality, and Correctness

Volume 5930 of the series Lecture Notes in Computer Science pp 162-184

A Proof System for a PGAS Language

  • Shivali AgarwalAffiliated withTata Institute of Fundamental Research
  • , R. K. ShyamasundarAffiliated withIndia Research Lab, IBM

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Due to advances in hardware architectures such as multi-core/multi-threaded architectures, various refinements of the parallel programming models such as distributed shared space, global address space and partitioned global address space (PGAS) etc., are widely prevalent in programming languages designed for high performance computing. In this paper, we shall discuss a preliminary work on a proof system for such a language. The language referred to as PGAS 0, is essentially an object-oriented language with features such as statically fixed set of places, asynchronous creation of activities, futures, atomics for synchronization etc. Many of the features of PGAS 0 are taken from the new experimental language X10 (built around Java) under design at IBM. The language distinguishes between local and remote data access with reference to threads. The atomic is the only construct that can be used for synchronization in PGAS 0 and is executed in a mutually exclusive manner at a place. One of the main safety properties of a PGAS 0 program is that a thread should not access non-local data object directly by dereferencing but use the construct future to obtain remote data. We shall describe the semantics of PGAS 0 and illustrate a proof system for the same with the motivation of establishing locality of data (an extremely useful from performance perspective). Further, we show how the same proof system can be used for establishing other concurrency properties.