This is version 5.2.0.1 of the GCC-based implementation
of a compiler for the UPC programming language.
This release is based on GCC version 5.2.0 and has been tested
on the following configurations:
- Intel (Xeon) (64/32 bit)
- AMD (Opteron) (64/32 bit)
- Intel i686 (32 bit)
- PowerPC (Power7/Power8) (64/32 bit)
Installing from the Source Release
The bzip'ed source tar file contains the source code that can be
configured and installed on any of the supported systems.
Please visit GCC's prerequisites page
http://gcc.gnu.org/install/prerequisites.html for the list of various
tools and packages that are used in the build procedure.
To configure and install from the source release use the following steps:
(1) Download and unpack the source bzip'ed tar file (assume that
source, build, and release directory are located under $HOME/upc)
cd $HOME
mkdir upc upc/download upc/src upc/wrk upc/rls
cd $HOME/upc/download
wget 'http://www.gccupc.org/downloads/upc/rls/upc-5.2.0.1/upc-5.2.0.1.src.tar.bz2'
cd $HOME/upc/src
tar xpjf $HOME/upc/download/upc-5.2.0.1.src.tar.bz2
(2) Configure source release
cd $HOME/upc/wrk
$HOME/upc/src/upc-5.2.0.1/configure --prefix=$HOME/gupc/rls [...]
The GCC UPC 5.2.0.1 configuration script accepts various options that affect
runtime, code size, and execution efficiency:
General Configuration Options
--prefix=dirname
Specify the top-level installation directory. This is the recommended
method to install the tools into a directory other than the default.
The top-level installation directory defaults to '/usr/local'.
For GUPC we recommend '/usr/local/gupc].
[default: /usr/local]
--[enable|disable]-bootstrap
By default, GUPC will be built in three stages, where in the last stage
the built compiler compiles itself. Bootstrapping is a useful method of
verifying that the compiler is operational, but it takes three times as
long to build the compiler. Specifying --disable-bootstrap reduces
build time to 1/3 of the default build time.
[default: enabled]
--[enable|disable]-checking
Primarily intended as an aid to developers, the checking switch
enables various internal checks within the GUPC compiler. Compilations
will be slower, but the checking can help catch bugs in the compiler's
internal logic.
[default: disabled]
--[enable|disable]-multilib
Build alternate library versions (e.g. 32-bit libraries
on the 64-bit system).
[default: enabled]
UPC Compiler Configuration Options
--[enable|disable]-upc-link-script
Enable UPC's use of a custom linker script; this will define the
UPC shared section as a no load section on targets where this
feature is supported (requires GNU LD).
[default: enabled]
--with-upc-pts={struct,packed}
Choose the representation of a UPC pointer-to-shared.
[default: packed]
--with-upc-pts-vaddr-order={last,first}
Choose position of the address field used in the UPC pointer-to-shared
representation.
[default: first]
--with-upc-pts-packed-bits=phase,thread,vaddr
Choose bit distribution in the packed UPC pointer-to-shared
representation.
[default: 20,10,34]
--enable-upc-link-script
Enable UPC's use of a custom linker script; this will define the
UPC shared section as a no load section on targets where this
feature is supported (requires GNU LD).
[default=yes]
UPC Runtime Configuration Options
--with-upc-runtime-max-locks=MAX_LOCKS
Specify the maximum number of locks that can be held by
a single UPC thread (at the same time).
[default: 1024]
--with-upc-runtime-tree-fanout=WIDTH
Specify the maximum number of children in each sub-tree
used to implement UPC collective operations
(e. g., upc_barrier).
[default: 4]
--with-upc-runtime=MODEL
Specify the runtime implementation model for UPC, where MODEL
may be: 'SMP' (Symmetric Multiprocessing) or 'Portals4'
(Infiniband with Portals 4.0 Reference Library).
[default='SMP']
UPC SMP Runtime Configuration Options
--[enable|disable]-upc-backtrace
Enable stack frame backtrace report when UPC runtime fatal
errors occur or by user request (via signal)
[default: enabled]
--[enable|disable]-upc-backtrace-gdb
Enable the use of GDB for UPC stack backtrace
[default: enabled]
--[enable|disable]-upc-backtrace-signal
Enable signal support for UPC stack backtrace
[default: enabled]
--with-upc-backtrace-gdb=GDB
Specify which GDB to use for UPC backtrace support
[default: gdb]
--with-upc-backtrace-signal=SIGNAL
Specify the signal to be used for UPC stack backtrace
[default: SIGUSR1]
--with-bfd=PATH
Specify prefix directory for the installed BFD
library needed to provide extended UPC backtrace
information (source file name and line numbers);
equivalent to --with-bfd-include=PATH/include plus
--with-bfd-lib=PATH/lib
--with-bfd-include=PATH
Specify directory for installed BFD include files
--with-bfd-lib=PATH
Specify directory for the installed BFD library
UPC Portals4 Runtime Configuration Options
--enable-upc-runtime-stats
Enable internal UPC runtime statistics collection support; these
statistics count the number of various significant internal
operations, and dump those counts into a per-process statistics file.
[default=no]
--enable-upc-runtime-trace
Enable internal UPC runtime trace collection support; a runtime
trace is a time stamped log that records various significant
internal events; this trace is written to a per-process log file.
[default=no]
--enable-upc-runtime-debug
Enable UPC runtime debugging mode, where more expensive internal
checks are implemented, and conservative algorithms are used
that reduce the degree of parallelism, and that exercise less
complex/sophisticated operations provided by the operating
system and/or the network communication packages called by
the UPC runtime. In addition, conservative compilation options
will be used to build the runtime, and debugging symbols will be
generated.
[default=no]
--enable-upc-triggered-runtime-ops
Enable UPC runtime support for Portals4 triggered operations.
[default=yes]
--enable-upc-node-local-mem
Enable UPC runtime support optimization for accessing shared
memory of the node local threads. [default=yes]
--with-portals4=PATH
Specify prefix directory for installed Portals4 library package.
Equivalent to --with-portals4-include=PATH/include plus
--with-portals4-lib=PATH/lib.
--with-portals4-include=PATH
Specify directory for installed Portals4 include files.
--with-portals4-lib=PATH
Specify directory for the installed Portals4 library.
--with-upc-runtime-pte-base=BASE
Specify the base index of the first Portals4 PTE
used by the UPC runtime. [default=16]
--with-upc-runtime-bounce-buffer-size=SIZE
Specify the size (in bytes) of the bounce buffer that is
used by the UPC runtime to buffer network data. [default=256K]
--with-upc-runtime-tree-fanout=WIDTH
Specify the maximum number of children in each sub-tree
used to implement UPC collective operations
(e. g., upc_barrier and upc_global_alloc). [default=2]
--with-upc-node-local-mem=SHMEM
Specify type of shared memory used for node local memory
accesses. Possible options are "posix" for POSIX Shared
Memory or "mmap" for file based mmap-ed memory. [default=posix]
(3) Build the binary release and install
make -j4 >make.log 2>&1
make install >install.log 2>&1
(4) Place $HOME/gupc/rls/bin in your shell's PATH variable,
and the GNU UPC compiler is ready to use.
The 'gupc' command invokes the compiler.