Optimizing Compiler Efficiency: A Comparative Study of Parallelization Frameworks for Register Allocation
摘要
Register allocation is crucial for compiler optimization, efficiently assigning variables to processor registers, minimizing memory accesses, and improving program performance during compilation. Extended time spent on register allocation can result in prolonged compilation times, adversely affecting the overall runtime performance of the program. Therefore, parallelization becomes necessary to expedite the optimization process, distributing the computational load across multiple processor cores and accelerating the generation of efficient machine code. The dilemma in selecting the appropriate parallel programming framework arises from the application’s characteristics and optimization goals. Our primary objective is to evaluate widely used frameworks such as OpenMP, MPI, CUDA and determining the most suitable one for resource allocation tailored to specific parallelization requirements. Across varying thread counts the optimal execution time consistently occurred with Eight threads for each parallelization technique. Comparing those three parallelization techniques CUDA gave the minimal execution time i.e., 0.002345 s, enhancing the register allocation process.