


The latter is able to take advantage of advanced communications functionality of the Cray Aries interconnect on Cori, such as remote direct memory access (RDMA).īUPC is available via the bupc module on Cori, which provides both the upcc compiler wrapper, as well as the upcrun launcher wrapper (which correctly initializes the environment and calls srun).
Berkeley upc memory model portable#
Berkeley UPC ¶īerkeley UPC (BUPC) provides a portable UPC programming environment consisting of a source translation front-end (which in turn relies on a user-supplied C compiler underneath) and a runtime library based on GASNet. UPC is supported on NERSC systems through two different implementations: Berkeley UPC and Cray UPC. Here is a good training video tutorial on UPC. The Berkeley UPC project is one implementation. UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor. The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor. The language provides a uniform programming model for both shared and distributed memory hardware. Unified Parallel C (UPC) is an extension of the C programming language designed for high performance computing on large-scale parallel machines.
