Hybrid Approach for Parallelization of Sequential Code with Function Level and Block Level Parallelization
K. Arun Kumar, Aasish Pappu, K. Senthil Kumar, S. Sanyal
Abstract
K. Arun Kumar, Aasish Pappu, K. Senthil Kumar, S. Sanyal
Abstract
Automatic parallelization of a sequential code is about finding parallel segments in the code and executing these segments parallely by sending them to different computers in a grid. Basically, parallel segments in the code can be found by doing block level analysis, instruction level analysis or function level analysis. Block is any continuous part of the code that performs a particular task. This paper talks about a hybrid approach that combines the block level analysis with functional level analysis for parallelization of sequential code and its illustrates its advantages over block level parallelization and function level parallelization performed independently. In this approach, segments of code are identified as basic blocks. These blocks are analyzed to identify them as parallelizable or dependent. Loops which are also identified as blocks are parallelized using existing loop parallelization techniques. This information would be used for automatic parallel processing of the set of independent blocks on different nodes in the grid using message passing interface (MPI). The system will annotate the MPI library functions to the program at appropriate positions in the source code to proceed with the automatic parallelization and execution of the program
OpenAlex reports 7 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Automatic parallelization of a sequential code is about finding parallel segments in the code and executing these segments parallely by sending them to different computers in a grid. Basically, parallel segments in the code can be found by doing block level analysis, instruction level analysis or function level analysis. Block is any continuous part of the code that performs a particular task. This paper talks about a hybrid approach that combines the block level analysis with functional level analysis for parallelization of sequential code and its illustrates its advantages over block level parallelization and function level parallelization performed independently. In this approach, segments of code are identified as basic blocks. These blocks are analyzed to identify them as parallelizable or dependent. Loops which are also identified as blocks are parallelized using existing loop parallelization techniques. This information would be used for automatic parallel processing of the set of independent blocks on different nodes in the grid using message passing interface (MPI). The system will annotate the MPI library functions to the program at appropriate positions in the source code to proceed with the automatic parallelization and execution of the program
Key concepts: Automatic parallelization, Computer science, Parallel computing, Block (permutation group theory), Code (set theory), Set (abstract data type), Programming language, Compiler