Abstract
This paper compares programming environments that exploit heterogeneous systems to process a large amount of data efficiently. Our motivation is to investigate the feasibility of the adaptive, transparent migration of intensive computation for a large amount of data across heterogeneous programming languages and processors for high performance and programmability. We compare a variety of programming environments composed of programming languages, such as Java and C, memory space models, such as distinct and shared memory, and parallel processors, such as general-purpose CPUs and graphics processing units (GPUs) to examine their performance-programmability tradeoffs. In addition, we introduce a software-based shared virtual memory that creates a view of the host memory inside GPU kernels to enable seamless computation offloading from the host to the device. This paper reveals a programmability-performance hierarchy in which programs increase their performance at the cost of decreasing programmability. The experimental results suggest the desirability of a well-balanced system.
Original language | English |
---|---|
Article number | 7935359 |
Pages (from-to) | 10081-10092 |
Number of pages | 12 |
Journal | IEEE Access |
Volume | 5 |
DOIs | |
Publication status | Published - 2017 |
Bibliographical note
Funding Information:This work was supported in part by the National Research Foundation of Korea Grant through the Korean Government (MSIP) under Grant 2015R1C1A1A01052876 and in part by the Institute for Information and Communications Technology Promotion Grant through the Korean Government (MSIP) under Grants R0190-16-2012 and 2017-0-00142.
Publisher Copyright:
© 2013 IEEE.
All Science Journal Classification (ASJC) codes
- Computer Science(all)
- Materials Science(all)
- Engineering(all)