时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

适用于紧密耦合的 HPC 工作负载的 Elastic Fabric Adapter (EFA)

  • 2019-10-01
  • 本文字数:2103 字

    阅读完需:约 7 分钟

适用于紧密耦合的 HPC 工作负载的 Elastic Fabric Adapter (EFA)

在 re:Invent 2018 上,我们发布了 Elastic Fabric Adapter (EFA) 并在当时以预览版形式推出。预览期间,AWS 客户在各种紧密耦合的 HPC 工作负载上对 EFA 进行了测试,为我们提供了有价值的反馈并帮助我们对最终产品进行了优化。

现已推出

今天我很高兴地宣布,EFA 现已准备好在多个 AWS 区域进行生产使用。它可以支持那些要求具有比传统 TCP 通信更低、更一致的网络延迟以及更高吞吐量的严苛型 HPC 工作负载。通过此次发布,您可以将 AWS 云的规模、灵活性和弹性应用于紧密耦合的 HPC 应用程序,而我也迫不及待地想要了解您使用它做了什么。例如,您可以扩展到数千个计算节点,而无需提前预留硬件或网络。


关于 EFA


Elastic Fabric Adapter 是一个具有更多功能的 AWS Elastic Network Adapter (ENA)(阅读我的文章 Elastic Network Adapter – Amazon EC2 的高性能网络接口,了解有关 ENA 的更多信息)。EFA 仍然可以处理 IP 流量,但也支持通常称为 OS 旁路的重要访问模型。使用此模型,应用程序(最常见的是通过一些用户空间中间件)可以访问网络接口,而无需让操作系统参与每条消息。这样做可以减少开销并使应用程序更有效地运行。其具体情况如此处所示(来源):



这块蛋糕的 MPI 实施和 libfabric 层起着至关重要的作用:


MPI – 作为“消息传递接口”的缩写,MPI 是一种历史悠久、旨在支持并行编程的通信协议。利用它所提供的功能,在一组紧密耦合的计算机上运行的进程可以采用与语言无关的方式进行通信。


libfabric – 此库适用于几种不同类型的网络结构提供程序(包括 EFA)和 MPI 等更高级别的库。EFA 支持标准 RDM(可靠数据报)和 DGRM(不可靠数据报)终端节点类型;要了解更多信息,请查看 libfabric 程序员手册。EFA 还支持我们称之为 Scalable Reliable Datagram 的新协议;该协议旨在在 AWS 网络中工作,并在我们的 Nitro 芯片中实施。


通过协同工作,这两个层(以及可以代替 MPI 插入的其他层)允许您将现有 HPC 代码带到 AWS 并在几乎不做任何更改的情况下运行它。


您今天可以在所有 AWS 区域的 c5n.18xlarge 和 p3dn.24xlarge 实例(只要这些实例可用)上使用 EFA。这些实例可以使用 EFA 在 VPC 子网内进行通信,而安全组必须具有允许安全组内的所有流量流动的入口和出口规则。每个实例都可以有一个 EFA,它可以在启动实例或停止实例时进行挂载。


您还需要以下软件组件:


EFA 内核模块 – EFA 驱动程序位于 Amazon GitHub 存储库以及 Amazon Linux 和 Amazon Linux 2 AMI 中。我们正在将其添加到其他 Linux 发行版的 AMI 中。


Libfabric 网络堆栈 – 您现在需要使用 AWS 自定义版本(在 Amazon Linux 和 Amazon Linux 2 AMI 中已存在)。我们正在将我们的更改纳入 libfabric 的下一版本 (1.8) 中。


MPI 或 NCCL 实施 – 您可以使用 Open MPI 3.1.3(或更高版本)或 NCCL(2.3.8 或更高版本)以及适用于 NCCL 的 OFI 驱动程序。我们还打算支持 Intel MPI 库。


您可以使用 CLI、API 或 EC2 控制台以及将在几周内推出的 CloudFormation 支持启动实例并挂载 EFA。如果您使用 CLI,则需要包含子网 ID 并要求提供 EFA,如下所示(确保包含相应的安全组):


$ aws ec2 run-instances ... \  --network-interfaces DeleteOnTermination=true,DeviceIndex=0,SubnetId=SUBNET,InterfaceType=efa
复制代码


实例启动之后,请运行 lspci | grep efa0 以验证 EFA 设备是否已挂载。您可以(但并非必须)在集群置放群组中启动实例,以便在每个轻脚都很重要的情况下从物理邻接中受益。在以这种方式使用时,EFA 可以提供 15.5 微秒的单向 MPI 延迟。


您也可以创建一个启动模板,然后使用它以按需或 Spot 形式启动 EC2 实例(直接或作为 EC2 Auto Scaling 组的一部分)、启动 Spot 队列,以及在 AWS Batch 上运行计算作业。


了解更多


要了解有关 EFA 的更多信息,并查看其他一些基准测试,请务必观看此 re:Invent 视频:(在具有 Elastic Fabric Adapter 的 EC2 上扩展 HPC 应用程序):



