Open|SpeedShop logo
Build and Installation Guide
Version 1.9.3.3 Release
February 19, 2010

Open|SpeedShop release 1.9.3.3 comes with an install script that will build all the supporting components and Open|SpeedShop itself in one step, or the builder can invoke the script multiple times to build each component separately.   The Building Open|SpeedShop and Open|SpeedShop Development RPM Usage Information section describes the steps necessary to prepare for the build and to do the actual building of Open|SpeedShop and components.    This tutorial gives an overview of the build process and necessary environment setup.   The tutorial is based on a section from our larger tutorial presentations which can be found at our web site: www.openspeedshop.org. 

The next section explains how to build from our development source tree.   If you are not interested in doing that but are interested in building the current 1.9.3.3 release of Open|SpeedShop skip to the Build and Installation section.

Downloading the Open|SpeedShop Component Source Using CVS trees

For building from the Open|SpeedShop development tree, this section provides information about how to download the OpenSpeedShop and OpenSpeedShop_ROOT source repositories from the sourceforge website.     The OpenSpeedShop cvs tree contains the source and documentation for the Open|SpeedShop performance tool itself.  The OpenSpeedShop_ROOT cvs tree contains the source and rpms for the supporting components required by Open|SpeedShop in order for Open|SpeedShop to function correctly.   

If not familar with cvs, see CVS information on sourceforge.    It contains links to general CVS documentation.

Set the CVSROOT environment variable.

$ export CVSROOT=':pserver:anonymous@openss.cvs.sourceforge.net:/cvsroot/openss'
(for sh, bash, ksh, or similar shells)
$ setenv CVSROOT  :pserver:anonymous@openss.cvs.sourceforge.net:/cvsroot/openss
(for csh or tcsh shells)
 

Login to the CVS server (this only needs to be done ONCE, not every time you access CVS).

$ cvs login
(there is no password:"just hit enter")
 

Now grab the OpenSpeedShop and OpenSpeedShop_ROOT source trees: 

$ cvs checkout OpenSpeedShop
$ cvs checkout OpenSpeedShop_ROOT
 

Subsequently, you can checkout new code using: 

$ cvs update -d
 

We recommend using these cvs options. You may place them in a .cvsrc file in your home directory: 
cvs -z5 -r -q
checkout -P
diff -N -u
update -d -P
 


Now follow the instructions below using OpenSpeedShop_ROOT as the top level installation directory.    To use the existing install.sh installation script, OpenSpeedShop must be moved to the openspeedshop-1.9,2 directory name, tarred into openspeedshop-1.9.3.3.tar, gzipped into openspeedshop-1.9.3.3.tar.gz, and moved into OpenSpeedShop_ROOT/SOURCES/openspeedshop-1.9.3.3.tar.gz.   This is what is done when a release tarball is prepared.

Open|SpeedShop Build and Installation

The following sections describe how to build and install Open|SpeedShop.   The RPM packages that are needed to build Open|SpeedShop and the RPM packages that are needed to run Open|SpeedShop are defined below.   These are the packages that can be found in the OpenSpeedShop_ROOT cvs tree (see above).

This section documents the list of software packages used by the Open|SpeedShop developers when building Open|SpeedShop or developing plugin modules for it.  For each package, a minimum and maximum version is given. These are the KNOWN minimum and maximum verions that have been found to work with Open|SpeedShop. You may find newer (or older) versions of these packages work just fine. Go ahead and update this document when you do! Packages not commonly found in some (e.g. SuSE Professional 11, SLES 11, Fedora Core 7/8/9) Linux distributions are provided here in this directory as source tarballs and binary RPMs for key platforms may be found on the Open|SpeedShop download area on sourceforge.

In addition, the components listed below are also needed for building Open|SpeedShop. Note that the Maximum versions are only reflective of what we have tested with.  Newer versions will probably work also.

Component Name
Minimum Maximum Notes
autoconf 2.59 2.65 none
automake 1.7.9 1.11.1 none
binutils 2.15 2.19
doxygen 1.3.6 1.5.6-1 (2)
dyninst see-note-1 see-note-2 (1)
gcc/g++ 3.4.6 4.4.4 none
libdwarf 2004/02/03 2009/12/30 none
monitor 2007/02/15 2009/10/10




libelf 0.8.5 0.8.5 none
or


elfutils-libelf-0.97.1-3


elfutils-libelf-devel-0.97.1-3


or


elfutils-libelf-0.119.1.2.1 none

elfutils-libelf-devel-0.119.1.2.1 none





