Personal tools
You are here: Home Software CAF Examples
Document Actions

Examples

by admin last modified 2007-12-11 00:16

Co-Array Fortran Sample Programs

Downloading the Sources

To reduce the effort needed to distribute the Co-Array Fortran Sample Programs (caf-programs), we have opted to distribute it in source form only. Source files for the programs are distributed via anonymous CVS checkout.

  1. To retrieve the source files from CVS, you will need to download hipersoft-anonssh an ssh script that contains a key that will grant you read-only access to the Hipersoft CVS repositories at Rice University. Save this script in ${HOME}/bin/hipersoft-anonssh and change permissions to make it executable.

  2. Set up the required CVS environment variables to enable you to access the caf-programs repository.

    (csh variants) setenv CVS_RSH ${HOME}/bin/hipersoft-anonssh
    setenv CVSROOT :ext:anoncvs@koolkat2.cs.rice.edu:/Volumes/cvsrep/developer

    (sh variants)
    export CVS_RSH=${HOME}/bin/hipersoft-anonssh
    export CVSROOT=:ext:anoncvs@koolkat2.cs.rice.edu:/Volumes/cvsrep/developer

  3. Use CVS to check out the CAFC sources using the command

    cvs co caf-programs

External Packages

caf-programs need the following external packages: the Rice Co-Array Fortran Compiler (CAFC), MPI and possibly other vendor-specific communication libraries, such as GM and Quadrics.

CAFC Notes:
Review the instructions on downloading and installing CAFC.

MPI Notes:
Downloaded MPICH. Information about vendor MPI implementations can be obtained from vendors' web sites.


Building caf-programs

  1. Change to the caf-programs directory
    cd caf-programs
  2. Generate the configure script
    autoconf
  3. Run the configure script. Use configure --help for all available options. The most important options are

    --with-cafc CAF compiler
    --with-mpi MPI root
    --with-gm Myrinet GM root (if necessary)
    --with-VendorCXX vendor C++ compiler
    --with-VendorF90=PATH path to Fortran compiler (/usr/local/bin/f90)

    The configure script will try to infer the vendor C, C++ and Fortran 90 compilers. The default values are:

    - Linux (IA32): gcc, g++, ifc
    - Linux (IA64): gcc, g++, efc
    - Alpha : cc, cxx, f90
    - IRIX64 : cc, CC, f90
  4. Build the unit tests:
    cd TestSuite
    cd barrier; make; cd -
    cd cafsum; make; cd -
    cd ccafsum; make; cd -
    cd dcafsum; make; cd -
    cd synchteam;make; cd -
    cd ..
  5. Build the CAF implementation of the NAS benchmarks (based on version 2.3) MG, CG, BT and SP:

    cd NPB-2.3
    cd MG-CAF; make CLASS= NPROCS= ; cd -
    cd CG-CAF; make CLASS= NPROCS= ; cd -
    cd BT-CAF; make CLASS= NPROCS= ; cd -
    cd SP-CAF; make CLASS= NPROCS= ; cd -
    cd -

    This will create executables in the NPB-2.3/bin directory.
  6. Build the MPI implementation of the NAS benchmarks 2.3 MG, CG, BT and SP:

    cd NPB-2.3
    cd MG; make CLASS= NPROCS= ; cd -
    cd CG; make CLASS= NPROCS= ; cd -
    cd BT; make CLASS= NPROCS= ; cd -
    cd SP; make CLASS= NPROCS= ; cd -
    cd -

    This will create executables in the NPB-2.3/bin directory.
  7. Build the sequential implementation of the NAS benchmarks 2.3 MG, CG, BT and SP:

    cd NPB-2.3-SER
    cd MG; make CLASS= ; cd -
    cd CG; make CLASS= ; cd -
    cd BT; make CLASS= ; cd -
    cd SP; make CLASS= ; cd -
    cd -

    This will create executables in the NPB-2.3-SER/bin directory.

We would welcome any advice on the compilation/linking flags for various vendor compilers that lead to the highest performance of these codes.

« September 2010 »
Su Mo Tu We Th Fr Sa
1234
567891011
12131415161718
19202122232425
2627282930
 

Powered by Plone

LACSI Collaborators include:

Rice University LANL UH UNM UIUC UNC UTK