Skip to content

Releases: Intrepid/GUPC

GNU UPC 5.2.0.1

02 May 04:59
f480e0a
Compare
Choose a tag to compare

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.