写点什么

使用 Elastic Fabric Adapter 和 AWS ParallelCluster 扩展 HPC 工作负载

  • 2019-09-27
  • 本文字数:2446 字

    阅读完需:约 8 分钟

使用 Elastic Fabric Adapter 和 AWS ParallelCluster 扩展 HPC 工作负载

2019 年 4 月,AWS 宣布正式发布 Elastic Fabric Adapter (EFA),这是一种 EC2 网络设备,它可以提高分布式高性能计算 (HPC) 和机器学习 (ML) 工作负载的吞吐量和可扩展性。今天,我们很高兴宣布通过 AWS ParallelCluster 支持 EFA。


EFA 是一种适用于 Amazon EC2 实例的网络接口,您可以借助它在 AWS 上大规模运行需要高水平实例间通信的 HPC 应用程序(例如计算流体动力学、天气建模以及库区模拟等)。它使用行业标准的操作系统绕过技术,借助新的自定义可扩展可靠数据报 (SRD) 协议来增强实例间通信性能,这对于 HPC 应用程序的扩展至关重要。有关 EFA 和所支持实例类型的更多信息,请参阅 Elastic Fabric Adapter (EFA) for Tightly-Coupled HPC Workloads


建立启用 EFA 功能的 HPC 集群涉及许多并无重要价值的繁重工作,这些全部都由 AWS ParallelCluster 负责。当您在“cluster”部分设置 enable_efa = compute 标签时,AWS ParallelCluster 将会为所有网络增强实例添加 EFA。具体而言,AWS ParallelCluster 将会执行下列步骤:


  1. 在启动模板中设置 InterfaceType = efa。

  2. 确保安全组的规则允许指向自己的所有入站和出站流量。与传统 TCP 流量不同,EFA 要求有一条入站规则和一条出站规则明确允许指向自己的安全组 (ID sg-xxxxx) 的所有流量。更多信息请参阅准备启用了 EFA 的安全组。

  3. 安装 EFA 内核模块(这是一个 AWS 专用版本的 Libfabric 网络堆栈)和 OpenMPI 3.1.4。

  4. 验证实例类型、基础操作系统和置放组。

  5. 如要开始使用,您需要安装 AWS ParallelCluster,具体请参阅 AWS ParallelCluster 入门。对于本教程,我们将假设您已经安装了 AWS ParallelCluster 并且熟悉 ~/.parallelcluster/config 文件。


修改您的 ~/.parallelcluster/config 以使“cluster”部分至少包含下列参数:


[global]cluster_template = efaupdate_check = truesanity_check = true
[aws]aws_region_name = [your_aws_region]
[cluster efa]key_name = [your_keypair]vpc_settings = publicbase_os = alinuxmaster_instance_type = c5.xlargecompute_instance_type = c5n.18xlargeplacement_group = DYNAMICenable_efa = compute [vpc public]vpc_id = [your_vpc]master_subnet_id = [your_subnet]
复制代码


base_os — 目前我们支持启用 EFA 的 Amazon Linux (alinux)、Centos 7 (centos7) 和 Ubuntu 16.04 (ubuntu1604)。master_instance_type可以是任何实例类型(它位于为计算节点组件的置放组之外,不启用 EFA)。我们选择的是 c5n.xlarge,因为与 c5n.18xlarge 相比,它的价格更便宜但仍具有极佳的网络性能。compute_instance_type EFA 仅在计算节点上启用;这是您通过某个计划程序提交作业时运行代码的地方,这些实例应为支持的实例类型(在本文执笔之时包括 c5n.18xlarge、i3en.24xlarge、p3dn.24xlarge)。请参阅文档以了解当前支持的实例类型。placement_group 以物理相邻的方式放置您的计算节点,便于您充分发挥 EFA 的低网络延迟和高吞吐量优势。enable_efa 这是唯一的新增新参数,用于为计算节点增加 EFA 支持。目前只有一个选项,即 compute。这是为了提醒您注意 EFA 仅在计算节点上启用。
复制代码


然后您可以创建集群:


$ pcluster create efaStatus: CREATE_COMPLETEMasterServer: RUNNINGMasterPublicIP: 3.215.238.41ClusterUser: ec2-userMasterPrivateIP: 172.31.25.64
复制代码


完成集群创建后,您可以为集群添加 SSH:


$ pcluster ssh efa -i ~/path/to/ssh_key
复制代码


这时您可以看到其中有一个模块 openmpi/3.1.4 可用。该模块加载时,您可以在 /opt/amazon/efa 中确认 PATH 中的 mpirun 已正确设置为启用 EFA 的版本:


[ec2-user@ip-172-31-17-220 ~]$ module avail
----------------------------------------------- /usr/share/Modules/modulefiles ------------------------------------------------dot module-git module-info modules null openmpi/3.1.3 use.own[ec2-user@ip-172-31-17-220 ~]$ module load openmpi/3.1.4[ec2-user@ip-172-31-17-220 ~]$ which mpirun/opt/amazon/efa/bin/mpirun
复制代码


此版本的 openmpi 是借助 libfabric 的支持编译的。libfabric 库可让我们使用标准的 mpi 命令通过 EFA 设备通信。在本文执笔之时,Open MPI 是唯一支持 EFA 的 mpi 库。Intel MPI 预计也将很快发布。


