Building on Jaguar

From Tau Wiki
Jump to: navigation, search

This is a short guide to building and using TAU on Jaguar (http://www.nccs.gov/computing-resources/jaguar/).

Jaguar is a Cray XT4 system currently running Compute Node Linux (CNL) OS.

Step 1. Acquire Sources

mkdir TAU
cd TAU
wget http://tau.uoregon.edu/tau.tgz
wget http://tau.uoregon.edu/pdt.tgz

Step 2. Build PDT

tar -xzf pdt.tar.gz
cd pdtoolkit*
./configure -GNU
make install -j
cd ..

Step 3. Build TAU

tar -xzf tau.tgz
cd tau*
./installtau -arch=craycnl -mpi -pdt=/sw/xt5/tau/2.18.1/cnl2.1_pgi7.2.5/pdtoolkit-3.14.1  -pdt_c++=g++ -papi=/opt/xt-tools/papi/papi/v23/xt-cnl -opari


Validation on Jaguar

Our test validate program ran on 2008-11-06 with the following results. The test script is as follows:

#!/bin/bash -x

source /opt/modules/default/etc/modules.sh

PDTURL=http://www.nic.uoregon.edu/~amorris/regression/checkouts/pdtoolkit.tar.gz
TAUURL=http://www.nic.uoregon.edu/~amorris/regression/checkouts/tau2.tar.gz 
PDTNAME=pdtoolkit
TAUNAME=tau2

build()
{
    cd $TOP
    rm -rf pdt* tau*
    wget $PDTURL
    wget $TAUURL

    tar -xzf pdt*gz
    cd $PDTNAME
    ./configure -GNU
    make install -j
    cd ..

    tar -xzf tau*gz
    cd $TAUNAME
    ./installtau -arch=craycnl -mpi -pdt=$TOP/$PDTNAME -pdt_c++=g++ -papi=/opt/xt-tools/papi/papi/v22/xt-cnl -opari
    ./tau_validate --build --html craycnl &> ../results-$PE_ENV.html

    echo $PE_ENV
}

go()
{
    rm -rf TAU
    mkdir TAU
    cd TAU
    TOP=`pwd`


    build

    module switch PrgEnv-pgi PrgEnv-gnu

    build

    module switch PrgEnv-gnu PrgEnv-pathscale
    module unload xt-binutils-quadcore/2.0.1

    build
}
(time go 2>&1) 2>&1 | tee go.log

And the result tables from each tau_validate run:


Stub Makefile C PDT (C) PDT (C++) PDT (Fortran) PDT (GFortran) Fortran (flink) Fortran (cpplink) Fortran (clink) MPI (C) MPI (Fortran) PDT-MPI (C) PDT-MPI (C++) PDT-MPI (Fortran) PDT-MPI (GFortran)
build run build run build run build run build run build run build run build run build run build run build run build run build run build run
Makefile.tau-gnu-callpath-mpi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-multiplecounters-papi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-gnu-mpi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-phase-multiplecounters-mpi-papi-compensate-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt-trace pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-gnu-mpi-pdt-trace pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-depthlimit-mpi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-multiplecounters-papi-pthread-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-gnu-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-mpi-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-multiplecounters-papi-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-gnu-phase-multiplecounters-mpi-papi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-pthread-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-gnu-mpi-compensate-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-gnu-callpath-mpi-compensate-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A


Stub Makefile C PDT (C) PDT (C++) PDT (Fortran) PDT (GFortran) Fortran (flink) Fortran (cpplink) Fortran (clink) MPI (C) MPI (Fortran) PDT-MPI (C) PDT-MPI (C++) PDT-MPI (Fortran) PDT-MPI (GFortran)
build run build run build run build run build run build run build run build run build run build run build run build run build run build run
Makefile.tau-pathscale-mpi-pdt-trace pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-multiplecounters-papi-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-pathscale-multiplecounters-mpi-papi-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-mpi-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-pathscale-mpi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-callpath-mpi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-multiplecounters-papi-pthread-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-pathscale-mpi-compensate-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-callpath-mpi-compensate-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-pdt-openmp-opari pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-pathscale-depthlimit-mpi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-phase-multiplecounters-mpi-papi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-phase-multiplecounters-mpi-papi-compensate-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-multiplecounters-mpi-papi-pdt-trace pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-multiplecounters-papi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-pathscale-multiplecounters-mpi-papi-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pathscale-pthread-pdt pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A


Stub Makefile C PDT (C) PDT (C++) PDT (Fortran) PDT (GFortran) Fortran (flink) Fortran (cpplink) Fortran (clink) MPI (C) MPI (Fortran) PDT-MPI (C) PDT-MPI (C++) PDT-MPI (Fortran) PDT-MPI (GFortran)
build run build run build run build run build run build run build run build run build run build run build run build run build run build run
Makefile.tau-multiplecounters-mpi-papi-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-callpath-mpi-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-multiplecounters-mpi-papi-pdt-openmp-opari-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A fail N/A pass N/A pass N/A
Makefile.tau-mpi-pdt-openmp-opari-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A fail N/A pass N/A pass N/A
Makefile.tau-multiplecounters-mpi-papi-pdt-trace-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pthread-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-depthlimit-mpi-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-multiplecounters-papi-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-mpi-compensate-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-pdt-openmp-opari-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-multiplecounters-papi-pthread-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-phase-multiplecounters-mpi-papi-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-mpi-pdt-trace-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-mpi-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-multiplecounters-papi-pdt-openmp-opari-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Makefile.tau-callpath-mpi-compensate-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A
Makefile.tau-phase-multiplecounters-mpi-papi-compensate-pdt-pgi pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A pass N/A


The two failures with PGI are not a TAU problem, those simple C++ code do not build without TAU.