云扩展,第 2 部分: 查看高性能云系统设计进展情况

学习如何利用协同处理、非易失性存储器、互连和存储

要意识到缩小存取差距或使用协处理器将进程推进到 I/O 路径的潜在优势,突破设备技术要求系统设计师重新思考如何进行应用程序软件设计。探讨和考虑最新内存、计算设备、互联设备和子系统如何影响您的可扩展的、以数据为中心的、高性能云计算系统设备。设备技术中的突破被用于 “以计算为中心” 和更为平衡的 “以数据为中心” 的计算基础架构之间的转换。

作者调查了存储级内存,演示了如何填充 RAM 和旋转磁盘存储之间长期存在的性能差距,还详细介绍了 I/O 总线协处理器(处理相近的数据)的使用,说明了如何利用 InfiniBand 构建低成本高性能互连网络,并讨论了非结构化数据的可扩展存储。

Sam B. Siewert, 助理教授, University of Alaska Anchorage

Sam Siewert 博士是阿拉斯加大学安克雷奇分校的计算机科学与工程系的助理教授。他也是科罗拉多州大学博尔德分校的兼职助理教授,教授电气、计算机和能源工程系的多门暑期课程。作为计算机系统的设计工程师,Siewert 博士自 1988 年开始曾在航空航天、电信和存储行业工作过。作为一位研究人员和顾问,他一直对可伸缩系统、计算机和机器视觉、混合可重构架构和操作系统感兴趣。相关研究兴趣包括实时理论、数字媒体和基础计算机架构。



2013 年 10 月 28 日

计算系统工程历来都是由扩展处理器和动态 RAM (DRAM) 接口控制,以便进行内存工作,在数据驱动和计算算法(参阅 参考资料)之间留有一个巨大的间隙。人们对以数据为中心的计算兴趣正在快速增长,同新颖系统设计软件和硬件设备仪器一起支持大量数据集的数据变换。

专注于软件的数据毫无疑问是人们目前比较关注的应用程序,比如视频分析、传感器网络、社交网络、计算机视觉和增强现实、智能交通、机器对机器系统的大数据倡议,比如 IBM 的 智慧星球智慧城市

目前,引起人们关注的是关于收集、处理、转换和挖掘大数据集:

  • 在非易失 性存储器(存储级内存,SCM)中,数据焦点逐渐趋向于新的设备级突破,这使得大数据更需要进行处理。
  • 与此同时,输入/输出协处理器使得处理更倾向于数据。
  • 最后,InfiniBand 之类的低延迟、高带宽的现成互连支持研究人员快速构建 3D 圆环和胖树形集群,可用于限制最奇异和昂贵的自定义高性能计算 (HPC) 设计。

目前为止,系统软件,甚至系统设计仍然受到过时瓶颈和思想的影响。例如,考虑线程和多程序设计。整个理念源于慢磁盘驱动器访问;在等待数据时,程序除了运行另一个程序之外还能进行其他操作吗?当然可以,我们有独立磁盘冗余阵列 (RAID) 扩展和 NAND 闪存的固态磁盘 (SSD),但正如 IBM Almaden 研究表明的那样,存取时间间隙的时间尺度差异在人类语言中是巨大的。

对于每个设备来说,CPU、RAM 和存储之间的存取时间间隙能够以典型性能形式进行度量,但或许在采用人类语言时,间隙可能更容易理解(正如 IBM Almaden 为了便于说明而进行的研究所指出的那样)。

如果典型 CPU 操作类似于人类在数秒内所做的,那么 100 多倍的 RAM 存取延迟可能需要花费几分钟来访问信息。然而,经过类似比较,100 多倍延迟的磁盘存取与 RAM 相比大约是数月(100 天)。(参见图 1。)

图 1. 数据存取间隙
图显示数据存取间隙

很多经验丰富的计算机工程师并没有认真思考过每秒进行 100 至 200 次随机 I/O 操作 (IOPS):这是磁盘驱动的机械边界。(当然,顺序存取每秒可高达数百兆字节,但是随机存取仍然和 50 多年前差不多,存在 15K RPM 搜寻和旋转访问延迟。)

最后,正如 Almaden 所指出的,磁带是极其缓慢的,就像冰川移动一样缓慢。既然如此,为什么我们还感到困惑呢?当然是因为容量。但是我们应该如何处理数据或者使数据处理更为高效?

