Asynchronous Execution of Python Code on Task-Based Runtime Systems

Asynchronous Execution of Python Code on Task-Based Runtime Systems
复制标题

DOI:
10.1109/espm2.2018.00009
复制
发表时间:
2018-10
期刊:
2018 IEEE/ACM 4th International Workshop on Extreme Scale Programming Models and Middleware (ESPM2)
影响因子:
--
通讯作者:
R. Tohid;Bibek Wagle;S. Shirzad;Patrick Diehl;Adrian Serio;Alireza Kheirkhahan;Parsa Amini;Katy Williams;Kate Isaacs;K. Huck;Steven R. Brandt;Hartmut Kaiser
R. Tohid;Bibek Wagle;S. Shirzad;Patrick Diehl;Adrian Serio;Alireza Kheirkhahan;Parsa Amini;Katy Williams;Kate Isaacs;K. Huck;Steven R. Brandt;Hartmut Kaiser
中科院分区:
其他
文献类型:
--
作者:
R. Tohid;Bibek Wagle;S. Shirzad;Patrick Diehl;Adrian Serio;Alireza Kheirkhahan;Parsa Amini;Katy Williams;Kate Isaacs;K. Huck;Steven R. Brandt;Hartmut Kaiser

文献摘要

被引文献

相似文献

尽管在并行和分布式计算领域取得了进步,但在高性能计算(HPC)资源上编程的复杂性已经阻止了许多领域专家,特别是机器学习和人工智能(AI)领域的专家,利用这种系统的性能优势。研究人员和科学家倾向于使用高生产力语言,以避免使用低级语言编程的不便,以及获得这一级别编程所需的必要技能的成本。近年来,Python在NumPy等线性代数库的支持下,尽管面临着阻止此代码分布式运行的限制,但仍获得了普及。在这里,我们提出了一个解决方案,既保持高层次的编程抽象,以及并行和分布式的效率。Phylanx是一个异步数组处理工具包,它通过将Python和NumPy函数和变量映射到由HPX执行的依赖关系树中,将Python和NumPy操作转换为可以在HPC资源上并行执行的代码,HPX是一个通用的,并行的,基于任务的运行时系统,用C++编写。Phylanx还为调试和性能分析提供了内省和可视化功能。我们通过将广泛使用的机器学习算法的实现与公认的NumPy标准进行比较,测试了我们方法的基础。
Despite advancements in the areas of parallel and distributed computing, the complexity of programming on High Performance Computing (HPC) resources has deterred many domain experts, especially in the areas of machine learning and artificial intelligence (AI), from utilizing performance benefits of such systems. Researchers and scientists favor high-productivity languages to avoid the inconvenience of programming in low-level languages and costs of acquiring the necessary skills required for programming at this level. In recent years, Python, with the support of linear algebra libraries like NumPy, has gained popularity despite facing limitations which prevent this code from distributed runs. Here we present a solution which maintains both high level programming abstractions as well as parallel and distributed efficiency. Phylanx, is an asynchronous array processing toolkit which transforms Python and NumPy operations into code which can be executed in parallel on HPC resources by mapping Python and NumPy functions and variables into a dependency tree executed by HPX, a general purpose, parallel, task-based runtime system written in C++. Phylanx additionally provides introspection and visualization capabilities for debugging and performance analysis. We have tested the foundations of our approach by comparing our implementation of widely used machine learning algorithms to accepted NumPy standards.