CUBE (Cube Uniform Behavioral Encoding) is a presentation component suitable for displaying a wide variety of performance data for parallel programs including MPI and OpenMP applications. CUBE allows interactive exploration of the performance data in a scalable fashion. Scalability is achieved in two ways: hierarchical decomposition of individual dimensions and aggregation across different dimensions. All metrics are uniformly accommodated in the same display and thus provide the ability to easily compare the effects of different kinds of program behavior.
The CUBE package currently consists of five components:
The remainder of this document describes the generic installation procedure for the different CUBE components (i.e., the C and C++ libraries, the command-line tools, as well as the graphical user interfaces).
CUBE is available as a source-code distribution for UNIX or UNIX-like platforms. It can be downloaded from http://www.scalasca.org. Besides the standalone distribution, CUBE is also distributed as part of the Scalasca performance analysis toolset available via the same web page.
The CUBE software is free, but by downloading, installing and using it you agree to comply with the license agreement. Please read the file LICENSE
in the distribution's top-level directory for precise wording.
Depending on the components of CUBE that are to be built, various tools and packages are required to be available on the build system. Common requirements—needed to build any of the components—are:
zlib (CUBE can be build without zlib support if zlib is not available)
http://www.zlib.net/
Both are typically already installed on most systems. For zlib, you also need the development headers to be installed (might be provided by a separate package, e.g., on Linux systems).
For the graphical user interface an additional library/framework is required:
This section describes the general procedure to build and install the CUBE software. Before proceeding with the instructions given below, please make sure to also read the Qt installation notes in Appendix 'qt_notes' as well as the platform- and compiler-specific notes in Appendix 'platform' .
To configure and install the CUBE package, the following steps are usually required:
gunzip -c cube-4.x.x.tar.gz | tar xvf -
cd cube-4.x.x
VPATH
directory, where do you build the CUBE, and change into it mkdir -p vpath; cd vpath
Run the configure
script
../configure
The configure script tries to determine whether the requirements for building CUBE are fulfilled and sets up the build configuration. The configure script provides a set of various options. The full list is displayed when invoking:
../configure --help=recursive
A list of main options:
–prefix=
dir /opt/cube
) –with-nocross-compiler-suite=
(gcc|ibm|intel|pathscale|pgi|studio|open64|clang) $PATH
[gcc]. –with-frontend-compiler-suite=
(gcc|ibm|intel|pathscale|pgi|studio|open64|clang) –enable-debug
One configures and builds Cube with the debug output. Currently only derived metrics engine has a debug output, which is helpful while developing a remapping specification file or developing a derived metric. An environment variable CUBEPL_VERBOSE_METRICS lists metrics, which should be verbose. Possible values are:
Values can be listed using ","
An environment variable CUBE_DEBUG defines the verbosity level
–with-cubelib
| –without-cubelib
–with-tools
| –without-tools
–with-gui
| –without-gui
–with-plugin-example
| –without-plugin-example
–with-cwriter
| –without-cwriter
–with-java-reader
| –without-java-reader
–with-xerces-path=
path /usr/share/java
) –with-xerces-name=
Name.jar xerces.jar
) –with-frontend-zlib=
"path to frontend zlib" –with-backend-zlib=
"path to backend zlib" –with-compression=full|ro|none
–with-qt=
path path
in first place. If this option is omitted the configure script searches for a Qt installation using the following sequence: $QT_DIR
$PATH
/usr/local/Trolltech/
/opt/local/libexec/qt4-mac/
(to support Mac) /opt/lib/qt4
/usr/lib/qt/bin
/usr/lib32/qt4
/usr/lib32/qt
/usr/lib64/qt4
/usr/lib64/qt
/opt/qt
/opt/qt4
/usr/local/qt4
/usr/local/qt
–with-qt-specs=
spec –with-vampir
| –without-vampir
The support of TraceBrowser is only possible if DBUS headers and DBUS library are available. The configure script tries to find them automatically. If it fails, you have to specify the exact place of two headers: <tt>dbus/dbus.h</tt> and <tt>dbus/dbus-arch-deps.h</tt>. You can do it like
../configure --prefix=/opt/software/cube \ CPPFLAGS='-I/usr/include/dbus-1.0 \ -I/usr/lib64/dbus-1.0/include'"
–with-paraver
| –without-paraver
Enables support of TraceBrowser connection with Paraver.
See the note above.
–with-paraver-cfg=FILE
–with-buffersize=N
–disable-shared
–with-strategy=keepall|preload|manual|lastn
N
last used data rows are kept in memory. N
is specified via command line option –with-nrows=N
The configure
script assumes that the GNU C/C++ compilers should be used to compile CUBE. You can select a different compiler using one of the options above e.g.
../configure - -with-nocross-compiler-suite=intel
If you want to use alternative compilers or compiler optimization options, which are not listed in the description of the options, you can do so by specifying appropriate variables in the command line when invoking configure
, e.g.,
../configure --prefix=/opt/software/cube CC=xlc CFLAGS="-g -O2"
For a list of the recognized variables, please inspect the output of the command ./configure - -help=recursive
makeor
make -j N
make checkIf all tests pass, everything looks good. If some tests do not pass, please report it to
scala sca@ fz-ju elic h.de
and attach the file configure.log
make install
CUBE provides the option of displaying an online description for entries in the metric tree via a context menu. By default, it will search for the given HTML description file on all the mirror URLs specified in the CUBE file. In case there is no Internet connection, the Qt-based CUBE GUI can be configured to also search in a list of local directories for documentation files. These additional search paths can be specified via the environment variable CUBE_DOCPATH
as a colon-separated list of local directories, e.g.,
CUBE_DOCPATH=/opt/software/doc:/usr/local/share/doc
Note that this feature is only available in the Qt-based GUI and not in the older wxWidgets-based one.
To prevent CUBE from trying to load the HTML documentation via HTTP or HTTPS mirror URLs (e.g., in restricted environments were outbound connections are blocked by a firewall and the timeout is taking very long), the environment variable CUBE_DISABLE_HTTP_DOCS
can be set to either 1
, yes
or true
.
To prevent CUBE from trying to load the HTML documentation via HTTP or HTTPS mirror URLs (e.g., in restricted environments were outbound connections are blocked by a firewall and the timeout is taking very long), the environment variable CUBE_DISABLE_HTTP_DOCS
can be set to either 1
, yes
or true
.
CUBE C++ library allows to control the way it loads the data using the environment variable CUBE_DATA_LOADING
. Following values are possible:
N
last used data rows are kept in memory. N
is specified via environment variable CUBE_NUMBER_ROWS
If you have any questions or comments you would like to share with the CUBE developers, please send an e-mail to scala sca@ fz-ju elic h.de
.