[论文解读] nOS-V: Co-Executing HPC Applications Using System-Wide Task Scheduling
该论文提出 nOS-V,一种轻量级任务调度库,通过在多个应用间统一任务调度,实现共享节点上系统级细粒度协同执行 HPC 应用。通过用单一全局调度器替代各应用独立的运行时,nOS-V 减少了空闲资源,提升了效率,在三路协同执行中相比独占执行实现了中位数 1.25 倍的加速,在成对组合中实现了 1.17 倍的加速。
Future Exascale systems will feature massive parallelism, many-core processors and heterogeneous architectures. In this scenario, it is increasingly difficult for HPC applications to fully and efficiently utilize the resources in system nodes. Moreover, the increased parallelism exacerbates the effects of existing inefficiencies in current applications. Research has shown that co-scheduling applications to share system nodes instead of executing each application exclusively can increase resource utilization and efficiency. Nevertheless, the current oversubscription and co-location techniques to share nodes have several drawbacks which limit their applicability and make them very application-dependent. This paper presents co-execution through system-wide scheduling. Co-execution is a novel fine-grained technique to execute multiple HPC applications simultaneously on the same node, outperforming current state-of-the-art approaches. We implement this technique in nOS-V, a lightweight tasking library that supports co-execution through system-wide task scheduling. Moreover, nOS-V can be easily integrated with existing programming models, requiring no changes to user applications. We showcase how co-execution with nOS-V significantly reduces schedule makespan for several applications on single node and distributed environments, outperforming prior node-sharing techniques.
研究动机与目标
- 为解决现代 HPC 系统中独占节点执行效率低下的问题,即应用常因串行阶段、负载不均或缺乏并行性而资源利用率低下。
- 克服现有共置与超分配技术的局限性,这些技术易受干扰、缺乏全局视图或受应用特定约束限制。
- 设计一种可移植、轻量级的运行时系统,实现无需修改应用代码的细粒度、系统级 HPC 工作负载调度。
- 评估在多种工作负载(包括单节点和分布式配置,以及不同 NUMA 策略)下协同执行的性能。
提出的方法
- nOS-V 实现了一个统一的任务运行时,全局管理所有协同调度的 HPC 应用的任务,取代各应用独立的运行时。
- 它利用标准的进程间通信(IPC)机制,无需内核修改,确保可移植性和易于集成。
- 系统维护一个全局任务队列,并基于进程优先级或数据局部性应用调度策略以优化性能。
- nOS-V 支持多个应用的协同执行,包括混合 MPI 与基于任务的程序,且无需修改用户代码或二进制文件。
- 通过根据实时可用性和局部性在可用核心上调度任务,实现动态负载均衡,避免操作系统抢占带来的干扰。
- 该方法与 Nanos6 运行时及 OmpSs-2 编程模型集成,支持在真实 HPC 工作负载上进行评估。
实验结果
研究问题
- RQ1系统级任务调度能否显著提升具有不同并行程度的 HPC 工作负载在节点级别的资源利用率?
- RQ2通过统一运行时实现的协同执行与静态共置和动态超分配相比,在性能和可扩展性方面表现如何?
- RQ3协同执行在多大程度上能减少包括具有 NUMA 敏感内存访问模式在内的多种 HPC 应用的调度完成时间?
- RQ4nOS-V 是否能支持复杂工作负载(如三路协同执行和分布式应用)而不会导致性能下降?
主要发现
- 在单节点上对 HPC 应用进行成对协同执行时,nOS-V 相比独占执行实现了中位数 1.17 倍的加速。
- 在三路协同执行中,中位数加速提升至 1.25 倍,表明其具备更好的可扩展性和资源利用率。
- 通过将任务分配给同一插槽上的核心,系统减少了远程 NUMA 访问,提升了数据局部性并降低了延迟。
- nOS-V 在性能上优于现有共置技术(如 DLB、Callisto 和 AMCilk),因其提供了所有任务的全局视图,并避免了各应用运行时带来的干扰。
- 与 OmpSs-2 和 Nanos6 的集成实现了透明的协同执行,无需修改用户应用程序或二进制文件。
- 该方法在多种工作负载中均表现有效,包括具有不规则并行性和异构内存访问模式的应用。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。