A Performance Portability Framework for Python']Python

被引:14
作者
Al Awar, Nader [1 ]
Zhu, Steven [1 ]
Biros, George [1 ]
Gligoric, Milos [1 ]
机构
[1] Univ Texas Austin, Austin, TX 78712 USA
来源
PROCEEDINGS OF THE 2021 ACM INTERNATIONAL CONFERENCE ON SUPERCOMPUTING, ICS 2021 | 2021年
基金
美国国家科学基金会;
关键词
PyKokkos; !text type='Python']Python[!/text; high performance computing; Kokkos; LANGUAGE; COMPILER;
D O I
10.1145/3447818.3460376
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Kokkos is a programming model for writing performance portable applications for all major high performance computing platforms. It provides abstractions for data management and common parallel operations, allowing developers to write portable high performance code with minimal knowledge of architecture-specific details. Kokkos is implemented as a heavily-templated C++ library. However, C++ is not ideal for rapid prototyping and quick algorithmic exploration. An increasing number of developers use Python for scientific computing, machine learning, and data analytics. In this paper, we present a new Python framework, dubbed PyKokkos, for writing performance portable applications entirely in Python. PyKokkos provides Kokkos-like abstractions that are easier to use and more concise than the C++ interface. We implemented PyKokkos by building a translator from a subset of Python to C++ Kokkos and bridging necessary function calls via automatically generated Python bindings. PyKokkos is also compatible with NumPy, a widely-used high performance Python library. By porting several existing Kokkos applications to PyKokkos, including ExaMiniMD (similar to 3k lines of code in C++), we show that the latter can achieve efficient execution with low performance overhead.
引用
收藏
页码:467 / 478
页数:12
相关论文
共 39 条
[1]  
Abadi M, 2016, PROCEEDINGS OF OSDI'16: 12TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, P265
[2]  
[Anonymous], 2020, Pybind11 Documentation
[3]  
[Anonymous], 2020, CUDA Zone
[4]  
[Anonymous], 2020, OpenMPWebPage
[5]   RAJA: Portable Performance for Large-Scale Scientific Applications [J].
Beckingsale, David Alexander ;
Burmark, Jason ;
Hornung, Rich ;
Jones, Holger ;
Killian, William ;
Kunen, Adam J. ;
Pearce, Olga ;
Robinson, Peter ;
Ryujin, Brian S. ;
Scogland, Thomas R. W. .
PROCEEDINGS OF P3HPC 2019: 2019 IEEE/ACM INTERNATIONAL WORKSHOP ON PERFORMANCE, PORTABILITY AND PRODUCTIVITY IN HPC (P3HPC), 2019, :71-81
[6]   Cython: The Best of Both Worlds [J].
Behnel, Stefan ;
Bradshaw, Robert ;
Citro, Craig ;
Dalcin, Lisandro ;
Seljebotn, Dag Sverre ;
Smith, Kurt .
COMPUTING IN SCIENCE & ENGINEERING, 2011, 13 (02) :31-39
[7]   Julia: A Fresh Approach to Numerical Computing [J].
Bezanson, Jeff ;
Edelman, Alan ;
Karpinski, Stefan ;
Shah, Viral B. .
SIAM REVIEW, 2017, 59 (01) :65-98
[8]  
Celik Ahmet, 2019, C OBJ OR PROGR SYST
[9]   What is mood? A computational perspective [J].
Clark, James E. ;
Watson, Stuart ;
Friston, Karl J. .
PSYCHOLOGICAL MEDICINE, 2018, 48 (14) :2277-2284
[10]  
Clarkson James, 2017, Architecture of Computing Systems - ARCS 2017. 30th International Conference. Proceedings: LNCS 10172, P59, DOI 10.1007/978-3-319-54999-6_5