-
Notifications
You must be signed in to change notification settings - Fork 1
site docs
This document provides usage instructions for installations of UPC++ at various computing centers.
Stable installs are available through environment modules. A wrapper is used
to transparently dispatch commands such as upcxx to an install appropriate to
the current PrgEnv-{intel,gnu} and craype-{haswell,mic-knl} environment
modules.
Example:
cori$ module load upcxx
cori$ upcxx --version
UPC++ version 20190900L / gex-2019.9.0
Copyright (c) 2019, The Regents of the University of California,
through Lawrence Berkeley National Laboratory.
https://upcxx.lbl.gov
icpc (ICC) 19.0.3.199 20190206
Copyright (C) 1985-2019 Intel Corporation. All rights reserved.
cori$ upcxx -O hello-world.cpp -o hello-world.x
cori$ salloc -C haswell -q interactive --nodes 2
salloc: Granted job allocation 25463201
salloc: Waiting for resource configuration
salloc: Nodes nid000[98-99] are ready for job
nid00098$ upcxx-run -n 4 -N 2 ./hello-world.x
Hello world from process 0 out of 4 processes
Hello world from process 2 out of 4 processes
Hello world from process 1 out of 4 processes
Hello world from process 3 out of 4 processes
Stable installs are available through environment modules, though not (yet) as
well integrated as on Cori. One must module use ... to add a non-default
directory to the MODULEPATH, and the module load ... must be explicit about
a version (2019.9.0) and compiler (gcc-6.4.0 or pgi-19.4). These issues
will be automated-away in the future.
Note the compiler must match the currently loaded compiler module, and that UPC++ does not yet work with the IBM XL compilers (the default compiler family on Summit).
Example:
summit$ module use /gpfs/alpine/world-shared/csc296/summit/modulefiles
summit$ module load gcc
summit$ module load upcxx/2019.9.0/gcc-6.4.0
summit$ upcxx -V
UPC++ version 20190900L / gex-2019.9.0
Copyright (c) 2019, The Regents of the University of California,
through Lawrence Berkeley National Laboratory.
https://upcxx.lbl.gov
g++ (GCC) 6.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
summit$ upcxx -O hello-world.cpp -o hello-world.x
summit$ bsub -W 5 -nnodes 4 -P [project] -Is bash
Job <714297> is submitted to default queue <batch>.
<<Waiting for dispatch ...>>
<<Starting on batch2>>
bash-4.2$ upcxx-run -n4 ./hello-world.x
Hello world from process 0 out of 4 processes
Hello world from process 2 out of 4 processes
Hello world from process 3 out of 4 processes
Hello world from process 1 out of 4 processes