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.