User Manual

HPC FeaturesRev 2.2-1.0.1
Mellanox Technologies
154
Figure 5: FCA Components
After MLNX_OFED installation, FCA can be found at /opt/mellanox/fca folder.
For further information on configuration instructions, please refer to the FCA User Manual.
5.6 ScalableUPC
Unified Parallel C (UPC) is an extension of the C programming language designed for high per-
formance computing on large-scale parallel machines.The language provides a uniform program-
ming model for both shared and distributed memory hardware. 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. 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.
In order to express parallelism, UPC extends ISO C 99 with the following constructs:
An explicitly parallel execution model
A shared address space
Synchronization primitives and a memory consistency model
Memory management primitives
The UPC language evolved from experiences with three other earlier languages that proposed
parallel extensions to ISO C 99:
AC, Split-C, and Parallel C Preprocessor (PCP). UPC is not a
superset of these three languages, but rather an attempt to distill the best characteristics of each.
UPC combines the programmability advantages of the shared memory programming paradigm
and the control over data layout and performance of the message passing programming para-
digm.
Mellanox ScalableUPC is based on Berkely UPC package (see http://upc.lbl.gov/) and contains
the following enhancements:
GasNet library used within UPC integrated with Mellanox FCA which off-loads from
UPC collective operations.
For further information on FCA, please refer to the Mellanox website.