SoftwareCompilersLibraries Applications Tools & Utilities Software by PlatformFranklinBassi Jacquard DaVinci PDSF HPSS Affiliated CollectionsACTS Collection |
Unified Parallel C (UPC) at NERSCUPC is supported on a number of platforms at NERSC and the below documentation gives basic instructions for running UPC programs. For more detailed UPC information please see the Berkeley UPC Project webpage and the UPC language website. ContentsIntroductionUnified Parallel C is a partitioned global address space (PGAS) language and an extension of the C programming language. It is designed for HPC systems and allows the programmer to view a single shared partitioned address space where each variable is associated with a single processor, but can be directly read and written by any processor. Although not a language specification, low overhead, one sided communication models are important for obtaining good performance results from UPC codes whose programming paradigm facilitates low level communication transactions. See the GASNet webpage for more information about the low level networking layer used in UPC implementations. UPC on FranklinProgramming EnvironmentsUPC is available on Franklin through programming environment software modules. Use the following command to use PGI UPC environment: Franklin% module swap PrgEnv-pgi PrgEnv-upc-pgi Compile code with: Franklin% upcc -o UPCProg UPCProg.c Franklin% module swap PrgEnv-pgi PrgEnv-upc-pgi The Intrepid GCC/UPC source-to-assembly front end is available in the GNU UPC programming environment only and can be access by adding the -gccupc flag to the compile line. Franklin% upcc -gccupc -o UPCProg UPCProg.c
#PBS -q debug #PBS -l mppwidth=2 #PBS -l mppnppn=1 #PBS -l walltime=00:10:00 #PBS -j eo #PBS -V cd $PBS_O_WORKDIR upcrun -n 2 -N 2 ./UPCProg Use the upcrun command to run jobs. This example uses the default 2 processors per node. #PBS -q debug #PBS -l mppwidth=2 #PBS -l walltime=00:10:00 #PBS -j eo #PBS -V cd $PBS_O_WORKDIR upcrun -n 2 -N 1 ./UPCProg Pthreads and upcrun options
UPC on JacquardOn Jacquard to use UPC, load the UPC module, provided by the Berkeley UPC Group. Jacquard% module load upc
Compile code with: Jacquard% upcc -o UPCProg UPCProg.c
Batch ScriptBelow is an example batch script to run a UPC program on Jacquard. Note the upcrun command which is used in place of mpirun#PBS -l nodes=8:ppn=1,walltime=00:30:00 #PBS -N UPCTest #PBS -o UPCTest.out #PBS -e UPCTest.err #PBS -q debug #PBS -V cd $PBS_O_WORKDIR upcrun -n 8 -nodes 8 ./UPCProg Some tips for running on Jacquard:
UPC on BassiUPC on Bassi is not currently working. We expect to install a fix shortly. Trouble ShootingReport problems to: consult@nersc.gov |
![]() |
Page last modified: Mon, 28 Jan 2008 19:21:18 GMT Page URL: http://www.nersc.gov/nusers/resources/software/upc.php Web contact: webmaster@nersc.gov Computing questions: consult@nersc.gov Privacy and Security Notice |
![]() |