Skip to content

JobMon - Job Performance Metrics

Work in Progress

JobMon is not yet fully available. Until the official launch of HoreKa 2 (Phase 2) in September, we will be bringing services online gradually. Some services may therefore not yet be available or fully functional. Functionality may be incomplete or subject to change. Thank you for your patience!

JobMon helps you answer common performance questions such as:

  • Why is my job so slow, and what could be the bottleneck?
  • Did my optimization improve performance?
  • Is the limiting factor the application, or the cluster hardware?
  • Am I fully utilizing the resources I requested?

JobMon

Quick start

For a first analysis of a job:

  1. Enter the job ID in the search bar at the top of the page and open the corresponding job.
  2. Use the spider plot as a high-level summary of resource utilization.
  3. Select the time range corresponding to the workload phase you want to investigate.
  4. Inspect the relevant metric categories and correlate multiple metrics rather than relying on a single signal.
  5. Use tags to mark optimization variants and make related jobs easier to find and compare.

What is JobMon?

JobMon is a web-based service for job performance analysis on HoreKa 2. It visualizes selected performance metrics collected on compute nodes while your job is running. No manual instrumentation is required.

JobMon retains performance metrics for up to 90 days, allowing recent runs to be compared and optimization steps to be evaluated.

Accessing JobMon

JobMon is available to HoreKa 2 users. Users normally authenticate through the FeLS service. Local accounts may also be available where configured. After authentication, you are redirected to the JobMon welcome page.

Login and Welcome pages

login page

Log in via:

  • FeLS authentication
  • Local account

welcome page

You will typically find:

  • User information
  • Job statistics: number of jobs in the last week, number of finished jobs, number of running jobs

Data retention policy

Metrics are retained for 90 days. Job metadata is retained for longer, but time-series diagrams no longer contain metric data for jobs older than 90 days.

Privacy model

Users can only view metrics for their own jobs. Administrators have additional privileges (e.g., viewing all jobs, applying system-wide tags, viewing system-wide metrics and statistics).

Sharing jobs with external users

Jobs can also be shared with people who do not have a cluster account. The job owner or an administrator can enable the guest view and generate a unique link that provides read-only access to the job.

Analyzing jobs

Job performance commonly falls into one (or more) of the following categories:

  1. Compute bound: CPU/GPU compute throughput is the limiting factor.
  2. Memory bound: Memory bandwidth or latency is the limiting factor.
  3. Communication bound: Node-to-node communication is the limiting factor.
  4. I/O bound: Filesystem throughput or metadata performance is the limiting factor.

Jobs are often mixed

Many real workloads alternate between phases (e.g., compute → communication → I/O checkpoint). Use the per-job time series to isolate the steady-state region of each phase.

Interpret metrics together

Individual metrics usually provide indicators rather than definitive proof of a bottleneck. Correlate compute, memory, communication, and I/O metrics over the same time range before drawing conclusions about the limiting resource.

What to look for in JobMon

Compute bound

  • Typical signals: sustained CPU FLOP/s and/or GPU utilization together with comparatively lower pressure on memory, communication, and I/O resources.

  • Where to investigate: Performance (FLOP/s, IPC, GPU utilization), then correlate with Memory, Interconnect, and Filesystem as needed.

CPU FLOP/s and floating-point precision

JobMon currently measures CPU floating-point activity only for 64-bit floating-point operations. Workloads that primarily use 32-bit floating-point arithmetic may therefore show very low FLOP/s values or no FLOP/s data, even when they are compute-intensive.

A low CPU FLOP/s value should therefore not, by itself, be interpreted as evidence that a job is not compute-bound.

Memory bound

  • Typical signals: sustained CPU memory bandwidth with comparatively low compute throughput; on GPUs, sustained memory activity together with lower compute utilization than expected for the workload.
  • Where to investigate: Memory (CPU bandwidth, GPU memory utilization), then correlate with Performance (IPC/FLOP/s).

Communication bound

  • Typical signals: sustained or phase-correlated InfiniBand traffic and/or packet rates, often accompanied by reduced CPU/GPU activity while communication dominates.
  • Where to investigate: Interconnect (send/receive bandwidth and packet rates), then correlate with Performance.

I/O bound

  • Typical signals: sustained filesystem throughput, high metadata-operation rates, or periodic bursts associated with checkpointing. CPU/GPU utilization may decrease during these phases.
  • Where to investigate: Filesystem (throughput, IOPS, and metadata operations), correlated with Performance.

