PhD Defense: On Learning Behaviours of Parallel Code and Systems Across Modalities

Talk
Daniel Nichols
Time: 
03.24.2025 13:30 to 15:30
Location: 

IRB IRB-5105

Performance modeling is an integral part of the research process for computational scientists. It enables them to understand how different factors contribute to the final runtime of an application. This understanding is crucial to developing efficient scientific applications and simulations. While important, performance modeling is difficult as there are a large number of factors that may contribute to final performance. Factors such as the algorithm, problem size, implementation, architecture, and systems software stack all impact performance in an often complex relationship. Analytical models can be employed to study these causal variables and performance, however, they are difficult to scale up to a large number of input variables. Additionally, the relationship between the causal variables and performance may be unknown or complex, making it challenging to derive an analytical model. Fortunately, machine learning (ML) can help address these challenges as ML algorithms excel at modeling unknown and complex relationships. Furthermore, ML-based performance models can handle a large number of input variables, making them ideal for modeling complex scientific codes. By training ML models on historical performance data, computational scientists can develop accurate models that can predict the performance of new applications and simulations under different scenarios. However, current ML-based modeling approaches are limited to modeling one or two sources of performance data, such as hardware counters or application features. This limitation prevents models from making use of all available causal variables that may impact performance. In this thesis I introduce novel approaches to modeling performance that can make use of all available data sources. I further present performance latent spaces that can be used to model various output metrics, such as runtime and energy usage, at once. Finally, I present methods to effectively utilize these performance models by integrating them into batch schedulers and large language models.