Daily Arxiv

This page organizes papers related to artificial intelligence published around the world.
This page is summarized using Google Gemini and is operated on a non-profit basis.
The copyright of the paper belongs to the author and the relevant institution. When sharing, simply cite the source.

Discovering Software Parallelization Points Using Deep Neural Networks

Created by
  • Haebom

Author

Izavan dos S. Correia, Henrique C. T. Santos, Tiago A. E. Ferreira

Outline

This study proposes a deep learning-based approach to classify loops in programming code based on their parallelizability. Using two genetic algorithm-based code generators, we generated two types of code: (i) independent loops that are parallelizable and (ii) ambiguous loops whose dependencies are unclear, making it difficult to determine whether they are parallelizable. The generated code fragments were tokenized and preprocessed to create a robust dataset. Two deep learning models, a deep neural network (DNN) and a convolutional neural network (CNN), were implemented to perform classification. Robust statistical analysis was performed to validate the predicted performance of the DNN and CNN models across 30 independent runs. While the CNN exhibited slightly higher average performance, the two models exhibited similar variability. Experiments with various dataset sizes highlighted the importance of data diversity on model performance. These results demonstrate the feasibility of automatically identifying parallelizable structures in code using deep learning, offering a promising tool for software optimization and performance enhancement.

Takeaways, Limitations

Demonstrating the feasibility of automatically identifying parallelizable structures within code using deep learning.
Provides potential tools for software optimization and performance enhancement.
Both DNN and CNN models show similar performance.
Dataset diversity has a significant impact on model performance.
Further research is needed on how to handle ambiguous loops.
Research on applicability and scalability in real-world code environments is needed.
👍