To illustrate these patterns, the next sections use representative benchmarks.

Compute bound

Performance is limited by CPU and/or GPU compute throughput (typically floating-point operations). Benchmarks from this category include:

  • DGEMM

    DGEMM performs a matrix–matrix multiplication C = A · B. For n×n matrices, it requires O(n^3) compute operations but only O(n^2) memory operations. CPU and GPU implementations exist.

    Characteristics

    • High CPU FLOP/s (CPU run) or high GPU utilization (GPU run)
    • Moderate CPU memory bandwidth usage compared to compute saturation

Memory bound

Performance is limited by the main memory subsystem (bandwidth and/or latency). Benchmarks from this category include:

  • STREAM / BabelStream

    STREAM performs four kernels: copy (c=a), scale (b=α·c), add (c=a+b), and triad (a=b+α·c). It stresses memory bandwidth heavily. For n-dimensional vectors, computation requires O(n) memory operations but only O(n) compute operations. CPU and GPU implementations are available for this benchmark.

    Characteristics

    • CPU memory bandwidth near peak (CPU STREAM)
    • GPU memory utilization near saturation (BabelStream on GPU)
    • Compute metrics (FLOP/s, IPC) typically very low.
  • High Performance Conjugate Gradients (HPCG)

    HPCG runs conjugate gradients on a sparse matrix and is commonly used as a proxy for memory-bound, irregular access patterns. CPU and GPU implementations exist.

    Characteristics

    • Sustained memory pressure over time
    • Often clear phase behavior (setup vs solve), depending on implementation

Communication bound

Performance is limited by the interconnect (bandwidth and/or latency). Benchmarks from this category include:

  • OSU Micro-Benchmarks (OMB)

    OMB performs point-to-point communication with messages of increasing size to measure bandwidth and latency (CPU and GPU variants exist).

    Characteristics

    • InfiniBand send/receive bandwidth and packet rates rising with message size
    • Visible "steps" when the message size changes

I/O bound

Performance is limited by filesystem throughput and/or metadata operations. These cases are common in checkpointing, heavy file-per-rank workloads, and metadata-intensive pipelines.

Benchmarks from this category include:

  • IOR

    Characteristics

    • IOR: sustained or bursty read/write throughput; periodic spikes are typical for checkpoint patterns

Jobs page

This page presents an overview of your recent batch jobs on JobMon. Jobs can be filtered by:

  • partition
  • exit codes
  • number of nodes / number of GPUs
  • job status (finished/running/all)
  • time range (e.g., last week)
  • tags (e.g., baseline, optA, optB)

The filtered jobs can be sorted by:

  • job length
  • number of nodes
  • start time
  • stop time
  • job ID

Job overview: Filter job data

Each job displayed on the Jobs page is represented by its metadata and a spider plot. The spider plot provides a high-level summary of resource utilization and can help identify whether a job is worth investigating as compute-, memory-, or communication-intensive. It should be treated as an indicator rather than a definitive bottleneck classification, particularly for jobs with multiple execution phases.

CPU compute activity may also be underestimated for applications that primarily use 32-bit floating-point arithmetic, because the CPU FLOP/s metric currently covers only 64-bit floating-point operations.

  • CPU floating-point operations per second (FLOP/s)
  • CPU memory bandwidth
  • GPU utilization
  • GPU memory utilization
  • InfiniBand bandwidth
Examples: Spider Plot

Job Overview for Compute Bound CPU-Job

DGEMM is capable of using the entire available floating-point power of the node. This also uses a significant portion of the memory bandwidth.

Job Overview for Memory Bound CPU-Job

STREAM saturates the entire memory bandwidth. All other resources are under-utilized.

Job Overview for communication Bound CPU-Job

OSU Micro-Benchmarks saturates the entire InfiniBand bandwidth. Some memory bandwidth utilization can also be seen as messages are transferred from memory to memory.

Job Overview for Compute Bound GPU-Job

The DGEMM implementation uses only a single GPU. Therefore, only a quarter of the available floating-point performance of the GPUs is utilized. This is reflected in the use of memory bandwidth as well.

Job Overview for Memory Bound GPU-Job

HPCG runs distributed on all GPUs of the node. HPCG saturates the entire memory bandwidth of these GPUs. The compute units are also well utilized.

Job Overview for communication Bound GPU-Job

