skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: The OpenACC data model: Preliminary study on its major challenges and implementations

Abstract

This paper describes how the OpenACC data model is implemented in current OpenACC compilers, ranging from research compilers (OpenUH and OpenARC) to a commercial compiler (the PGI OpenACC compiler). First, we summarize various memory architectures in today’s accelerator systems. We then describe details and issues in implementing the OpenACC data model in three different OpenACC compilers. This includes managing page tables, asynchronous data transfers, asynchronous memory allocate and free, host data construct, aliasing on a data directive, reusing device memory, partially present data, and adjacent data. We also discusses ongoing work to manage large, complex dynamic data structures. We measured the present table lookups, device memory allocation, pinned memory allocation, and managed memory in the three OpenACC compilers using eight OpenACC applications (seven from the SPEC ACCEL benchmark suite and a shock-hydrodynamics mini-application called LULESH).

Authors:
 [1]; ORCiD logo [2]; ORCiD logo [2];  [1];  [3];  [4]; ORCiD logo [5]
  1. NVIDIA, Santa Clara, CA (United States)
  2. Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
  3. Dell, Round Rock, TX (United States)
  4. Stony Brook Univ., NY (United States). Dept. of Chemistry
  5. Univ. of Delaware, Newark, DE (United States)
Publication Date:
Research Org.:
Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
Sponsoring Org.:
USDOE Office of Science (SC)
OSTI Identifier:
1474544
DOE Contract Number:  
AC05-00OR22725
Resource Type:
Journal Article
Journal Name:
Parallel Computing
Additional Journal Information:
Journal Volume: 78; Journal Issue: C; Journal ID: ISSN 0167-8191
Publisher:
Elsevier
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING

Citation Formats

Wolfe, Michael, Lee, Seyong, Kim, Jungwon, Tian, Xiaonan, Xu, Rengan, Chapman, Barbara, and Chandrasekaran, Sunita. The OpenACC data model: Preliminary study on its major challenges and implementations. United States: N. p., 2018. Web. doi:10.1016/j.parco.2018.07.003.
Wolfe, Michael, Lee, Seyong, Kim, Jungwon, Tian, Xiaonan, Xu, Rengan, Chapman, Barbara, & Chandrasekaran, Sunita. The OpenACC data model: Preliminary study on its major challenges and implementations. United States. doi:10.1016/j.parco.2018.07.003.
Wolfe, Michael, Lee, Seyong, Kim, Jungwon, Tian, Xiaonan, Xu, Rengan, Chapman, Barbara, and Chandrasekaran, Sunita. Thu . "The OpenACC data model: Preliminary study on its major challenges and implementations". United States. doi:10.1016/j.parco.2018.07.003.
@article{osti_1474544,
title = {The OpenACC data model: Preliminary study on its major challenges and implementations},
author = {Wolfe, Michael and Lee, Seyong and Kim, Jungwon and Tian, Xiaonan and Xu, Rengan and Chapman, Barbara and Chandrasekaran, Sunita},
abstractNote = {This paper describes how the OpenACC data model is implemented in current OpenACC compilers, ranging from research compilers (OpenUH and OpenARC) to a commercial compiler (the PGI OpenACC compiler). First, we summarize various memory architectures in today’s accelerator systems. We then describe details and issues in implementing the OpenACC data model in three different OpenACC compilers. This includes managing page tables, asynchronous data transfers, asynchronous memory allocate and free, host data construct, aliasing on a data directive, reusing device memory, partially present data, and adjacent data. We also discusses ongoing work to manage large, complex dynamic data structures. We measured the present table lookups, device memory allocation, pinned memory allocation, and managed memory in the three OpenACC compilers using eight OpenACC applications (seven from the SPEC ACCEL benchmark suite and a shock-hydrodynamics mini-application called LULESH).},
doi = {10.1016/j.parco.2018.07.003},
journal = {Parallel Computing},
issn = {0167-8191},
number = C,
volume = 78,
place = {United States},
year = {2018},
month = {7}
}