我们再来看看图 1。用于移动设备的 NAND 快闪记忆体方面的改进以及更多近期 SSD 有助于缩小间隙;然而,人们普遍相信 NAND 闪存设备技术很快将到达极限,正如许多系统研究人员所指出的那样(参阅 参考资料)。使用的晶体管浮栅技术的应用已达到扩展极限,进一步扩展将会导致 可靠性降低,所以,尽管这是一个权宜之计,以便使用进行以数据为中心的计算,但这可能并不是解决方案。

相反,几个新型非易失性 RAM (NVRAM) 设备技术可能是解决方案,这些设备技术包括:

  • 相变 RAM (PCRAM):该内存使用一个加热元件将称为硫属化合物的材料变成一个结晶的或非结晶的玻璃态,从而存储两种可编程和读取的状态,即使不供电状态也能保持。对于 M 类同步非易失性存储器 (NVM),PCRAM 似乎兑现了近期的大部分承诺。
  • 电阻式 RAM (RRAM):大多数 RRAM 通常被描述成一个电路,这和电容器、感应器或电阻器不一样,RRAM 提供独一无二的电压和电流关系(不像其他存储电荷或电磁波的知名设备),或者提供电流的线性抗阻。在过去数十年中,使用带有称之为忆阻器属性的 材料进行测试,由于它们的非线性属性以及缺乏应用程序,故工程师通常尽量避免使用它们。IEEE 会员 Leon Chua 在 “Memristor: The Missing Circuit Element” 一文中对其进行了介绍。忆阻器行为可概括为:一个方向上的电流导致抗阻性增加,而另一个方向上的电阻降低。同样地,可以存储一个非易失性状态,并可进行编程以及状态读取。关于细节以及一些关于什么是忆阻器以及什么不是忆阻器的争论,请参阅 参考资料
  • 自旋转移矩 RAM(Spin transfer torque RAM,STT-RAM):通过磁层的电流可产生一个自旋极化电流,当指向一个磁层时,该电流可通过角动量改变其方向。该行为可用于激发震动以及翻转纳米级磁设备的的方向。主要缺点是翻转方向需要较高的电流。

阅读 参考资料 中的优秀文章,获取各个设备技术的详细信息。

从系统角度来看,随着这些设备的发展,在何处使用这些设备以及每个设备如何更好地填补存取间隙取决于设备的以下方面:

  • 成本
  • 可扩展性(设备集成大小必须小于晶体管才能战胜缓存;小于 20 纳米)
  • 程序和读取延迟
  • 设备可靠性
  • 或许最重要的是持久性(在变得不可靠之前的编程和擦除频率)。

基于这些设备性能考虑因素,IBM 将 SCM 归为两大类:

  • S 类:通过 I/O 控制器异步存取。线程或多编程被用于隐藏设备的 I/O 延迟。
  • M 类:通过一个内存控制器同步存取。可以认为这是一个 RAM 存取等待状态,该状态下 CPU 核心停止运行。

而且,NAND SSD 被认为是快速存储、通过面向块的存储控制器进行存取(更高的 I/O 率,但类似旋转磁盘驱动带宽)。

对于数据处理来说,这看起来似乎像是取消了异步 I/O(当然,除了归档存取或者集群扩展之外),但对于以数据为中心的处理来说,这可能是万能良药。从某种意义上说的确如此,但是系统设计师和软件开发人员必须改变这一习惯。在系统的每个节点上 I/O 延迟隐藏需求很大程度上都会消失,但无法完全消失。InfiniBand 中的集群构建将使用 Message Passing Interface 或 MapReduce 模式来处理节点到节点的数据传输延迟,您可以享受这个设想 SCM 节点的类似性能,但在启动的时候或者在节点数据超过节点工作 RAM 大小的时候除外。

因此,对于扩展而言,集群互连和集群中节点之间的 I/O 延迟隐藏仍然是必需的。

通过协处理器使处理更倾向于数据

