I/O patterns modeling of HPC applications with call stacks for predictive prefetch
Louis-Marie Nicolas, Salim Mimouni, Philippe Couvée, Jalil Boukhobza · Future Generation Computer Systems · 2025
Modern high-performance computing (HPC) storage systems use heterogeneous storage technologies organized in tiers to find a compromise between capacity, performance, and cost. In these systems, prefetching is a common technique used to move the right data at the right moment from a slow to a fast tier to improve overall performance while using the costly high-performance tier only when needed. Effective prefetching requires precise knowledge of the application I/O patterns. This knowledge can be extracted through the source code, I/O tracing tools or I/O functions call stacks. State-of-the-art solutions based on the latter approach mainly focus on applications with regular I/O profiles to avoid scalability issues due to the grammar-based techniques used. In this paper, we present an approach based on I/O call stacks that models POSIX and STDIO I/O patterns for both regular and irregular applications, thanks to the use of directed graphs. We present different models usable for prefetching. Our models were used to predict the next I/O call stack on five real HPC applications with a prediction accuracy of up to 98%. Compared to the state-of-the-art Omnisc’IO, they incurred up to 120x lower model overhead (334 ns vs. 45 μ s on LAMMPS) and had a model size 10x to 15x smaller (463 B vs. 7 kB on LQCD).