Intel MIC (Many Integrated Core) is the first x86-based coprocessor architecture aimed at accelerating multi-core HPC applications. In the most common usage model, parallel code sections are offloaded to the MIC coprocessor using LEO (Language Extensions for Offload). The developer is responsible for identifying and specifying offloadable code regions, managing data transfers between the CPU and MIC and optimizing the application for performance, which requires some amount of effort and experimentation. In this paper, we present Apricot, an optimizing compiler and productivity tool for x86-compatible many-core coprocessors (such as Intel MIC) that minimizes developer effort by (i) automatically inserting LEO clauses for parallelizable code regions, (ii) selectively offloading some of the code regions to the coprocessor at runtime based on a cost model that we have developed, (iii) applying a set ofoptimizations for minimizing the data communication overhead and improving overall performance. Apricot is intended to assist programmers in porting existing multi-core applications and writing new ones to take advantage of the many-core coprocessor, while maximizing overall performance. Experiments with SpecOMP and NAS Parallel benchmarks show that Apricot can successfully transform OpenMP applications to run on the MIC coprocessor with good performance gains.
%0 Conference Paper
%1 Ravi:2012:AOC:2304576.2304585
%A Ravi, Nishkam
%A Yang, Yi
%A Bao, Tao
%A Chakradhar, Srimat
%B Proceedings of the 26th ACM international conference on Supercomputing
%C New York, NY, USA
%D 2012
%I ACM
%K compiler x86
%P 47--58
%R 10.1145/2304576.2304585
%T Apricot: an optimizing compiler and productivity tool for x86-compatible many-core coprocessors
%X Intel MIC (Many Integrated Core) is the first x86-based coprocessor architecture aimed at accelerating multi-core HPC applications. In the most common usage model, parallel code sections are offloaded to the MIC coprocessor using LEO (Language Extensions for Offload). The developer is responsible for identifying and specifying offloadable code regions, managing data transfers between the CPU and MIC and optimizing the application for performance, which requires some amount of effort and experimentation. In this paper, we present Apricot, an optimizing compiler and productivity tool for x86-compatible many-core coprocessors (such as Intel MIC) that minimizes developer effort by (i) automatically inserting LEO clauses for parallelizable code regions, (ii) selectively offloading some of the code regions to the coprocessor at runtime based on a cost model that we have developed, (iii) applying a set ofoptimizations for minimizing the data communication overhead and improving overall performance. Apricot is intended to assist programmers in porting existing multi-core applications and writing new ones to take advantage of the many-core coprocessor, while maximizing overall performance. Experiments with SpecOMP and NAS Parallel benchmarks show that Apricot can successfully transform OpenMP applications to run on the MIC coprocessor with good performance gains.
%@ 978-1-4503-1316-2
@inproceedings{Ravi:2012:AOC:2304576.2304585,
abstract = {Intel MIC (Many Integrated Core) is the first x86-based coprocessor architecture aimed at accelerating multi-core HPC applications. In the most common usage model, parallel code sections are offloaded to the MIC coprocessor using LEO (Language Extensions for Offload). The developer is responsible for identifying and specifying offloadable code regions, managing data transfers between the CPU and MIC and optimizing the application for performance, which requires some amount of effort and experimentation. In this paper, we present Apricot, an optimizing compiler and productivity tool for x86-compatible many-core coprocessors (such as Intel MIC) that minimizes developer effort by (i) automatically inserting LEO clauses for parallelizable code regions, (ii) selectively offloading some of the code regions to the coprocessor at runtime based on a cost model that we have developed, (iii) applying a set ofoptimizations for minimizing the data communication overhead and improving overall performance. Apricot is intended to assist programmers in porting existing multi-core applications and writing new ones to take advantage of the many-core coprocessor, while maximizing overall performance. Experiments with SpecOMP and NAS Parallel benchmarks show that Apricot can successfully transform OpenMP applications to run on the MIC coprocessor with good performance gains.},
acmid = {2304585},
added-at = {2012-11-07T15:04:14.000+0100},
address = {New York, NY, USA},
author = {Ravi, Nishkam and Yang, Yi and Bao, Tao and Chakradhar, Srimat},
biburl = {https://www.bibsonomy.org/bibtex/21da859e168f8b25c1174b6548af6cf38/ytyoun},
booktitle = {Proceedings of the 26th ACM international conference on Supercomputing},
doi = {10.1145/2304576.2304585},
interhash = {36ce5a8a7a66f6a6dfee85be7af0e990},
intrahash = {1da859e168f8b25c1174b6548af6cf38},
isbn = {978-1-4503-1316-2},
keywords = {compiler x86},
location = {San Servolo Island, Venice, Italy},
numpages = {12},
pages = {47--58},
publisher = {ACM},
series = {ICS '12},
timestamp = {2012-11-07T15:04:14.000+0100},
title = {Apricot: an optimizing compiler and productivity tool for x86-compatible many-core coprocessors},
year = 2012
}