写点什么

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

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

关注

评论

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

开源字节 同城信息小程序

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

REST 约束:以用户为中心的设计思路

Apifox

程序员 开发 Rest REST API RESTful API

EndNote 20 for Mac(文献管理软件)

背包客

macos Mac软件 EndNote20 endnote EndNote for Mac

linux部署的几种方法

demo123567

部署 linux服务

【有奖体验】叮!你有一张 3D 卡通头像请查收

阿里巴巴云原生

阿里云 Serverless 云原生

java中的线程模型和线程池

demo123567

Java 线程 线程池

如何学习Java“高并发”,并在项目中实际应用?

程序员小毕

程序员 面试 Java并发 多线程 高并发

LED开关电源里的PCB回路设计应该怎么做?

华秋PCB

电路 PCB LED PCB设计 开关电源

喜讯丨和鲸科技获第七届杨浦“创业之星”大赛创业新锐奖

ModelWhale

软件测试|MySQL安装最全教程

霍格沃兹测试开发学社

单元测试|Unittest setup前置初始化和teardown后置操作

霍格沃兹测试开发学社

实现懒加载

demo123567

懒加载

2023年苏州市等级保护测评公司有哪些?分别叫什么名字?

行云管家

等级保护 等保测评 苏州

一键部署通义千问预体验丨阿里云云原生 5 月动态

阿里巴巴云原生

阿里云 云原生

404页面检测

demo123567

网络安全 内容检测 404页面

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

威廉META

提示工程:从人机交互视角解读

博文视点Broadview

AntDB数据库荣获2023年中国信创产业拳头奖“2023年中国信创数据库卓越品牌”

亚信AntDB数据库

数据库 AntDB AntDB数据库

2023北京智源大会亮点回顾 | 高性能计算、深度学习和大模型:打造通用人工智能AGI的金三角

GPU算力

迈向先进治理与运营范式|2023开放原子全球开源峰会开源社区治理与运营分论坛圆满收官

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 开源社区治理与运营

App Cleaner & Uninstaller Pro for Mac(Mac电脑应用程序卸载清理助手) 中文

背包客

macos Mac软件 MacBook Pro Mac清理软件 Mac卸载软件

开源数据库迎来拐点|2023开放原子全球开源峰会数据库分论坛成功召开

开放原子开源基金会

数据库 开源 开放原子全球开源峰会 开放原子

杭州云管平台企业有哪些?购买云管平台选择哪家好?

行云管家

云计算 云管平台 云管理 云管

软件测试|f-string格式化输出的这些用法,90%的Pythoner不知道

霍格沃兹测试开发学社

百度智能云技术委员会主席王耀受邀担任 QCon 联席主席并将发表主题演讲

Baidu AICLOUD

建议程序员人手一份,GitHub免费开源阿里巴巴分布式核心原理

小小怪下士

Java 程序员 分布式

数仓架构“瘦身”,Hologres 5000CU时免费试用

阿里云大数据AI技术

数据库 大数据 企业号 6 月 PK 榜

Final Cut Pro for Mac(fcpx专业视频剪辑工具)

背包客

macos FCPX软件 fcpx Mac视频剪辑软件 Final Cut Pro

运维监控的几种方法

demo123567

Linux 命令 运维监控

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