Back to Tools
Mess-Paraver logo

Mess-Paraver

Tool

Mess Integration with BSC Paraver

What is Mess-Paraver?

Mess-Paraver is a tool that integrates the Mess memory system profiling framework with BSC's Paraver performance analysis tool. This integration enhances memory-related application profiling by adding a new layer of information related to the application's memory performance metrics. The tool enables researchers and developers to understand memory system performance and quantify the pressure their applications put on the memory system.

By combining Mess's bandwidth-latency curve analysis with Paraver's flexible trace visualization and analysis capabilities, Mess-Paraver provides a comprehensive view of how applications interact with memory systems. This information can be correlated with other application runtime activities and source code, leading to better overall understanding of application characteristics and behavior.

Paraver Mess Image

Integration with Paraver

Paraver is a flexible data browser for application performance analysis developed at BSC. It can display and analyze application MPI calls, duration of computing phases, values of hardware counters, and more. Paraver can also summarize application behavior in histograms and link it with corresponding source code. The tool's expressive power, flexibility, and capability to efficiently handle large traces make it ideal for detailed performance analysis.

Mess-Paraver extends Paraver's capabilities by integrating Mess memory profiling. The tool processes memory counter traces collected with EXTRAE, computes memory stress metrics using Mess bandwidth-latency curves, and generates new trace files that can be visualized directly in Paraver. This allows users to see memory stress scores, bandwidth, latency, and other metrics alongside traditional performance data.

Mess Trace Image

The integration works seamlessly within Paraver's workflow: users load their application traces, run Mess-Paraver from the Paraver interface, and immediately gain access to memory system insights without leaving their familiar analysis environment.

How It Works

The Mess-Paraver workflow consists of several key steps:

  1. Application Instrumentation: Use EXTRAE to instrument the application's execution, configuring it to gather uncore memory counters (CAS_COUNT_RD and CAS_COUNT_WR) from Integrated Memory Controllers (IMCs). EXTRAE generates trace files (.prv, .pcf, .row) containing memory activity data.
  2. Memory Counter Processing: Mess-Paraver reads the EXTRAE traces, extracts memory read and write events, and calculates bandwidths per IMC and per socket. It computes write ratios and total bandwidths at different timestamps throughout the application execution.
  3. Memory Metrics Calculation: Using the computed bandwidths and write ratios, along with pre-computed Mess bandwidth-latency curves for the target platform, Mess-Paraver calculates memory stress metrics including latency, lead-off latency, maximum latency, stress score, and bandwidth values.
  4. Trace Generation: Mess-Paraver generates new trace files containing the computed memory metrics, which can be loaded directly into Paraver for visualization and analysis alongside other performance data.
Mess Dashboard Image

The tool also provides an interactive web-based dashboard for exploring memory metrics, viewing application points on bandwidth-latency curves, and analyzing memory stress patterns across different application phases.

Memory Metrics

Mess-Paraver computes and visualizes several key memory metrics:

  • Write Ratio: The proportion of write operations relative to total memory operations (# writes / (# writes + # reads))
  • Bandwidth: Total memory bandwidth (GB/s) including both read and write traffic
  • Maximum Bandwidth: The maximum bandwidth the system could achieve with the current write ratio
  • Latency: Memory access latency (ns) inferred from bandwidth and bandwidth-latency curves
  • Lead-off Latency: Minimum possible latency for the current write ratio
  • Maximum Latency: Maximum latency across write ratios for the used bandwidth
  • Stress Score: A value from 0 to 1 indicating how close the application is to the memory system's limits. Higher scores indicate greater memory pressure.

These metrics are visualized in Paraver with color-coded stress scores (green for low stress, yellow for moderate, red for high stress), making it easy to identify memory bottlenecks and understand application memory behavior patterns.

Use Cases

Mess-Paraver is particularly valuable for:

  • Identifying memory bottlenecks in HPC applications by correlating memory stress with application phases and MPI calls
  • Understanding how applications interact with memory systems across different execution phases
  • Optimizing memory access patterns by linking memory behavior to source code locations
  • Comparing memory behavior across different application versions or configurations
  • Making data placement decisions in heterogeneous memory systems (e.g., DDRx DIMMs and HBM devices)
  • Analyzing memory system utilization and identifying opportunities for performance improvement

Key Advantages

Seamless Integration

Integrates Mess memory profiling capabilities directly into Paraver, enabling comprehensive memory system analysis within familiar performance analysis workflows.

Memory Stress Visualization

Visualizes memory stress scores with intuitive color gradients (green-yellow-red) that help developers quickly identify memory bottlenecks and pressure points.

Timeline Analysis

Correlates memory metrics with application runtime behavior, MPI calls, compute phases, and source code locations for comprehensive performance understanding.

Bandwidth-Latency Curves

Plots application memory usage on Mess bandwidth-latency curves, showing how applications interact with memory system characteristics.

Uncore Counter Support

Leverages EXTRAE's uncore counter collection to measure memory controller activity (CAS_COUNT_RD/WR) for accurate memory profiling.

Interactive Dashboards

Provides interactive web-based visualization tools for exploring memory metrics, application overview, and detailed analysis.

Getting Started

To use Mess-Paraver, you'll need both Paraver and Mess-Paraver installed. Paraver can be downloaded from the BSC Tools website . Mess-Paraver is available on GitHub with detailed documentation.

To generate compatible traces, configure EXTRAE to collect uncore memory counters (CAS_COUNT_RD and CAS_COUNT_WR) from Integrated Memory Controllers. The tool requires EXTRAE version 4.2.0 or higher and proper configuration of uncore counter collection processes. Detailed instructions for setting up EXTRAE with uncore counters are available in the Mess-Paraver documentation.

Contact

For any inquiries regarding Mess-Paraver, please contact: