IBM®
Skip to main content
    United States change      Terms of use
 
 
Select a scope:    
     Home      Products      Services & industry solutions      Support & downloads      My account     
alphaWorks  >  Systems management  >  

IBM XL UPC Compilers

A compiler with implementation for Unified Parallel C (UPC) High-Performance Computing (HPC) applications on large-scale, parallel processing machines.


Date Posted: November 14, 2005
OverviewRequirements Download FAQs Forum Reviews

Update: September 24, 2008

Version 10.1 adds UPC-specific optimization capabilities to the XL UPC compiler for AIX and Linux, as well as numerous functionality improvements.

What are the IBM XL UPC Compilers?

The IBM® XL Alpha Edition UPC compilers are a technology showcase of the Unified Parallel C (UPC) language, Version 1.2, supporting IBM System p® systems running AIX®, Linux® and Blue Gene®. The IBM XL UPC compilers build on the well-known strength of the IBM XL compiler family and a scalable run-time system designed and implemented as a collaboration between IBM's compiler technology group in Toronto and IBM Watson Research.

Partitioned Global Address Space (PGAS) languages such as UPC are increasingly seen as a convenient way to enhance programmer productivity for High-Performance Computing (HPC) applications on large-scale machines. As the Defense Advanced Research Projects Agency (DARPA) High Productivity Computing Systems (HPCS) initiative illustrates, the cost of programming large-scale machines is becoming increasingly important; thus, programmer productivity is a major factor in procurement decisions by many HPC customers. This technology is tangible evidence of IBM's continued commitment to the HPC community.

IBM's XL UPC Alpha Edition compilers are optimizing compilers providing extensive diagnostics and compilation-time syntax checking of UPC constructs. This new version incorporates performance optimizations, such as privatization of shared accesses and upc_forall loop optimizations, into the high-level optimizer. These optimizations are performed on the same intermediate representation that the optimizer uses for the Fortran, C, and C++ languages. Traditional loop optimizations are also enabled.

The UPC run-time system has been designed for scalability to large, parallel machines, such as IBM's Blue Gene/L supercomputer. It exposes to the compiler an API that is uniform across several implementations: shared memory (Pthreads) and two types of distributed memory (LAPI and the Blue Gene/L message layer). A development version of the IBM XL UPC compiler was used on a Blue Gene/L system to participate in the HPC Challenge Class II Competition, sharing the prize for the "Class 2: Most Productivity" award in both 2005 and 2006.

This alpha release is a functional release for the shared-memory implementation on AIX and Linux and the distributed-memory implementation on AIX and Linux. In addition to functionality improvements, the updated release delivers UPC optimizations designed to exploit the locality information provided by the upc_forall affinity expression and to reduce the communication overhead of UPC applications. The performance of the generated code will vary and may not be optimal at this time, but work continues on functional and performance improvements. In addition, a reference implementation of the UPC collectives is provided as part of this release.

How does it work?

While within an HPC/large-scale, parallel environment running AIX, Linux, or Blue Gene/L, users would simply compile and link their UPC code with the compiler (xlupc or bgxlupc on Blue Gene/L) and have an appropriate executable file generated. The resulting executable file can then be used in HPC environments.

The following is an example of using xlupc on AIX:

% /usr/upc/bin/xlupc hello.upc -o hello [command to compile code]
% export UPC_NTHREADS=5
% ./hello


About the technology author(s):
The development of the IBM XL UPC Compilers is a collaborative effort among researchers from the following IBM labs:

  • IBM Toronto Software Development Lab (Software Group)
  • IBM T. J. Watson Research Center, Yorktown, N. Y. (Research Group)


Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
IBM, AIX, System p, and Blue Gene are trademarks of IBM Corporation in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.

Download now Download now

Related technologies

For platform(s):
Linux, AIX V5.x

For topics:
APIs, Compilers, high-performance computing (HPC), IBM Blue Gene/L architecture, IBM eServer pSeries, Unified Parallel C (UPC)


 

    About IBM Privacy Contact