Improving Performance Through Parallelization

parallelization n.w
1 / 17
Embed
Share

"Explore the challenges of improving program performance through parallelization with tools like DiscoPop and Rose. Learn about detecting parallelism patterns, extracting potential for machine learning datasets, automatic parallelization, and visualizing AST trees to enhance programming efficiency." (291 characters)

  • Programming
  • Efficiency
  • Parallelization
  • Machine Learning
  • AST Trees

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Parallelization Maxwell Johnson, Dan Black, Tyler Jaacks, Alex Thompson, Aaron Jencks

  2. Problem being Addressed and Motivations Improving performance is becoming more difficult as we have maximized old methods of improving performance and efficiency in programs. Majority of programmers have been taught to code sequentially Implementing parallelism at the programmer level to take advantage of modern computers having an increasing number of core processors. Figuring out what code can be parallelized can sometimes be confusing to the programmer. Use of tools/ libraries such as DiscoPop and Rose to gather a dataset of code that can be parallelized.

  3. Problem being Addressed (cont.) Some tools cannot detect parallelism patterns limited patterns / they just do parallelism detection Parallelization is important but difficult DiscoPoP is very useful because it gives us a large labeled dataset that can train ML Goal - gather a dataset for our client by applying DiscoPop and Rose autoPar to C/C++ projects

  4. Baseline knowledge Textbook - Structured Parallel Programming Read about patterns: Reduction, Stencil, Map, For-Join, and Pipeline Set of slides - University of Oregon Parallel Computing Center

  5. Extract potential To create dataset for machine learning we need information from existing applications Information can be extracted from existing tool Discopop After completing operations Discopop creates an output file showing loops and suggested Pragma code

  6. Automatic parallelization Discopop has a limited range of pattern recognition Needed another avenue of generating data for other pattern types Rose auto_par generates parallelized source files at compilation

  7. Visualize AST trees Visual AST trees are easier to read and analyze Default Clang output isn t easy to read Visualization performed through python script Builds Clang AST tree Parses info from Clang AST tree Builds a Visual AST tree in a graph

  8. General Challenges Research based project required time to become familiar with the background of the problem Provided Server - low on resources Low on storage Small number of cores No graphics card

  9. General Challenges Cont. Discopop - Didn t work out of the box on most candidate applications Many applications needed modification or were unsupported AST tree visualizer - no known solution available for use case

  10. How - How we managed our project Weekly meetings with the client to discuss progress and issues 1-2 meetings between group members each week Weekly sprints with tasks assigned to each member Tasks assigned by client and split amongst each member

  11. How - Tools and programs we used DiscoPoP - Discovery of Potential Parallelism Discovers and outputs areas of code that can be parallelized 1. Computational Unit Generation 2. Instrumentation 3. Reduction 4. Pattern Output

  12. How - Other tools AutoPar - Auto Parallelization Automatically injects OpenMP pragmas into C/C++ code OpenMP API for parallel programming Docker Virtual OS container for running AutoPar Git

  13. Accomplishments Created a slideshow explaining how multiprocessing works Created scripts to automate running of DiscoPoP on normal C projects, as well as CMAKE projects. Managed to create parallelized code for several different projects AutoPar Rose Wrote code to visualize the ASTs generated by Clang.

  14. Accomplishments cont. Tested DiscoPoP on several different test benchmarks BOTS Lulesh NASA Successfully ran DiscoPoP on MiniVite Lulesh Ember Polybench

  15. Summary of Contributions of each team member Tyler Jaacks Created a Docker script for DiscoPoP and Rose. Helped work on the Clang AST visualization tool. Maxwell Johnson DP/Rose on Polybench kernels and proxy apps Documented instructions for running DP on Polybench Dictionary of terms for website Alex Thompson DP/Rose on Ember and Polybench applications Demo 2 Video Server setup of LLVM, CMake, and DiscoPoP Aaron Jencks Created shell script for BOTs benchmark and documentation for DiscoPoP DP on MiniVite Application Helped work on AST visualization tool. Dan Black Performed DP/Rose on Lulesh and Polybench application Documented DiscoPop on CMake and Auto_par instructions Created script to run DiscoPop on simple CMake application

  16. DEMO DiscoPop - Alex AutoPar - Maxwell https://drive.google.com/file/d/1e9Rn8Oeft08XbzwXW4Pr6iC8y0V53IiL/view?usp=sharing Clang AST Visualizer - Tyler https://drive.google.com/file/d/15bZjdL5UD3wQg-N_dFdTC-EtZ-K9esUE/view?usp=sharing

More Related Content