AWS 客户 CFD Direct 维护适用于计算流体动力学 (CFD) 的热门 OpenFOAM 平台,并且还生产 CFD Direct From the Cloud (CFDDC),后者是一款让您可以轻松地在 AWS 上运行 OpenFOAM 的 AWS Marketplace 产品。他们一直在对 EFA 进行测试和基准测试,并在最近一篇标题为采用 AWS EFA 的 OpenFOAM HPC 的博文中分享了他们的测量结果。在文章中,他们报告了一对模拟:


汽车周围的外部空气动力学 – 这个模拟超线性扩展到 200 多个内核,逐渐下降到 1000 个内核的线性扩展(每个内核大约 10 万个模拟单元)。


在具有水跃的堰上流动 – 根据“数据写入”设置,这个模拟(1000 个核心和 1 亿个单元)的比例在 67% 和 72.6% 之间。


阅读完整文章,了解更多信息并查看一些图表和可视化。

工作过程

我们计划以后为其他 EC2 实例类型添加 EFA 支持。一般情况下,我们计划为任何给定类型的两个最大尺寸为“n”的实例以及裸机实例提供 EFA 支持。


作者介绍:


Jeff Barr


AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/now-available-elastic-fabric-adapter-efa-for-tightly-coupled-hpc-workloads/


2019-10-01 18:161342
用户头像

发布了 1932 篇内容, 共 160.7 次阅读, 收获喜欢 81 次。

关注

评论

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

Serverless的应用场景

阿泽🧸

Serverless 10月月更

Go-Excelize API源码阅读(二十一)——GetDefinedName()、DeleteDefinedName()

Regan Yue

Go 源码阅读 源码刨析 10月月更

Go-Excelize API源码阅读(二十三)——SetDocProps、GetDocProps

Regan Yue

Go 开源 源码刨析 10月月更

一文搞懂Go整合captcha实现验证码功能

闫同学

Go Web 安全 10月月更

一个实际的例子学习 SAP BTP Java 应用的 @Before 注解使用方式

汪子熙

Java 云原生 Cloud SAP 10月月更

「趣学前端」日常浏览的页面为什么可以五颜六色

叶一一

CSS 前端 10月月更

cstdio的源码学习分析10-格式化输入输出函数fprintf---宏定义/辅助函数分析03

桑榆

源码刨析 10月月更 C++

【一Go到底】第十五天---continue快速入门

指剑

Go golang 10月月更

Python进阶(二十二)Python3使用PyMysql连接mysql数据库

No Silver Bullet

Python3 MySQL数据库 pymysql 10月月更

有人意图取代SQL,你同意吗?

雨果

sql

【从0到1学算法】5.Bubble Sort算法-下

Geek_65222d

10月月更

「趣学前端」页面上吸顶的效果是怎么做到的

叶一一

CSS 前端 10月月更

Java三大特性(一)—封装

共饮一杯无

Java 面向对象 10月月更

「趣学前端」容器上的折角边框是图形吗?

叶一一

CSS 前端 10月月更

面试官:说说你对Node中的Stream的理解

CoderBin

面试 前端 Node 10月月更

浅谈etcd服务注册与发现

闫同学

Go 微服务 etcd 10月月更

B类纯资金业务的资金安全保障

agnostic

资金安全 B类业务 纯资金业务

Go-Excelize API源码阅读(二十二)——SetAppProps(appProperties *AppProperties)

Regan Yue

Go 开源 源码分析 Excelize 10月月更

前端开发提效小技巧之业务功能篇

叶一一

前端 提高效率 10月月更

「趣学前端」box-shadow的多重用法

叶一一

CSS 前端 10月月更

测试需求平台5-Blueprint优化与首个vue页搭建

MegaQi

测试平台开发教程 10月月更

Python进阶(二十三)Django使用pymysql连接MySQL数据库做增删改查

No Silver Bullet

Python django MySQL数据库 pymysql 10月月更

什么是数据产品经理?数据产品经理与传统产品经理有什么区别?

雨果

数据产品经理

华为云从入门到实战 | 负载均衡服务原理

TiAmo

华为 云开发 10月月更

一文搞懂常见的网络I/O模型

闫同学

网络 网络io 10月月更

如何在高性能的前提下,降低数据库存储成本?

OceanBase 数据库

趣学前端」为什么有的页面背景颜色是渐变的

叶一一

CSS 前端 10月月更

【LeetCode】两个链表的第一个重合节点Java题解

Albert

算法 LeetCode 10月月更

挑战30天学完 Python:Day4数据类型-字符串str

MegaQi

挑战30天学完Python 10月月更

首轮Zepoch节点已售罄完结,你期待次轮吗?

鳄鱼视界

大数据ELK(二十六):探索数据(Discovery)

Lansonli

discovery 10月月更

适用于紧密耦合的 HPC 工作负载的 Elastic Fabric Adapter (EFA)_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章