-------------------------------------------------------------------------- Cross-compile build instructions for Cray XC: These platforms are only supported using cross-compilers, because for various reasons the compute nodes cannot run the C compiler and associated machinery. 1. cd into the top source directory 2. symlink the appropriate cross configure script into your top-level source dir: Cray XC: (Aries network hardware) with SLURM (srun): ln -s gasnet/other/contrib/cross-configure-cray-aries-slurm . with ALPS (aprun): ln -s gasnet/other/contrib/cross-configure-cray-aries-alps . 3. open the cross-configure script in an editor and edit the values as necessary to match your system's compiler paths (the defaults are normally correct): - CC and MPI_CC should both be set to the working MPI compiler for the *target* architecture. - MPIRUN_CMD might need tweaking based on your job system setup - HOST_CC needs to be set to a working C compiler for the *host* architecture, as it's used to build binaries used by upcc during UPC compilation. - The C++ compiler is not used on these systems, so that setting can be ignored. Also check the script for any target-specific notes (at the top of the file). 4. cd into your desired build directory (must not be the source directory) 5. set environment for the desired compiler Cray X*: Load the desired PrgEnv-* and craype-* environment modules 6. run the cross-configure script and pass in any desired options, eg: ../srcdir/cross-configure-cray-aries-slurm --enable-mpi --prefix=/path/to/install 7. build (and optionally install) as usual: gmake ; gmake install -------------------------------------------------------------------------- Cross-compile build instructions for Intel Xeon Phi: A cross-configure script is provided for Knights Landing (aka KNL). While it is often possible to compile directly on these systems, it may be faster or more convenient to cross-compile. The basic instructions are the same as given above for systems which support only cross-compilation, with the following additions to items 2 and 5: 2. ln -s gasnet/other/contrib/cross-configure-intel-knl . 5. Make sure the Intel compilers (icc and icpc) and Intel MPI (mpiicc) are in your $PATH. -------------------------------------------------------------------------- Generic cross-compile build instructions: If your system is not listed above as a supported cross-compilation system, you may still be able to make it work yourself with the following generic instructions -- note that while Berkeley UPC is quite portable, for obvious reasons we don't guarantee it will work out of the box on machine types we've never tried before. 1. Follow the generic cross-compilation instructions in: gasnet/other/cross-configure-help.c during which you'll create a cross-configure script in your top-level source directory. [NOTE: We currently don't distribute the cross-configure-help.c in our normal distribution. If you think you need it, contact us at upc@lbl.gov] 2. Edit the cross-configure script to ensure it correctly reflects the characteristics of the target architecture. - CC (and MPI_CC for mpi conduit) need to be set to appropriate working compilers for the *target* architecture. - HOST_CC needs to be set to a working C compiler for the *host* architecture, as it's used to build binaries used by upcc during UPC compilation. - The C++ compiler is not currently used for Berkeley UPC (assuming you're not trying to use udp-conduit), so that setting can be ignored. 3. Run cross-configure with the same options you'd pass to configure, as described in the regular build instructions. eg: ../srcdir/cross-configure --enable-mpi --prefix=/path/to/install 4. build (and optionally install) as usual, eg: gmake ; gmake install --------------------------------------------------------------------------