Claude 3 免费体验入口,亲测有效! 了解详情
写点什么

使用 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:35775
用户头像

发布了 1813 篇内容, 共 88.5 次阅读, 收获喜欢 73 次。

关注

评论

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

华为硬件配置命令,建议收藏

Ethereal

网络工程师 网络技术 华为设备 厂商设备 运维技术

PingCAP 入选 CB Insights 中国「数据链路安全领航者」榜单,保障全球用户存储安全

PingCAP

“十四五”规划,开源重塑软件发展新生态,获国家重点扶持

腾源会

开源

跟着动画学Go数据结构之插入排序

宇宙之一粟

golang 数据结构 插入排序 12月日更

今夜无眠

Tiger

28天写作

5G专网+区块链:构筑智慧政务“安全信任基石”

CECBC

Linux 基金会发布 2021 年度报告,预测今年收入为 1.77 亿美元

腾源会

Linux 开源

中石化信息化数字化首席专家李剑峰:数字化转型中关键基础软件的国产化应用

OceanBase 数据库

开源 国产化 oceanbase 中石化

从前端到全栈 -- 最全面向对象总结

程序员海军

Java 面向对象

超细!细说Zookeeper选举的一个案例(上)

恒生LIGHT云社区

golang zookeeper Go 语言

AI 收藏夹 Vol.004:虚拟爱豆出道!

Zilliz

人工智能 神经网络 AI

明道云荣获2021亚洲最佳职场“最佳创新奖”荣誉!

明道云

【漫画】数据云,真香在哪?

星环科技

大数据

手写清除console的loader

编程江湖

前端开发

一文讲述数仓组件SysCache

华为云开发者联盟

事务 存储 GaussDB(DWS) SysCache 缓存信息

给弟弟的信第15封|情绪控制的重要性

大菠萝

28天写作

联邦学习在光大科技的落地应用

博文视点Broadview

WAVE SUMMIT+2021深度学习开发者峰会举办,开源共建助力飞桨生态发展

科技热闻

简述移动端IM开发的那些坑:架构设计、通信协议和客户端

WorkPlus

神器来袭,手把手教你使用 Milvus_cli

Zilliz

数据库 命令行

明道云对接小鹅通,沉淀内容付费平台数据

明道云

Android aapt 在 Mac 和 Windows 上使用方法小结

阿策小和尚

28天写作 Android 小菜鸟 12月日更

Java Web开发之API Boy的进阶之路

@零度

Java web API boy

未来企业如何应对人才之争

WorkPlus

100行代码让您学会JavaScript原生的Proxy设计模式

Jerry Wang

JavaScript 设计模式 代理模式 28天写作 12月日更

实用机器学习笔记十六:循环神经网络

打工人!

深度学习 学习笔记 循环神经网络 机器学习算法 12月日更

Java 集合框架面试问题集锦

编程江湖

面试题 JAVA开发 java编程

元气部落盲盒系统开发元气部落app开发

风行无疆

前端开发之Vue框架的优势

@零度

前端开发 Vue优势

东汉末年,他们把「服务雪崩」玩到了极致

悟空聊架构

熔断 28天写作 服务雪崩 悟空聊架构 12月日更

资讯|WebRTC M95 更新

网易云信

WebRTC

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