Building on Franklin

From Tau Wiki
Jump to: navigation, search

This is a short guide to building and using TAU on Franklin (http://www.nersc.gov/nusers/resources/franklin/).

Franklin 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 2. Build TAU

tar -xzf tau.tgz
cd tau*
./installtau -arch=craycnl -mpi -pdt=`pwd`/../pdtoolkit-3.13  -pdt_c++=g++ -papi=/opt/xt-tools/papi/default/xt-cnl -opari

Remember to set the appropriate module for the compilers you want.


We used the following script to validate TAU and PDT on Franklin with PGI, GNU, and PATHSCALE compilers:

#!/bin/bash -x

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

PDTURL=http://www.cs.uoregon.edu/research/paracomp/proj/pdtoolkit/Download/pdt_latest.tar.gz
TAUURL=http://www.nic.uoregon.edu/~amorris/tau.tgz
PDTNAME=pdtoolkit-3.13
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/default/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

PGI validation

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 pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-callpath-mpi-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-multiplecounters-mpi-papi-pdt-openmp-opari-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A fail N/A pass N/A N/A N/A
Makefile.tau-mpi-pdt-openmp-opari-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A fail N/A pass N/A N/A N/A
Makefile.tau-multiplecounters-mpi-papi-pdt-trace-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-pthread-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-depthlimit-mpi-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-multiplecounters-papi-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-mpi-compensate-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-pdt-openmp-opari-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-multiplecounters-papi-pthread-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-phase-multiplecounters-mpi-papi-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-mpi-pdt-trace-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-mpi-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-multiplecounters-papi-pdt-openmp-opari-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-callpath-mpi-compensate-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-phase-multiplecounters-mpi-papi-compensate-pdt-pgi pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A

The two errors listed are inherent with PGI and C++ on Cray XT4, those tests do not work without TAU.

GNU Validation

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 pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-papi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-mpi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-phase-multiplecounters-mpi-papi-compensate-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt-trace pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-mpi-pdt-trace pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-depthlimit-mpi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-papi-pthread-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-mpi-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-papi-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-phase-multiplecounters-mpi-papi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-pthread-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-mpi-compensate-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-callpath-mpi-compensate-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A

Pathscale Validation

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 pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-papi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-mpi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-phase-multiplecounters-mpi-papi-compensate-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt-trace pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-mpi-pdt-trace pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-depthlimit-mpi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-papi-pthread-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-mpi-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-papi-pdt-openmp-opari pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-phase-multiplecounters-mpi-papi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-multiplecounters-mpi-papi-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-pthread-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass 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
Makefile.tau-gnu-mpi-compensate-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A
Makefile.tau-gnu-callpath-mpi-compensate-pdt pass pass pass pass pass pass pass pass N/A N/A pass pass pass pass pass pass pass N/A pass N/A pass N/A pass N/A pass N/A N/A N/A