PREDVIĐANJE PROFILA IZVRŠAVANJA PROGRAMA TEHNIKAMA MAŠINSKOG U ČENJA

eBiblioteka

 
 

PREDVIĐANJE PROFILA IZVRŠAVANJA PROGRAMA TEHNIKAMA MAŠINSKOG U ČENJA

Show full item record

Title: PREDVIĐANJE PROFILA IZVRŠAVANJA PROGRAMA TEHNIKAMA MAŠINSKOG U ČENJA
Author: Čugurović, Milan
Abstract: Compilers use program profiles to perform profile-guided optimizations and pro- duce efficient programs. Although dynamic profilers generate high-quality profiles, they have significant drawbacks. They complicate the application build pipeline by requiring two compi- lation steps and an additional profile collection run. Dynamic profilers also consume substantial time and memory and place a heavy burden on developers to create suitable workloads that accurately reflect typical application usage, cover important code paths, and generate well- distributed profiles. In response to the shortcomings of dynamic profilers, modern static profilers employ ma- chine learning (ML) techniques to predict program profiles. However, state-of-the-art ML-based static profilers often rely on handcrafted features that are platform-specific and difficult to adapt across different architectures and programming languages. They also tend to use computation- ally intensive deep neural networks, which increase application compilation time. Moreover, ML-based static profilers can degrade the performance of optimized programs due to inaccurate profile predictions. This dissertation presents GraalSP , an ML-based static profiler that is portable, polyglot, efficient, and robust. GraalSP achieves portability by defining features on a high-level, graph- based intermediate representation and by partially automating the feature extraction process. This design makes GraalSP polyglot, allowing it to predict profiles for programs written in any language that compiles to Java bytecode, such as Java, Scala, or Kotlin. GraalSP is efficient due to its use of a lightweight XGBoost model based on decision trees, and robust because it relies on carefully designed heuristics that correct machine learning predictions and ensure high performance in programs optimized using the predicted profiles. We integrate GraalSP into the Enterprise GraalVM Native Image compiler and evaluate it on 28 benchmarks from the Renaissance, DaCapo, and DaCapo Scala benchmark suites. These suites represent a modern and diverse collection of benchmarks, featuring numerous real-world workloads across a variety of programming paradigms. Our comprehensive evaluation shows that GraalSP achieves a geometric mean speedup of 7.46% in execution time compared to the default compiler configuration, which models program profiles using a uniform distribution. This dissertation also presents a detailed qualitative and quantitative analysis to position and compare the proposed solution against state-of-the-art static profilers. Additionally, to enhance and expand the evaluation and support developers in analyzing GraalSP ’s predictions, this dissertation introduces the GraalSP-PLog tool. This tool allows developers to run the GraalSP static profiler on any program and generate detailed prediction reports, making it easier to inspect individual predictions and identify model mispredictions. Since GraalSP provides substantial performance gains, has minimal impact on binary size and compile time, and includes a modern, fully automated model retraining pipeline, it is well- suited for commercial deployment. As a result, GraalSP has been the default static profiler for the Enterprise GraalVM Native Image compiler since June 2023, consistently improving performance with every build.
URI: http://hdl.handle.net/123456789/5778
Date: 2025-10

Files in this item

Files Size Format View
Milan_Cugurovic_doktorska_disertacija.pdf 5.694Mb PDF View/Open

The following license files are associated with this item:

This item appears in the following Collection(s)

Show full item record