现在您可以提交作业。首先创建一个包含下列参数的文件 submit.sge:


#!/bin/bash#$ -pe mpi 2
module load openmpimpirun -N 1 -np 2 [command here]
复制代码

CFD++ 示例

EFA 可加速计算流体动力学等常见工作负载。在下面的示例中,我们将使用启用 EFA 的 c5n.18xlarge 实例,在 24M 电池箱上运行 CFD++。CFD++ 是 Metacomp Technologies 开发的一种流量求解器。此模型是三倍音速外流计算(克林贡猎禽舰)的一个例子:



3 倍音速外流计算示例。


您可以看到下面的两个扩展曲线;蓝色曲线显示了启用 EFA 的扩展;紫色曲线为未启用 EFA 的扩展。EFA 提供的扩展能力明显更高,以更高的内核数提供远超多倍的性能。



扩展曲线,启用和不启用 EFA 对比。

新文档!

最后(当然不是最不重要),我们也非常高兴地宣布推出新的 AWS ParallelCluster 文档。这些文档现提供十种语言以及支持多种访问方式的 readthedocs 版本。立即阅读,先睹为快! 当然,您仍可以通过在 AWS Docs GitHub 存储库上创建 pull 请求以提交文档更新。


AWS ParallelCluster 是一个以社区为中心的项目。欢迎提交 pull 请求或通过 GitHub 问题提供反馈。用户反馈促进了我们的开发,推动我们全面做到卓越!


作者介绍:


Sean Smith


Sean Smith


Sean Smith 是 Amazon Web Services 的一名软件开发工程师。他最初从事 HPC 领域的工作,作为一名实习生参与 CfnCluster 项目,成为该团队(后来成为 AWS ParallelCluster)的首位工程师。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/scale-hpc-workloads-elastic-fabric-adapter-and-aws-parallelcluster/


2019-09-27 14:35948
用户头像

发布了 1855 篇内容, 共 122.8 次阅读, 收获喜欢 79 次。

关注

评论

发布
暂无评论
发现更多内容

Django笔记四十四之Nginx+uWSGI部署Django以及负载均衡操作

Hunter熊

Python nginx django 负载均衡 uwsgi

作为ISV,这是我为什么选择华为云ECS的理由

平平无奇爱好科技

沙利文发布《2023中国数据管理解决方案市场报告》,腾讯云位列领导者梯队

说山水

复旦大学高校专区入驻飞桨AI Studio,优质教育资源等你来学!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

自动驾驶发展依旧处于初步阶段

来自四九城儿

英特尔研究院发布全新AI扩散模型,可根据文本提示生成360度全景图

E科讯

OpenHarmony自定义组件

坚果

OpenHarmony 6 月 优质更文活动

Cloud Studio 浏览器插件来啦

CODING DevOps

学习 SSL/TLS ,这一篇就够了

火山引擎边缘云

TLS 证书 SSL证书

2023-06-21:redis中什么是BigKey?该如何解决?

福大大架构师每日一题

redis 福大大架构师每日一题

把金融航母开进智能峡湾,总共分几步?

脑极体

华为 AI 金融

敏捷项目管理工具大全

顿顿顿

敏捷项目管理 敏捷工具 scrum工具

全方位赋能开发者成长!华为开发者联创日·深圳站圆满落幕

彭飞

企业上云数据安全不容忽视,华为云ERP上云解决方案全面保障信息安全

YG科技

从实际业务出发,OA上云我更推荐华为云

平平无奇爱好科技

自动驾驶的必要技术和等级

来自四九城儿

中国的“贝尔实验室”:我们的数据库从内核的第一行代码写起

YashanDB

作为IT从业者,为什么我推荐华为云ECS?

平平无奇爱好科技

基于 Flink CDC 构建 MySQL 到 Databend 的 实时数据同步

Databend

Nautilus Chain:模块化Layer3的先行者

大瞿科技

聊一聊“会员制”

鲸品堂

会员中心 付费会员 企业号 6 月 PK 榜

深度解读:ASP.NET Core Blazor 含快手入门教程

EquatorCoco

asp.net

火山引擎Dataleap数据质量解决方案和最佳实践(一):数据质量挑战

字节跳动数据平台

数据治理 数据开发 数据质量 数据研发

企业OA上云靠谱最重要,多年业务推进为何华为云成为我的首选?

平平无奇爱好科技

中国自动驾驶发展加速,已实现多场景落地应用

来自四九城儿

java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?

福大大架构师每日一题

Java Go 福大大架构师每日一题

AI血洗时尚圈!就连这些线上店家都开始用AI生成爆款商品了

Openlab_cosmoplat

人工智能 AI

卡口服务 —— 基于前端巡检系统的拓展实践|得物技术

得物技术

大规模 AI 高性能网络的设计与实践

Baidu AICLOUD

大模型训练 RDMA

Nautilus Chain:模块化Layer3的先行者

BlockChain先知

Kubernetes集群授权管理

穿过生命散发芬芳

Kubernetes 6 月 优质更文活动

使用 Elastic Fabric Adapter 和 AWS ParallelCluster 扩展 HPC 工作负载_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章