Software: KOJAK
KOJAK Trace-Analysis Environment

The KOJAK trace-analysis environment is an automatic performance evaluation system for MPI, OpenMP, and hybrid applications. The environment includes tools for instrumentation, event-trace generation, and postprocessing of event traces. Its main feature is the ability to automatically diagnose sources of inefficient runtime behavior on a high level of abstraction. It consists of four components, which are described below.

For additional information please refer to the project web page at Forschungszentrum Juelich.


OPARI is a source-to-source translation tool which automatically inserts calls to the POMP profiling interface into the source code of OpenMP applications. OPARI works with Fortran, C, and C++ programs. The POMP interface is can be implemented by tool builders who want, for example, monitor the performance of OpenMP applications. OPARI is based on the idea of OpenMP pragma/directive rewriting.


EPILOG is a binary event trace format plus a run-time library to generate event traces of MPI and OpenMP applications. The EPILOG event types cover the following situations:

  • Entering and leaving code regions
  • MPI point-to-point communication
  • MPI collective communication
  • MPI-2 one-sided communication
  • OpenMP fork and join operations
  • OpenMP parallel constructs
  • OpenMP lock synchronization

The library implementation is based on the PMPI and POMP profiling interfaces for MPI and OpenMP, respectively. Also, the library includes capabilities to record hardware counters based on the PAPI library. Support for automatic instrumentation is provided based on DPCL and different compiler-supplied profiling interfaces.


EARL is a high-level interface for accessing EPILOG event traces. EARL provides random access to single events, computes the execution state at the time of a given event as well as predefined relationships between pairs of related events. EARL is implemented in C++ and offers a C++ and a Python class interface.


EXPERT is an automatic event-trace analysis tool for MPI and OpenMP applications. EXPERT identifies execution patterns indicating low performance and quantifies them according to their severity. The analysis process automatically transforms the traces into a scalable representation of performance behavior, allowing a fast and easy identification of performance bottlenecks on varying levels of granularity along the dimensions of problem type, call graph, and process or thread. The uniform mapping of performance behavior onto the corresponding fraction of execution time enables the convenient correlation of different performance behavior using only a single integrated view. KOJAK uses CUBE to display its results.


CUBE is a generic presentation component suitable for displaying a wide variety of performance metrics for parallel programs including MPI and OpenMP applications. CUBE allows interactive exploration of a multidimensional performance space in a scalable fashion. Scalability is achieved in two ways: hierarchical decomposition of individual dimensions and aggregation across different dimensions. All performance metrics are uniformly accommodated in the same display and thus provide the ability to easily compare the effects of different kinds of performance behavior. For more information on CUBE please visit the CUBE web page.

Supported Platforms

  • Instrumentation, Measurement, and Analysis
    • Linux IA-32, IA-64, and EM64T/x86_64 clusters with GNU, PGI, or Intel compilers
    • IBM Power3 / Power4 based clusters
    • SGI Mips based clusters (O2k, O3k)
    • SGI IA-64 based clusters (Altix)
    • SUN Solaris Sparc and x86 based clusters
    • DEC/HP Alpha based clusters
    • Generic UNIX workstation (clusters)

  • Instrumentation and Measurement only
    • Cray T3E, XD1 and X1
    • IBM BG/L
    • NEC SX
    • Hitachi SR-8000


To install and use the EXPERT automatic event trace analyzer (which is based on the EARL event trace analysis language), the following software is needed:

In order to use the EPILOG hardware-counter measurement support, it is also necessary to have available

  • PAPI, the Performance Application Programming Interface



  • The OPARI as included in KOJAK is incompatible to the versions available separately.
  • Analysis of programs using OpenMP nested parallelism is not supported yet.
  • Not all platforms support automatic instrumentation of user functions yet.



(Nov 4, 2006)
Current Stable Release
New (compared to last stable release 2.1):
  • Support for measurement and analysis of MPI-2 1-sided communication
  • Support for measurement and analysis of SHMEM 1-sided communication (AIX TurboSHMEM only)
  • Support for holistic hardware counter analysis
  • Configure script for improved installation
  • Open Trace Format (OTF) support
  • Paraver trace conversion support
  • CUBE should build also with newer versions of wxGTK and GTK2 now
  • .TAR.GZ

    Jun 29 2022 Contact: Admin Login