[LBNL]

Berkeley UPC - Unified Parallel C

(A joint project of LBNL and UC Berkeley)
[UCB]

Home
Downloads
Documentation
Bugs
Publications
Demos
Contact
Internal

Berkeley UPC downloads


Berkeley UPC Documentation
Berkeley UPC Site-wide
Entire Web

Latest News

May 5, 2014: Berkeley UPC 2.18.2 released!


Downloading and installing Berkeley UPC

There are several ways to get Berkeley UPC running on your system:

  1. If you are running [WIN] Microsoft Windows or [MAC] Apple OS X, you can download a binary installer for your machine.
  2. You can build from source. There are several ways to do this depending on what option(s) you want for UPC-to-C translation.
    1. HTTP-based Berkeley UPC-to-C (BUPC) translator (default)
      Download only our runtime source distribution and build it by following the instructions. By default, our 'upcc' compiler driver will transparently use our HTTP-based public UPC-to-C translator during compilation. This is the easiest and quickest way to build from source.
    2. Locally-built Berkeley UPC-to-C (BUPC) translator
      Alternatively, you can download both the runtime and our UPC-to-C translator, build and install both the translator and the runtime while configuring the runtime to use your build of the translator. This allows you to compile UPC code without being connected to the Internet, and may also result in slightly faster compilation times.
    3. Locally-built GNU UPC (GUPC) compiler
      You can download both the runtime and the GNU UPC binary compiler, build and install both while configuring the runtime to use your GNU UPC installation. With this configuration, the Berkeley 'upcc' script is used as the front end, but uses the GNU UPC 'upc' compiler to actually compile. The resulting executables are automatically linked to the Berkeley UPC runtime library, and can thus run over any of our supported networks, using our normal 'upcrun' job spawner.
    4. Locally-built Clang-base UPC-to-C (CUPC2C) translator
      You can download both the runtime and the clang-upc2c translator, build and install both while configuring the runtime to use your clang-upc2c installation. With this configuration, the Berkeley 'upcc' script is used as the front end, but uses 'clang-upc2c' to peform the source-to-source translation.
    Additionally, one can choose to build two or more of BUPC, GUPC or CUPC2C and setup the upcc driver to select a translator based on compile-time arguments. More detailed instructions for all of these options are contained in the runtime's INSTALL.TXT.


Supported platforms

Berkeley UPC has been tested and is known to work on the following system configurations:

Platform Characteristic: Tested/supported configurations
Network Hardware / API SMP, MPI 1.1 and higher, Ethernet UDP, OpenIB InfiniBand verbs, Mellanox InfiniBand MXM API, Portals 4.x API, Cray XE/XK Gemini Cray XC30 Aries IBM PAMI (for IBM Power 775, BlueGene/Q and others), SHMEM (for SGI Altix systems)
Operating Systems Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Microsoft Windows, Mac OS X, various compute-node kernels
CPU / System Architecture x86, Itanium, Opteron, Athlon, PowerPC, MIPS, SPARC v8+, Cray XD1, Cray XT series, Cray XE & XK series, Cray XC30, SGI Altix, IBM BlueBene/Q, IBM Power 775, Playstation3.
C compiler GNU GCC, Intel C, Portland Group C, SunPro C, HP C, IBM VisualAge C, Cray C, Pathscale C, LLVM Clang, Open64

Most combinations of the platforms above are supported and functional, and other unlisted platforms may work as well. See the GASNet README for the specific combinations that we've personally tested. Many of the systems listed above support both a vendor-specific C compiler and can also use gcc as the underlying C compiler - we generally recommend the vendor C compiler for performance reasons.

Note: on some of these platforms, the Berkeley UPC runtime builds, but the Berkeley UPC-to-C translator does not. When this is the case, network access to our public HTTP-based translator (or to a remote HTTP/SSH translator you set up) is needed to build UPC programs. See here for a list of platforms where the translator is known to work.

We are interested in supporting Berkeley UPC on as wide a variety of parallel systems as possible. If your system or network is not supported, and you are willing to let us use your resources for development, please contact us.


Licensing

The Berkeley UPC suite is comprised entirely of open source code. Different licenses are used for different components, however: For more information, see the LICENSE files in the source distributions.


Known bugs and limitations

A list of known bugs and limitations in the current implementation is kept in the Berkeley UPC User's Guide.


Feedback

If you encounter a bug, please go to our Bugzilla server and enter a new bug report it if the issue is not already in our database.

You may also send email to our mailing list for UPC users:

We are interested in supporting the runtime on as wide a variety of parallel systems as possible. If your system or network is not supported, and you are willing to let us use your resources for development, please contact us.

We very much appreciate your feedback.


Home
Downloads
Documentation
Bugs
Publications
Demos
Contact
Internal

This page last modified on Monday, 05-May-2014 16:37:30 PDT