libtool 1.5.14 2.2.6b none
libunwind 0.98.5 20100123
none
papi 3.0.8.1 3.7.0 none
python 2.3.3 2.6.1 none
python-devel 2.3.3 2.6.1 none
sqlite 3.0.8 3.6.22 none
qt 3.3.1 3.3.8 none
qt-devel 3.3.1 3.3.8 (3)

NOTES:

  1. Always use the Dyninst and MRNet versions supplied with Open|SpeedShop.  Others will almost certainly not work with Open|SpeedShop.
  2. Utilities commonly used by the Open|SpeedShop developers but not strictly needed to build Open|SpeedShop.
  3. On SLES 9/10/11 Linux distributions the necessary qt development components require qt3-devel-doc and qt3-devel-tools in addition to qt3-devel.

See the INSTALL-note_a file for directions on how to use the install.sh  and Build-RPM scripts to build the Open|SpeedShop supporting rpms and Open|SpeedShop itself.  These are found in the main directory of the release directory once the release tarball has been gunzipped and untarred.

Building Open|SpeedShop and Open|SpeedShop Development RPM Usage Information

The release top level directory contains the install script (install.sh) that is intended to make the build and installation of the components that
are needed to support Open|SpeedShop and Open|SpeedShop itself easier.

Because Open|SpeedShop depends on components that are highly dependent on Operating System interfaces and libraries, it is difficult to produce executable rpms
for installation.  This is why we offer a source build installation.

Prerequistite Needs


There are some prerequisite packages that are necessary for building and running the Open|SpeedShop performance tool. Most will be present on a system that is used for debugging and performance analysis.  The README file in the release top level directory lists the components and the versions that have been used successfully with Open|SpeedShop.

Installation Information


Please gunzip and untar the openspeedshop-release-1.9.3.3.tar.gz file and change directory into the openspeedshop-release-1.9.3.3 directory.  

For example:
gunzip openspeedshop-release-1.9.3.3.tar.gz
tar -xvf openspeedshop-release-1.9.3.3.tar
cd openspeedshop-release-1.9.3.3

Inside the top level release directory is the key script, install.sh, that can be used in building the Open|SpeedShop performance tool.

The script, install.sh, can either step you through building the support libraries and Open|SpeedShop or you can choose an option (9) that will do all the steps without user intervention.

This process builds RPMs for each package and allows you the option of installing via RPM or to install as non-root through a rpm to cpio process that is built into the script.  The default installation path is /opt/OSS

If you would like to install in another location, set the environment variable OPENSS_PREFIX.  We recommend setting the variable.  You can base your LD_LIBRARY_PATH and PATH variables off the OPENSS_PREFIX variable when you have Open|SpeedShop built and you are ready to run it.

For example:
export OPENSS_PREFIX=/usr/projects/OSS

Another variable that is advisable to set is QTDIR for the location to the QT library if different from the default.  The default is /usr/lib64/qt-3.3

Additional (optional) environment variables needed for building vampirtrace and configuring for MPI experiments. vampirtrace needs a MPI implementation specified in order to be built.  So, the intent is to be able to run vampirtrace trace under Open|SpeedShop, then one of the following MPI implementations must be specified. 

   OPENSS_MPI_LAM  set to MPI LAM installation directory
   OPENSS_MPI_LAMPI  set to MPI LAMPI installation directory
   OPENSS_MPI_OPENMPI  set to MPI OPENMPI installation directory
   OPENSS_MPI_MPICH  set to MPI MPICH installation directory
   OPENSS_MPI_MPICH2  set to MPI MPICH2 installation directory
   OPENSS_MPI_MPICH_DRIVER mpich/mpich2 driver name [ch-p4]
   OPENSS_MPI_MPT  set to SGI MPI MPT installation directory
   OPENSS_MPI_MVAPICH  set to MPI MVAPICH installation directory
   OPENSS_MPI_MVAPICH2  set to MPI MVAPICH2 installation directory

If the above variables are not set most Open|SpeedShop experiments will work, but the mpi, mpit, mpiotf experiments will not be built.  These variables are not necessary to run pcsamp, usertime, hwc, io, or fpe experiments.

The install script and the Open|SpeedShop configuration code will read these environment variables and if set will configure Open|SpeedShop to recognize these MPI implementations.  That will allow users the ability to create MPI experiments (mpi, mpit, mpiotf) and gather  performance data for MPI applications built with the specific MPI implementation (for example: openmpi). 

For example:
export OPENSS_MPI_OPENMPI=/usr/projects/openmpi-1.2.4

The Open|SpeedShop configure will read the OPENSS_MPI_xxxxx variables and configure for each MPI implementation specfied in this manner.

