Unified Parallel C - examples and list of extensions

Where can I find code examples written in "Unified Parallel C"?

I am also interested in regulatory documents about this language (standards, guides, online books and courses). What extensions were added in C to get UPC?

Is this dialect alive or dead?

+4
source share
3 answers

UPC is still alive as a research project at the University of California at Berkeley and is likely to be used by high-performance computing facilities and national laboratories affiliated with the research team. You can get the latest version released in November 2009 here . Documentation, sample code, etc. Can be found here . The language specification is here ; There are many extensions on top of the C99 syntax to support streams and cross-threading as first-class objects (perhaps not in the strict sense of โ€œfirst classโ€, but certainly more than in C, where you access opaque libraries for synchronization and communication).

UPC is still used in some places; I am not an expert, but I can say that using UPC consists of a GCC-based compiler, a runtime and a GASNet messaging layer that runs on top of your network stack. They seem to be relatively well supported on machine types for which you might need something like UPC. I would not call it a huge community of developers, but if you control a large parallel machine, you should do it. If you just want something to work on your laptop, desktop or server, there are many other parallel programming models with commercial support, tools, etc.

+3
source

In addition to UPC-based UPC implementations performed by UPC:

Translator Berkley UPC-to-C http://upc.lbl.gov/download/source.shtml as well as gcc-upc http://www.gccupc.org )

There are also HP compilers h30097.www3.hp.com/upc/ and Cray.

I believe that the versions of Cray and HP UPC have progress that are unsuccessful (which means that if you write spin-blocking style code, you must explicitly call bupc_relax to ensure runtime to predict the remote write, which will get you out of the loop)

+2
source

UPC is still very much alive in the HPC community.

A new version of the language / library specification 1.3 was released in November 2013 and is available here:

https://upc-lang.org/upc-documentation

Major UPC compilers will (or soon) release versions compatible with 1.3.

The UPC specification is written as โ€œdiffโ€ for the C99, so it's easy to see what has been added. At a high level, it linguistically contains several new keywords and some extensions to the type system to accommodate the PGAS memory model and language-level SPMD streaming. There is also a large (and growing) set of libraries to support the general HPC needs of UPC applications.

There is more information about UPC at:

http://upc.lbl.gov/

where you can download a free open source compiler that runs on a wide variety of systems. Downloading the runtime source includes a library of UPC examples, benchmarks, and test suites.

+2
source

Source: https://habr.com/ru/post/1303011/


All Articles