Browse Prior Art Database

UPC Runtime Specializations Inlining

IP.com Disclosure Number: IPCOM000237529D
Publication Date: 2014-Jun-20
Document File: 2 page(s) / 36K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method to reduce or eliminate the overhead accrued by shared access during Unified Parallel C (UPC) runtime.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 01 of 2

UPC Runtime Specializations Inlining

Unified Parallel C (UPC) is a parallel extension of the C language, which allows shared variables and operations on those shared variables. Shared variables are allocated by the Partitioned Global Address Space (PGAS) runtime in the shared memory. An operation on a pointer to a shared entity needs to determine the owning thread , as well as the offset into the memory associated

with this thread. These computations are all performed by the PGAS runtime, and are generally expensive.

The compiler replaces the shared accesses in the executable with calls to the appropriate PGAS runtime functions . Each runtime pointer access function first identifies the specific address within the shared memory (the affinity thread which identifies the partition, and the actual offset within the partition), and then performs the appropriate operation (which can be a read/write or a pointer increment, the latter involving further computations in the shared space).

Thus, shared accesses involve three kinds of overhead: (1) the overhead of performing computations at runtime instead of compile time, (2) the overhead of the runtime function call and, (3) the overhead of doing generic, expensive mathematical operations such as modulo and divide. A method is needed to reduce or eliminate these three types of overhead .

The authors are not aware of any known solutions to this problem.

The novel contribution is a method to reduce or eliminate the overhead accrued by shared access . At compile ti...