The spec files associated with this build process include:
qtver=3.3.8b
libelfver=0.8.5_a
libdwarfver=20091230_a
libunwindver=020100123_a
papiver=3.7.0_a
sqlitever=3.6.22_a
monitorver=20091010_a
vampirtracever=5.3.2_a
dyninstver=6.1r_a
mrnetver=2.2_a
openspeedshopver=1.9.3.3_a

There is an order that is required in building the components because some of the components depend oneach other.  The install script will lead you through the process.

There is an expectation that you have libelf available. Option 1 will check and build if necessary and option 1a will install if  you are doing the non-root cpio process.

To start, type:

./install.sh

These are the options that are provided.

For the most automated way to build the entire tool would be to  choose option: 9.  With this option all the components and openspeedshop will be built and installed into the location/path specified in your OPENSS_PREFIX environment variable.

If you have trouble using option 9, you can build the components and openspeedshop in a step by step manner to find any issues.  After each  step you will need to run ./install.sh again to get to the next step. You may also type install.sh and choose option 8 to see which component is not installed.  You may only have to rebuild from that component onward.

Because Open|SpeedShop currently uses MRNet as it's (online version only) communication mechanism, a MRNet daemon must run on your machine and, if you have a cluster, a MRNet daemon must run on each node of your cluster.  We have a default file named "mrnet.py" that we will install during the installation of openspeedshop-1.9.3.3.  The mrnet.py file will create a MRNet topology file (needed by MRNet to communicate with the daemons) without intervention on your single system image machine, like a pc or laptop (or a SGI single system image (SSI) machine). If you going to run Open|SpeedShop on a cluster, some tweaking of the mrnet.py file may be necessary.   It is reliable on systems using the SLURM and PBS job schedulers.

Note: the offline version of openss does not need to create daemons and therefore also doesn't need to create a topology file.

Please contact us at: oss-questions@openspeedshop.org if you need assistance.

 
This is what will be displayed when you type install.sh:

---------------------------------------

