GNU Unified Parallel C (GUPC)

GUPC Logo

The GNU UPC project implements a compilation and execution environment for programs written in the UPC (Unified Parallel C) language. The GNU UPC compiler extends the capabilities of GCC. The GUPC compiler is implemented as a C Language dialect translator, in a fashion similar to the implementation of the GNU Objective C compiler.

Project Goal

To encourage the use and adoption of UPC, GUPC provides a free, generally available implementation of the UPC language dialect. By implementing UPC, GUPC provides a high-level tool for creating software targeted at parallel architectures. The UPC language makes it easier to express algorithms that run on parallel, High Performance Computing (HPC) systems.

The GUPC release includes a support library, libupc, and extensions to the "C" parser that recognizes the UPC language syntax.

Features

Supported Platforms

At this time, GUPC has been tested on the following platforms:

If you would like to learn of future ports to other platforms, or would like to discuss the feasibility of implementing GUPC on a platform of interest to you, we recommend that you join the GUPC discussion list.

Download

The latest release of GUPC is available for download.

Alternatively, you can access the GUPC branch in the GCC sources.

The GNU UPC Discussion List

The GNU UPC Discussion list provides a forum for tracking the status of UPC compilers based on the GNU GCC compiler. Announcements of new compiler ports, future plans, as well as known problems will be posted to the GUPC discussion list. To subscribe to the GNU UPC list, send an email message to gcc-upc-request@hermes.gwu.edu with the single word "subscribe" (without the quotes) in the body of the message.

Contributing

We encourage everyone to contribute changes and help test GUPC. GUPC is currently on a development branch.

Reporting Bugs

Bugs in GUPC should be reported to the GCC bug tracker. Please add "UPC" to the keywords field in the bug report.

Status

February 28, 2010

Merged with the current GCC trunk, and checked into the gupc branch.