Compiling
Table of Contents
General
The C, C++, and Fortran compilers used on Phoenix are Cray compilers. Multiple versions of the compilers are available at any given time via modules. Do a
module avail
to see what versions are available and a
pe-version
to see what your current default is. Note that if you want to change versions, it is probably best to change programming environment (PE) versions rather than just cftn versions; in this way, you will get compilers and libraries that are definitely compatible. See switching modules.
A brief overview of a node on Phoenix is presented below.
- One node contains four MSPs.
- One MSP contains four single-streaming processors (SSPs).
| Node | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MSP 0 | MSP 1 | MSP 2 | MSP 3 | ||||||||||||
| SSP 0 | SSP 1 | SSP 0 | SSP 1 | SSP 0 | SSP 1 | SSP 0 | SSP 1 | ||||||||
| SSP 2 | SSP 3 | SSP 2 | SSP 3 | SSP 2 | SSP 3 | SSP 2 | SSP 3 | ||||||||
Compiler options can be used to do the following:
- Build in SSP or MSP mode.
- Control streaming and vectorization levels.
Cross-Compiler
Because interactive use on phoenix may be slow, NCCS has configured a system for compiling, “robin,” that is available to all NCCS X1E users. Robin is an Linux system containing 4 dual-core AMD Opteron processors and 32GB of memory and is intended to be used as a front end for phoenix. Because the central processing units (CPUs) on robin and phoenix are different, users are actually performing a cross-compilation.
From robin, you can do the following:
- Compile for Phoenix.
- Submit and monitor Phoenix batch jobs.
- Run MOAB commands such as checkjob and showq.
- Access Phoenix scratch areas.
- Have access to common Linux commands and tools such as Emacs that might not be available on Phoenix.
Items that cannot be accomplised from Robin are as follows:
- Commands performed on compiled executables such as
ar
and
file
must be performed from Phoenix.
- Executables created with the compiler wrappers
cc
CC
and
ftn
must be executed from Phoenix.
-
aprun
can be used only on Phoenix.
- Interactive batch jobs such as
qsub -I
cannot be launched from Robin.
Unless otherwise noted, all of the Portable Batch System (PBS) commands described on this page work on Robin. We recommend that you use Robin instead of Phoenix for interactive work whenever possible.