./install.sh

    machine:  localhost.localdomain


    ---------------------------------------------------------------------------
    This script builds RPMs and supports installation as non-root through cpio
   
    The default install prefix is /opt/OSS. If another is preferred, please set
    the OPENSS_PREFIX environment variable to reflect the new target directory  
    
    If you plan on installing RPMs as root, it will let you know at what point
    ---------------------------------------------------------------------------


    You are building for default Open|SpeedShop instrumentor: offline.
    If you wish to change the Open|SpeedShop instrumentor, use
    the OPENSS_INSTRUMENTOR to specify: mrnet, or offline.

  
  
    Checking for prerequisite components needed to build Open|SpeedShop and/or
    the Open|SpeedShop required component packages. If all the prerequisite
    packages are present the script will continue, if not all the prerequisites
    are found, the script exits because the build will fail without the
    prerequisite components installed.
    We are checking for these components:
        a) GNU patch
        b) libelf and/or libelf-devel
        c) libxml2 and/or libxml2-devel
           NOTE: libxml2 and/or libxml2-devel are not needed
                 if using OPENSS_INSTRUMENTOR=offline, however,
                 the online (mrnet) version does need libxml2 and libxml2-devel
        d) binutils and/or binutils-devel
        e) qt and/or qt-devel
        f) python and/or python-devel
        g) bison or flex
        h) libtool
        i) The environment variable QTDIR is set
        j) rpm
        k) libltdl and libltdl-devel
  
  
    NOTE: autoconf was detected in /usr/bin
    NOTE: automake was detected in /usr/bin
    NOTE: GNU patch was detected in /usr/bin
    NOTE: libelf and libelf-devel detected in /usr/<lib>...
    NOTE: libxml2 and libxml2-devel detected in /usr/<lib>...
    NOTE: binutils and binutils-devel detected in /usr/bin and /usr/<lib>...
    NOTE: qt and qt-devel detected in /usr/<lib>/qt...
    NOTE: python and python-devel detected in /usr/bin and /usr/<lib>...
    NOTE: flex and/or bison was detected in /usr/bin
    NOTE: libtool was detected in /usr/bin
    NOTE: QTDIR is set.
    NOTE: rpm was detected in /usr/bin or /bin
    NOTE: libltdl and libltdl-devel were detected in /usr/lib64
  
  
   
    OPENSS Environment Variables:
        -General
         OPENSS_PREFIX           set to alternate install prefix.  default is /opt/OSS
         OPENSS_INSTRUMENTOR     set to the underlying instrumentation type openss will use.  default is offline (does not include online/mrnet)
         OPENSS_TARGET_ARCH      set to the target architecture to build the Open|SpeedShop runtime environment for.
       
        -Open|SpeedShop MPI and Vampirtrace
         OPENSS_MPI_LAM          set to MPI LAM installation dir. default is null.
         OPENSS_MPI_LAMPI        set to MPI LAMPI installation dir. default is null.
         OPENSS_MPI_OPENMPI      set to MPI OPENMPI installation dir. default is null.
         OPENSS_MPI_MPICH        set to MPI MPICH installation dir. default is null.
         OPENSS_MPI_MPICH2       set to MPI MPICH2 installation dir. default is null.
         OPENSS_MPI_MPICH_DRIVER mpich/mpich2 driver name [ch-p4]. default is null.
         OPENSS_MPI_MPT          set to SGI MPI MPT installation dir. default is null.
         OPENSS_MPI_MVAPICH      set to MPI MVAPICH installation dir. default is null.
         OPENSS_MPI_MVAPICH2     set to MPI MVAPICH2 installation dir. default is null.
         OPENSS_OFED             set to OPEN FABRICS installation dir. default is /usr.
         OPENSS_BINUTILS         set to alternative directory location for binutils components. default is /usr
         OPENSS_PYTHON           set to alternative directory location for python components. default is /usr
         OPENSS_LIBXML2          set to alternative directory location for libxml2 components. default is /usr
         OPENSS_IMPLICIT_TLS     When set, this enables Open|SpeedShop to use implicitly created tls storage. default is explicit.
   
  
  
    Checking to see if OPENSS_PREFIX is set.  This is the installation path for all
    the OpenSpeedShop supporting components and also the OpenSpeedShop components.
  
         Using OPENSS_PREFIX=/opt/OSS-mrnet
   
    Current Values for OPENSS Environment Variables:
        -General

         Using OPENSS_PREFIX=/opt/OSS-mrnet
         Using OPENSS_INSTRUMENTOR=offline
   
        -Open|SpeedShop MPI and Vampirtrace


    Choices:

    0  - Set ~/.rpmmacros %_topdir to:
         /home/jeg/release-1.9.3.3/OpenSpeedShop_ROOT 
         original will be copied to .rpmmacros.##
    0a - View environment variables that may be set
   
    1  - Check if libelf is installed, build if necessary
    1a - Install libelf if built (non-root/cpio)
         - Otherwise install RPM manually at this point
    2  - Build base Support libraries: libdwarf
    2a - Install libdwarf if built (non-root/cpio)
         - Otherwise install RPM manually at this point
    3  - Build base Support libraries: libunwind, papi, sqlite, monitor
    3a - Install base Support libraries (non-root/cpio): libunwind, papi,
         sqlite, monitor
         - Otherwise install RPMs manually at this point
    4  - Build base Support libraries: vampirtrace, dyninst
    4a - Install base Support library (non-root/cpio): vampirtrace, dyninst
         - Otherwise install RPMs manually at this point
    5  - Build base Support libraries: mrnet
    5a - Install base Support library: mrnet
         - Otherwise install RPMs manually at this point
    6  - Check if base GUI support library is installed, build if necessary: qt3/qt3.3
    6a - Install base GUI support library if built (non-root/cpio): qt3/qt-3.3
         - Otherwise install RPMs manually at this point
    7  - Build Open|SpeedShop
    7a - Install Open|SpeedShop
         - Otherwise install RPMs manually at this point
    8  - Install status

    9  - Automatic - Run all steps with no questions asked. Assume that the
                     answer to any question which will be asked is yes. Please
                     make certain that all required environment variables are
                     set properly. It may be best for fresh installations
                     to run though the choices one at a time, in ascending
                     order, as this may help discover any missing system
                     dependencies.  Everything will be installed in
                     /opt/OSS (if OPENSS_PREFIX is not set) via cpio process

    Please feel free to contact us via this email alias: oss-questions@openspeedshop.org

Enter Option:

To Run Open|SpeedShop


Please refer to the QuickStart Guide for a short introduction or access the Users Guide.  These are the best sources for information on how to run Open|SpeedShop.



Key Environment Variables Needed for Building Open|SpeedShop