InfiniBand communication between GPUs is not as performant as between CPUs. Therefore, OSU Micro-Benchmarks cannot utilize the entire available InfiniBand bandwidth.

Spider plot

The spider plot depends on the availability and successful analysis of the underlying metrics. If metrics are missing or analysis fails, the plot may be empty or contain missing axes. Always inspect the per-job time series before drawing conclusions from the spider plot alone.

Per-job page

Configuration options

  • Node filtering: Show only nodes of interest.
  • Metric filtering: Show only selected metrics.
  • Time range selection: Restrict all diagrams to a specific time range using the range slider.
  • Tag modification:

    Tags are a handy tool to mark jobs during different optimization steps (e.g. tags: "without optimization", "optimization A", "optimization B", ...) or jobs from different workflows (e.g. tags: "workflow A", "workflow B"). Filtering for tags on the jobs page allows easily finding all jobs with the same tag.

  • Set sample rate:

    Different sampling intervals are available, particularly for longer jobs. Smaller intervals provide more detail but require more data to be retrieved and rendered.

  • Toggle for Automatic Scaling:

    Automatically determine diagram y-axis limits from the displayed values.

  • Toggle for Changepoints:

    Changepoint detection identifies candidate times at which metric behavior changes. Detected changepoints are displayed as vertical lines in the diagrams. They are indicators of behavioral changes and do not necessarily correspond to application-phase boundaries.

  • Toggle for Quantile view:

    • Quantile view is a useful feature to improve clarity when too many graphs are displayed in one diagram.
    • The displayed series are condensed into the 25th, 50th, and 75th percentiles.
    • At each timestamp, the 25th percentile indicates the value below which 25% of the displayed measurements fall.
    • The 50th percentile is also known as the median.
    • The interval between the 25th and 75th percentiles is the interquartile range and provides an indication of the spread between the displayed series.
    Examples: Quantile View

    Jobs: Toggle Quantile view off for CPU temperature

    The CPU temperatures are collected per hardware thread; therefore, the diagram appears very cluttered.

    Jobs: Toggle Quantile view on for CPU temperature

    The Quantile View shows the distribution of CPU temperatures more clearly.

    Jobs: Toggle Quantile view off for CPU frequency

    The CPU frequencies are collected per CPU core; therefore, the diagram appears very cluttered.

    Jobs: Toggle Quantile view on for CPU frequency

    The Quantile View shows the distribution of CPU frequencies more clearly.

Performance categories

Metrics are grouped into the following categories.

Energy

This category offers diagrams for:

  • CPU power consumption of DRAM channels and the package
  • GPU power consumption
  • Server system power consumption
Examples: Category Energy

Jobs: CPU Power DRAM for benchmark STREAM

STREAM, as a memory-bound benchmark, puts constant pressure on the DRAM subsystem. This is reflected by the consistently high power consumption of this subsystem.

Jobs: CPU Power DRAM for benchmark DGEMM

DGEMM, as a compute-bound benchmark, puts less pressure on the DRAM subsystem. This is reflected in the varying power consumption of the DRAM subsystem over time.

Jobs: CPU Power Package for benchmark HPCG

The GPU implementation of the HPCG benchmark has a preparation phase executed on the CPU and a computation phase executed on the GPU. During the first phase, the power consumption of the CPU package is therefore higher than in the subsequent phase.

Jobs: GPU Power Consumption for benchmark HPCG

The GPU implementation of the HPCG benchmark has a preparation phase executed on the CPU and a computation phase executed on the GPU. During the first phase, the power consumption of the GPUs is therefore lower than in the subsequent phase.

Filesystem

This category offers the following diagrams for Home and Workspace filesystems:

  • I/O operations/s (reads and writes)
  • Read/write throughput (bytes/s)
  • Metadata operations/s
Examples: Category Filesystem

Jobs: GPFS Workspace read performance for IOR benchmark

Bytes read for the IOR benchmark.

Jobs: GPFS Workspace write performance for IOR benchmark

Bytes written for the IOR benchmark.

Jobs: GPFS Workspace throughput for IOR benchmark

Total throughput for the IOR benchmark.

Interconnect

This category offers diagrams for:

  • InfiniBand: Send, receive and aggregated bandwidth
  • InfiniBand: Send, receive and aggregated number of packets
Examples: Category Interconnect

Jobs: InfiniBand send bandwidth for OSU Micro-Benchmark

