Python代码在基于任务的并行系统上的异步执行
Asynchronous Execution of Python Code on Task Based Runtime Systems
摘要:
尽管在并行和分布式计算的领域中取得了进步,但是在高性能计算(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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。