改进高生产力数据分析 Chapel 框架
分布式、并行与集群计算
2021-11-22 v1
摘要
大多数最先进的探索性数据分析框架落入两个极端之一:它们要么聚焦于高性能计算,要么聚焦于分析的交互式与开放式方面。Arkouda 是一个试图将交互式方法与传统高性能计算相结合的框架,其使用一种新颖的客户端-服务器架构,在客户端使用 Python 解释器与科学家交互,在服务器端使用 Chapel 执行繁重的高性能计算。Arkouda 的 Python 解释器重载 Python 运算符并将其转换为发送给 Chapel 服务器的消息,由服务器执行实际计算。在本文中,我们为 Arkouda 框架提出若干客户端优化技术,这些技术保持了 Arkouda 框架的交互特性,同时显著提升了运行于高性能 Chapel 服务器上的操作程序的性能。我们通过拦截解释器中的 Python 操作,并将其执行延迟至用户需要数据或我们填满指令缓冲区时来实现这一点。我们在 Chapel 服务器端实现 Arkouda 数组的缓存与复用(从而节省 Chapel 数组的分配、初始化与释放),跟踪并缓存 Arkouda 数组上函数调用的结果(从而避免重复计算),并通过执行公共子表达式消除来复用数组操作的结果。我们在多个 Arkouda 基准测试以及大量真实世界与合成数据输入上评估了我们的方法,结果显示在保持 Arkouda 框架交互特性的同时,整体性能提升介于 20% 至 120% 之间。
引用
@article{arxiv.2111.10333,
title = {Improving a High Productivity Data Analytics Chapel Framework},
author = {Prashanth Pai and Andrej Jakovljević and Zoran Budimlić and Costin Iancu},
journal= {arXiv preprint arXiv:2111.10333},
year = {2021}
}