Code refactoring of HPC applications for multicore processors

Speed has always been one of the most important components for computing system benchmarking. In this report, we present an Eclipse-based user-guided refactoring plug-in that assists the users to refactor sequential C++ programs for parallelism. This refactoring plug-in will use the Intel Threading...

Full description

Saved in:
Bibliographic Details
Main Author: Low, Teck Seng.
Other Authors: Stephen John Turner
Format: Final Year Project
Language:English
Published: 2012
Subjects:
Online Access:http://hdl.handle.net/10356/48564
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Speed has always been one of the most important components for computing system benchmarking. In this report, we present an Eclipse-based user-guided refactoring plug-in that assists the users to refactor sequential C++ programs for parallelism. This refactoring plug-in will use the Intel Threading Building Block (TBB) parallel library to achieve parallelism. This plug-in will help the users to identify Standard Template Library (STL) vector and refactor to the corresponding TBB containers to ensure thread-safety. The parallelism can be achieved by using the TBB parallel_for function to replace loops. This plug-in will also help the user to identify all the vector iterators for-loops and allow them to select and refactor to the equivalent parallel operations. At the end of this report, we used this plug-in to refactor an actual application, N-Body Simulation, and benchmarked the performance. The result showed that the performance was increased by 8 times when running on an eight-core machine.