中文

我如何学会不再担忧用户可见端点而爱上 MPI

分布式、并行与集群计算 2020-05-04 v1

摘要

MPI+线程正作为一种替代传统 MPI everywhere 模型的方案而日益受到重视,以更好地应对核心数相较于其他节点内资源不成比例的增长。然而,MPI+线程的通信性能可能比 MPI everywhere 慢 100 倍。MPI 用户和开发者都对这一减速负有责任。通常,MPI 用户不暴露逻辑通信并行性。因此,MPI 库采用保守方法(如全局临界区)来维护 MPI+线程的 MPI 顺序约束,从而串行化对并行网络资源的访问并损害性能。为提升 MPI+线程的通信性能,研究者提出了 MPI Endpoints 作为对 MPI-3.1 的用户可见扩展。MPI Endpoints 允许单个进程在通信域内创建多个 MPI 秩。这可使每个线程拥有专用的网络通信路径并提升性能。然而,将线程映射到端点的责任便落到了领域科学家身上。我们扮演 devil's advocate 的角色,质疑对用户可见端点的需求。我们当然同意专用通信通道至关重要。但我们在多大程度上能将这些通道隐藏于 MPI 库内部而不修改 MPI 标准,从而减轻用户负担?更重要的是,通过这种抽象我们会失去什么功能?本文通过一种使用虚拟通信接口(VCIs)的新 MPI-3.1 实现来回答这些问题。VCIs 抽象底层网络上下文。当用户通过现有 MPI 机制暴露并行性时,MPI 库将该并行性映射到 VCIs,使领域科学家免于端点之累。我们指出了 VCIs 性能与用户可见端点相当的情况,以及这种抽象损害性能的情况。

关键词

引用

@article{arxiv.2005.00263,
  title  = {How I Learned to Stop Worrying About User-Visible Endpoints and Love MPI},
  author = {Rohit Zambre and Aparna Chandramowlishwaran and Pavan Balaji},
  journal= {arXiv preprint arXiv:2005.00263},
  year   = {2020}
}

备注

In Proceedings of the 34th ACM International Conference on Supercomputing (ICS), Barcelona, Spain, June 2020