Table of Contents
Fetching ...

Inspection of I/O Operations from System Call Traces using Directly-Follows-Graph

Aravind Sankaran, Ilya Zhukov, Wolfgang Frings, Paolo Bientinesi

TL;DR

The paper tackles identifying I/O bottlenecks in HPC programs by turning system-call traces into a Directly-Follows Graph, enabling cross-program comparisons. A mapping function $\hat{f}$ converts raw events to file-access activities, producing activity-logs that feed the DFG $G[L_f(\mathcal{C})]$. Contributions include a formal DFG synthesis framework with activity statistics (relative duration $rd_f$, total bytes $b_f$, average rate $\bar{dr}_f$, max-concurrency $mc_f$, and derived load $DR = mc_f \times \bar{dr}_f$) and two graph-coloring methods for comparing traces. Applied to the IOR benchmark, the method reveals contention patterns across SSF vs FPP and MPI-IO usage, offering a practical tool for HPC I/O tuning.

Abstract

We aim to identify the differences in Input/Output(I/O) behavior between multiple user programs through the inspection of system calls (i.e., requests made to the operating system). A typical program issues a large number of I/O requests to the operating system, thereby making the process of inspection challenging. In this paper, we address this challenge by presenting a methodology to synthesize I/O system call traces into a specific type of directed graph, known as the Directly-Follows-Graph (DFG). Based on the DFG, we present a technique to compare the traces from multiple programs or different configurations of the same program, such that it is possible to identify the differences in the I/O behavior. We apply our methodology to the IOR benchmark, and compare the contentions for file accesses when the benchmark is run with different options for file output and software interface.

Inspection of I/O Operations from System Call Traces using Directly-Follows-Graph

TL;DR

The paper tackles identifying I/O bottlenecks in HPC programs by turning system-call traces into a Directly-Follows Graph, enabling cross-program comparisons. A mapping function converts raw events to file-access activities, producing activity-logs that feed the DFG . Contributions include a formal DFG synthesis framework with activity statistics (relative duration , total bytes , average rate , max-concurrency , and derived load ) and two graph-coloring methods for comparing traces. Applied to the IOR benchmark, the method reveals contention patterns across SSF vs FPP and MPI-IO usage, offering a practical tool for HPC I/O tuning.

Abstract

We aim to identify the differences in Input/Output(I/O) behavior between multiple user programs through the inspection of system calls (i.e., requests made to the operating system). A typical program issues a large number of I/O requests to the operating system, thereby making the process of inspection challenging. In this paper, we address this challenge by presenting a methodology to synthesize I/O system call traces into a specific type of directed graph, known as the Directly-Follows-Graph (DFG). Based on the DFG, we present a technique to compare the traces from multiple programs or different configurations of the same program, such that it is possible to identify the differences in the I/O behavior. We apply our methodology to the IOR benchmark, and compare the contentions for file accesses when the benchmark is run with different options for file output and software interface.
Paper Structure (11 sections, 11 equations, 9 figures)

This paper contains 11 sections, 11 equations, 9 figures.

Figures (9)

  • Figure 1: The commands for tracing ls and ls -l with strace, each executed on three MPI processes, generating one trace file for each process.
  • Figure 2: Examples of traces generated by strace.
  • Figure 3: The DFG synthesis for the event-logs in Equation \ref{['eq:cases_eg']}. The nodes indicate the file access activities and the number on the edges indicate the number of times the directly-follows relation between two activities was observed.
  • Figure 4: The DFG synthesis for the event-logs in Equation \ref{['eq:cases_eg']}. The nodes indicate the file access activities and the number on the edges indicate the number of times the directly-follows relation between two activities was observed.
  • Figure 5: The timeline plot: $\mathbf{t}_{\hat{f}}("\textit{read:/usr/lib}", \mathcal{C}_b)$.
  • ...and 4 more figures