TY - CONF
T1 - Offloading Python kernels to micro-core architectures
AU - Brown, Nicholas
PY - 2017/11/22
Y1 - 2017/11/22
N2 - Micro-core architectures combine many low memory, low power computing cores together in a single package. These can be used as a co-processor or standalone but due to limited on-chip memory and esoteric nature of the hardware, writing efficient parallel codes for them is challenging. We previously developed ePython, a low memory (24Kb) implementation of Python supporting the rapid development of parallel Python codes and education for these architectures. In this poster we present our work on an offload abstraction to support the use of micro-cores as an accelerator. Programmers decorate specific functions in their Python code, running under any Python interpreter on the host, with our underlying technology then responsible for the low-level data movement, scheduling and execution of kernels on the micro-cores. Aimed at education and fast prototyping, a machine learning code for detecting lung cancer, where computational kernels are offloaded to micro-cores, is used to illustrate the approach.
AB - Micro-core architectures combine many low memory, low power computing cores together in a single package. These can be used as a co-processor or standalone but due to limited on-chip memory and esoteric nature of the hardware, writing efficient parallel codes for them is challenging. We previously developed ePython, a low memory (24Kb) implementation of Python supporting the rapid development of parallel Python codes and education for these architectures. In this poster we present our work on an offload abstraction to support the use of micro-cores as an accelerator. Programmers decorate specific functions in their Python code, running under any Python interpreter on the host, with our underlying technology then responsible for the low-level data movement, scheduling and execution of kernels on the micro-cores. Aimed at education and fast prototyping, a machine learning code for detecting lung cancer, where computational kernels are offloaded to micro-cores, is used to illustrate the approach.
KW - Tools for CSE/HPC/DA Education
KW - Programming Environments/Languages for CSE/HPC/DA Education
KW - Tools for parallel program development (e.g., debuggers, and integrated development environments)
KW - Parallel programming languages, libraries, models and notations
KW - Runtime systems as they interact with programming systems
M3 - Poster
T2 - Supercomputing 2017
Y2 - 13 November 2017 through 17 November 2017
ER -