OPENSS_PREFIX

  •  This environment variable specifies where the Open|SpeedShop binaries and libraries will be installed.  Set this variable to a path, (e.g. "setenv OPENSS_PREFIX /scratch/jeg/openss/install).   After installation, a bin and lib directory containing the Open|SpeedShop components, will be present under the /scratch/jeg/openss/install directory.

OPENSS_INSTRUMENTOR

  • This environment variable specifies the instrumentation mechanism to be used for the online (dynamic instrumentation) mode of operation.  offline is the default.    If using the online instrumentation mode of operation OPENSS_INSTRUMENTOR can be set to "mrnet" (e.g. setenv OPENSS_INSTRUMENTOR mrnet).  In this case MRNet and Dyninst will be built and online instrumentation will available.  By default, the MRNet and Dyninst components are not built and online instrumentation is not available.

Key Environment Variables Needed for Running Open|SpeedShop


OPENSS_PLUGIN_PATH

  • This environment variable specifies where the Open|SpeedShop main program will look for experiment plugins.  This is in addition to the normal search path, which is "<installdir>/lib{64}/openspeedshop"  Prior to Open|SpeedShop initialization set this variable to the path to your non-default plugins,  (e.g. "setenv OPENSS_PLUGIN_PATH /g2/install/lib/openspeedshop)

LD_LIBRARY_PATH

  • This environment variable points to the directories where Open|SpeedShop component libraries and Open|SpeedShop libraries are installed.  Set this environment variable to $OPENSS_PREFIX/lib{64} (e.g. "setenv LD_LIBRARY_PATH $OPENSS_PREFIX/lib{64}:$LD_LIBRARY_PATH)

OPENSS_MPI_IMPLEMENTATION

  •  This envirionmnent variable specifies the MPI implementation being used by the MPI application whose performance is being analyzed. Should be set to one of the currently supported MPI implementations:
  • lam
  • lampi
  • mpich
  • mpich2
  • mpt
  • mvapich
  • mvapich2
  • openmpi

Open|SpeedShop can auto-detect most of the MPI implementations that an MPI application is using.  So, this variable will only be used to override the auto-detection code, if need be.


DYNINSTAPI_RT_LIB

            • This envirionmnent variable specifies the path to the Dyninst (dynamic instrumentation package) libraries and is only needed for running in the online instrurmentation mode of operation.    Set this to:  $OPENSS_PREFIX/lib{64}/ libdyninstAPI_RT.so.1 (e.g. setenv DYNINSTAPI_RT_LIB $OPENSS_PREFIX/lib64/libdyninstAPI_RT.so.1).

PATH

  • This envirionmnent variable specifies the path to the Open|SpeedShop component executables and to the Open|SpeedShop executables.  Set this to:  $OPENSS_PREFIX/bin (e.g. setenv PATH $OPENSS_PREFIX/bin:$PATH).

OPENSS_RAWDATA_DIR

  • This envirionmnent variable specifies the path to where the offline version of openss will store the rawdata files representing the performance data that was gathered from the users application.   This is needed on clusters where the default rawdata file directory, /tmp, is not shared across the nodes.   If this is the case on the cluster you are running "openss -offline" or using the GUI or CLI to run offline experiment, then OPENSS_RAWDATA_DIR must be set to a shared file system directory.  Otherwise, /tmp is used.    Set this to:  OPENSS_RAWDATA_DIR <path_to_subdir_for_rawdata_file_writing> (e.g. setenv OPENSS_RAWDATA_DIR /p/lscratchc/jeg).

OPENSS_DB_DIR

  • This envirionmnent variable specifies the path to where the offline version of openss will build the OpenSpeedShop database file. If you are on a lustre file system that does not have file locking turnedon.  The sqlite component will not be able to create the database file.  You can use this environment variable to specify a non-lustre file system path to be used for the database file creation.

Open|SpeedShop Tested Platforms:

Open|SpeedShop has been run successfully on IA32, IA64, and X86_64 platforms.  There are Linux operating system differences that can cause problems.   The following combinations have been tried and/or successfully tested:
  • SLES 10 IA64
  • Fedora 3-11 on x86 and x86_64
  • RedHat Enterprise Linux (RHEL4 & RHEL5) on x86, x86_64
  • SuSE Professional on x86_64 and x86
  • SuSE 10.*, SuSE 11, and SuSE 11.1 on x86 and x86_64
  • Ubuntu 8.04, 8.10, 9.04, 9.10 on x86 and x86_64
  • Debian 4.0r5 and 5.0 on x86

      Note for Ubuntu and Debian these packages are needed to be applied to the base systems:


      sudo apt-get install automake autoconf binutils libtool
      sudo apt-get install flex bison
      sudo apt-get install rpm
      sudo apt-get install libxml2 libxml2-dev
      sudo apt-get install qt3-apps-dev

      sudo apt-get install python-dev
      sudo apt-get install binutils-dev
      sudo apt-get install libelf1 elfutils libelf-dev
      sudo apt-get install g++
      sudo apt-get install make patch