InfiniBand send bandwidth for OSU Micro-Benchmark. In the point-to-point communication, node hkn0201 sends data while node hkn0202 only receives data (send bandwidth is zero).

Jobs: InfiniBand receive bandwidth for OSU Micro-Benchmark

InfiniBand receive bandwidth for OSU Micro-Benchmark. In the point-to-point communication, node hkn0202 receives data while node hkn0201 only sends data (receive bandwidth is zero).

Jobs: InfiniBand bandwidth for OSU Micro-Benchmark

InfiniBand bandwidth for OSU Micro-Benchmark. In the point-to-point communication, both nodes use the same bandwidth, even though one of the nodes only sends data and the other one only receives data.

Memory

This category offers diagrams for:

  • Amount of memory used on the system (CPU) and on the GPU
  • CPU memory bandwidth
  • GPU memory utilization (in %) and frequency
Examples: Category Memory

Jobs: CPU Memory Bandwidth for Benchmark STREAM

STREAM, as a memory-bound benchmark, puts constant pressure on the memory subsystem.

Jobs: CPU Memory Bandwidth for Benchmark DGEMM

DGEMM, as a compute-bound benchmark, puts less pressure on the memory subsystem. This is reflected in the varying bandwidth over time.

Jobs: GPU Memory Utilization for Benchmark BabelStream

Babelstream, as a memory-bound benchmark, fully utilizes the memory subsystem of the GPU.

Jobs: GPU Memory Utilization for Benchmark DGEMM

The GPU implementation of DGEMM, as a compute-bound benchmark, puts less pressure on the GPU memory subsystem. This is reflected in the varying utilization over time.

Performance

This category offers diagrams for:

  • 64-bit floating-point operations per second (FLOP/s), collected per hardware thread and aggregated per core or per socket

Note

CPU FLOP/s currently covers only 64-bit floating-point operations. Applications that predominantly use 32-bit floating-point arithmetic may therefore report very low FLOP/s values or no FLOP/s data.

  • Instructions per cycle (IPC), collected per hardware thread and aggregated per core or per socket
  • CPU time spent in kernel and in user space
  • One-minute Linux load average
  • GPU utilization
  • CPU and GPU frequencies
Examples: Category Performance

Jobs:

FLOP/s are collected per hardware thread. Because hardware threads on the same core share execution resources, aggregation per core can make core-level utilization easier to interpret.

Jobs:

FLOP/s are collected per hardware thread. Aggregation per socket can be useful for comparing utilization across CPU sockets.

Temperature

This category offers diagrams for:

  • CPU and GPU temperatures
Examples: Category Temperature

Jobs:

The GPU implementation of the DGEMM benchmark only utilizes one of the GPUs. Only this GPU gets hot, while the other GPUs maintain a lower temperature.

Jobs:

The GPU implementation of the HPCG benchmark has a preparation phase executed on the CPU and a computation phase executed on the GPU. During the first phase, the GPU is not utilized and therefore stays cooler than in the subsequent phase.

Additional Features

  • For multi-node jobs, there is a configuration option to select the per-node aggregation function used (e.g., average, sum, maximum).
  • Running jobs provide a live view covering the most recent 10 minutes.
  • Export metrics for offline analysis.
  • Favorite metric category
    • The default category is Performance. You can change it using the star button.
  • Metric analyzers:
    • Changepoint analyzer: A heuristic analyzer that marks times where metric behavior changes.
    • I/O analyzer: Analyzes I/O metrics by comparing the mean rate and the final sum against predefined threshold values. If thresholds are exceeded, tags are applied.
  • Roofline chart: Relates achieved floating-point performance to arithmetic intensity and can help distinguish workloads constrained primarily by memory bandwidth from those approaching a compute-performance limit.
  • Job sharing: Use the Share button to create a unique link through which other users can inspect the job in read-only mode.

Changepoint metrics

To avoid excessive load on the time-series database, changepoints are computed only for a subset of metrics selected by administrators. The sample rate at which they are computed is also chosen automatically.

Performance tips

  • Filter out metrics that are not relevant to your analysis. This can significantly improve readability and loading time in categories containing many metrics.

  • Choose a favorite category so that JobMon initially loads the metrics most relevant to your workflow.

  • JobMon selects a sample rate automatically. Selecting a very small sampling interval increases the amount of data retrieved and can substantially increase loading time.