StreamTrace: Fast Trace Analysis for Large-Scale Parallel Applications on a Single Node
Trace-based performance analysis provides essential insights for understanding and optimizing large-scale parallel applications. However, traces from applications running on tens of thousands of processes can easily exceed terabytes, far surpassing the memory capacity of typical computing nodes. Existing approaches either require expensive distributed analysis or cannot work on platforms with limited memory. To address these challenges, we present StreamTrace, a streaming trace analysis system that enables efficient analysis of massive traces on a single computing node with bounded memory consumption. StreamTrace introduces two key techniques: communication pattern-aware chunk partitioning that minimizes cross-chunk dependence, and dynamic priority-based chunk scheduling that reduces analysis waiting time by prioritizing frequently depended upon processes. Our evaluation on traces from applications with up to 8,192 processes demonstrates that StreamTrace achieves up to 3.48 × speedup on a single node over existing distributed systems. The ablation study shows the proposed technique can improve the performance over naive streaming implementations by up to 8.50 ×.