快速存取大数据似乎很完美,而且看起来很有前景,但是有些应用程序总会从另一个备用方案(使处理更接近数据接口)获益。有很多这样的示例,比如图形(图形处理单元,GPU)、网络处理器、协议卸载引擎(比如 TCP/IP Offload Engine、芯片上的 RAID、加密协处理器,以及最近出现的计算机视觉协同处理器理念。我的研究涉及计算机视觉和图形处理器,无论是在具有一定规模的集群还是在嵌入式系统中,都存在计算机视觉和图形处理器。我将目前从事的工作称为计算机视觉处理单元,随着 Khronos 对 OpenVX 2012 通告的发布,与几个协处理器相比,这将获得更多的大众的追求(请参阅 参考资料)。

在嵌入式世界中,这样一种方法可能被描述成一个智能传感器或智能相机,原始数据的预处理方法是由传感器接口、一个嵌入式逻辑设备或者微处理器,甚至是芯片上的多核系统 (SoC) 提供的。

在可扩展世界,这通常涉及到协处理器总线或渠道适配器(比如 PCI Express、PCIe 和 Ethernet 或 InfiniBand)的使用;它在数据源(网络端)和节点 I/O 控制器(主机端) 之间提供数据处理。

无论是处理应该已经完成还是处理应该更为高效,当在 I/O 路径或 CPU 核心上进行处理时,它们都是热门讨论主题,但是根据现有理论(GPU 和网络处理器) ,这很明显非常有用,与处理器相比,采用基于协处理器技术的用户更为普遍。因此,我们将快速浏览其中的几个方法:

适用于单个程序多个数据的向量处理
目前由 GPU、多用途 GPU (GP-GPU) 和应用程序处理器单元 (APU) 提供。理念是数据可以按照自己的方式转换到某个输出设备(比如,显示器)中,或者发送到一个 GP-GPU/APU,并在主机到设备的往返过程中进行转换。“通用” 意味着更为复杂的功能,比如,与单精度运算相比,双精度运算仅适用于特定的图形处理。
多个核心
传统多核心处理器卡(请参阅 参考资料)可供各个供应商使用。这里涉及的原理是:通过使用简单但数量众多的 I/O 总线核心降低成本和功率消耗,对卡片使用双程卸载进行处理拥有更强大的功能,但是更耗电,而且需要昂贵的、全面的多核主机。通常,多核协处理器可能比主机需要更多的核心,通常会包括千兆或者 10G Ethernet,或者其他类型的网络接口。
I/O 总线现场可编程门阵列 (FPGA)
在开发早期阶段,FPGA 卡通常用于原型化一个新处理器,也可用作一个小容量协处理器解决方案。
嵌入式 SoC
一个多核解决方案,在 I/O 设备中,可使用该解决方案来创建诸如立体测距或飞行时间相机之类的智能设备。
界面 FPGA/可配置的编程逻辑设备
数字逻辑状态机可提供缓冲和持续的 I/O 数据转换,比如数字视频编码。

我们来看一个基于卸载和 I/O 路径的示例。数据转换对于 MPEG4 数字视频解码这类应用程序而言明显具有实用价值,该应用程序由一个 GPU 处理器构成,在播放器和显示器之间的路径上包含一个 GPU 协处理器,如图 2 所示,供 NVIDIA MPEG 的 Linux® MPlayer 视频解码器和呈现加速单元 (VDPAU) 软件接口在 GPU 上解码。

图 2. 简单视频解码卸载示例
图像显示了一个简单视频解码卸载示例

同样地,任何可在 CPU 主机上完成的数据处理或数据转换,无论是在限定时间内还是超出限定时间都是有价值的,特别是在协处理器可以较低的成本实现高效或低功耗处理时,与通用 CPU 相比,这是基于专用处理器的。

与多核协处理器方法相比,要理解 GP-GPU,可以尝试下载两个锐化图像边缘的点扩散函数示例(线程变换示例),与 GPU 转换示例 进行比较。它们都提供了 320x240 像素转换,但是在一个示例中,提供的 Compute Unified Device Architecture (CUDA) C 代码需要一个 GPU 或 GP-GPU 协处理器,在另一个示例中,可能是多核主机或者多核(例如 MICA)协处理器。


那么,哪种更好呢?

两种都不是最好的,主要是因为 NVRAM 解决方案尚未广泛使用(除了昂贵的电池 DRAM 和 IBM Texas Memory Systems Division 的 S 类 SCM 之外),而且它将处理移至 I/O 处理路径,这通常会涉及到不太友好的编程。它们都在不断变化,尽管协处理器采用了更高级别的语言,比如 Open Compute Language (OpenCL),其中为多核主机编写的代码也可在 Intel MICA 或 Altera Startix IV/V 基础架构上运行。

同样地,所有主流计算机系统公司都在不遗余力地发布 SCM 产品,PCRAM 最有可能首先提供。我的建议是假设这两个产品都可以使用上一段时间,操作系统和应用程序必须能够处理这两种产品。忆阻器 (memristor) 或 RRAM 包括一个类似于 Isaac Asimov 虚构的正电子大脑 (positronic brain) 想象力,在正电子大脑中,记忆和处理都是按照人类神经系统自然集成的,但使用的是金属材料。完全集成 NVM 和处理的概念通常被称为在内存中处理 (PIM) 或神经型态处理(请参阅 参考资料)。可扩展的 NVM 集成处理为受生物启发的智能系统带来了巨大希望,该系统类似于人类视觉皮质。两端都使用 PIM,推进集成 NVM 目标可能是一个很好的方法,因此,我计划与采用这两种方法(协处理器和 NVM)的系统保持联系并继续研究。对于集成系统,直接的、低级别的、完整的大规模 PIM 集成明显更受青睐。


通过 Infiniband 互连扩展节点

系统设计师总是需要在按比例放大每个系统节点与向外扩展解决方案之间进行取舍,后者使用网络或更丰富的互连集群来扩展处理、I/O 和数据存储。在某些情况下,就成本、功率效率和大小的实际极限而言,扩展内存、处理和存储单个节点可集成点击数。从可靠性、可用性和服务视角到在多个节点上扩展功能通常都比较方便,因此,如果一个节点需要修复或升级,其他节点可以继续通过负载共享提供服务。

图 3 显示了一个典型的 InfiniBand 3D 圆环互连。

图 3. 带有 1152 个节点的 InfiniBand 4x4x4 3D 圆环示例 (SDSC Gordon)
图像展示一个带有 1152 个节点的 InfiniBand 4x4x4 3D 圆环示例 (SDSC Gordon)

在图 3 中,4x4x4 展示是针对 San Diego Supercomputing Center (SDSC) Gordon 超级计算机的,根据 Mellanox 记录,该计算机使用了一个 36 端口的 InfiniBand 转换器来彼此连接代码和存储 I/O。

InfiniBand、Converged Enhanced Ethernet iSCSI (CEE) 或 Fibre Channel 是最常用的可扩展存储接口,用于存取大数据。该 RAID 阵列的存储区域网络 (SAN) 扩展被用于托管分布式、可扩展文件系统,比如 Ceph、Lustre、Apache Hadoop 或 IBM General Parallel File System (GPFS)。用于存储访问的 CEE 和 InfiniBand 是通过 Open Fabric Alliance SCSI Remote Direct Memory Access (RDMA) Protocol 使用的,而 iSCSI Extensions for RDMA 自然很适合 SAN 存储与 InfiniBand 集群集成。存储更多地被视为一个分布式非结构化数据存档,用户通常对这些数据进行搜索和挖掘,并将它们加载到节点 NVRAM,以便实现集群处理。对于像 Hadoop MapReduce 之类的高级别数据中心集群处理方法,还可以使用它们将代码(软件)放入每个节点的数据上。这些都是大数据相关主题,我将在这个由四部分组成的系列文章的其他部分进行详细介绍。


以数据为中心进行扩展的未来

本文对使系统更倾向于处理数据生成和数据消耗设备的系统设计和架构进行了论证,同时还简化了存储层次,以便包括更少的级别、利用低延迟、可扩展 NVM 设备。这定义了一个数据为中心的节点设计,可进一步扩展低延迟现有互连网络(比如 InfiniBand)。以数据为中心的计算面临的主要挑战并不仅仅只是每秒执行的指令或每秒进行的浮点操作,还包括 IOPS 和数据处理的整体功率效率。

本系列第 1 部分 中,我并未介绍构建一个计算节点和小集群应用程序的方法和工具,您可以利用云,根据需求 HPC 进行扩展。在本文中,我从协同处理、非易失性内存、互连和存储方面详细介绍了这个高性能系统设计进展。

在本系列的第 3 部分,我将更深入地介绍特定的以数据为中心的计算应用程序:视频分析。视频分析包括诸如为了确保安全性的面部识别和计算机取证之类的应用程序,使用相机实现智能交通监控,涉及视频集成的零售和市场营销(例如,您可以利用基于 Web 的目录,查看自己西装革履的样子),以及广泛计算机视角和作为日常发明的增强现实应用程序。尽管这些应用程序许多都涉及到嵌入式计算机视角,大多数都需要数字视频分析、转换和生成基于云的可扩展服务器。像 Sobel 转换之类的算法可在传统服务器上运行,但是一般的 Hough 转换、面部识别、图像配准以及立体(点云)映射之类的算法需要使用本文讨论的 NVM 和协处理器方法进行扩展。

在本系列的最后一部分中,我将处理大数据问题。


下载

描述名字大小
GPU 加速图像变换sharpenCUDA.zip644KB
网格线程比较hpc_dm_cloud_grid.zip1.08MB
变换基准的简单图像Cactus-320x240-pixel.ppm.zip206KB

参考资料

学习

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Industries
ArticleID=950263
ArticleTitle=云扩展,第 2 部分: 查看高性能云系统设计进展情况
publish-date=10282013