Bilkent University
Department of Computer Engineering
S E M I N A R

 

Auto-parallelization Framework to Leverage Emerging Heterogeneous Parallel Architectures

 

İsmail Aktürk
Ph.D. Student Student
Computer Engineering Department
Bilkent University

During the last decade we have faced a new trend in computer architecture field. Instead of increasing frequency of a uniprocessor to provide higher the computational power, multiple simpler processor cores are replicated on a single die that provide highly parallel computational power with decent power consumption. Such architecture is known as Chip Multiprocessor(CMP) or multicore. In addition to CMPs, the development of General Purpose GPUs(GPGPU) and other accelerators such as Intel's Many Integrated Core(MIC) expand the parallel computing space for the programmers. We also start to see the architectures consist of different types of processors and accelerators together known as heterogeneous parallel platforms. Although we have highly parallel platforms, the programming for these platforms and leveraging the parallel device remains challenging. Especially scientific community has an immense amount of codebase that is written sequentially in C and/or Fortran. In order to leverage the emerging heterogeneous parallel architectures programmers need to rewrite the codebase in languages developed for parallel platforms such as OpenCL and CUDA, or they need to use compiler directives such as OpenMP and OpenACC that indicate the parallel regions of the code and the target for offloading. To remove the burden of rewriting existing code in parallel programming language or dealing with compiler directives from the programmer, we propose an auto-paralellization framework. The proposed framework takes the sequential code as an input and automatically identifies the parallel regions that can be run on parallel device. Then, it inserts appropriate compiler directives into the source code. While inserting compiler directives, the framework employs a cost function that helps to decide which parallel region will run on which one of the existing parallel devices in the system.

Keywords: Auto-parallelization, compiler directives, code offloading

 

DATE: 02 April, 2012, Monday @ 16:20
PLACE: EA409