下载本文的PDF版本 PDF

使用图形处理器探测生物分子机器

GPU处理器和编程工具的演进使得先进的模拟和分析技术能够被越来越多的生物医学科学家所使用。

James C. Phillips 和 John E. Stone,伊利诺伊大学厄巴纳-香槟分校

计算机模拟已经成为研究生物分子结构和功能的不可或缺的一部分。多年来,并行计算机一直被用于进行这些计算量大的模拟并分析其结果。这些模拟就像一台“计算显微镜”,使科学家能够观察到分子过程中那些太小、太快或太脆弱而无法用传统仪器捕捉到的细节。随着时间的推移,商品化GPU(图形处理单元)已经演变成大规模并行计算设备,最近,人们已经可以使用流行的C/C++编程语言的方言来对其进行编程。

这为采用以前计算量过大而无法使用的新型模拟和分析技术创造了巨大的机会。在其他情况下,GPU提供的计算能力可以将以前需要在HPC(高性能计算)集群上进行的分析技术带到桌面计算机上,使其能够被那些缺乏集群、排队系统等方面经验的应用科学家所使用。

本文基于我们在为科学家(通常是物理、化学和生物学背景的研究生)开发软件以及与他们合作的经验。我们的程序NAMD18(纳米分子动力学)和VMD10(可视化分子动力学)运行在从笔记本电脑到超级计算机的计算机系统上,用于在原子水平上模拟蛋白质、核酸和脂质,以了解蛋白质结构如何实现细胞功能,例如催化反应、收集阳光、产生力量和塑造膜(有关更多科学应用,请参见http://www.ks.uiuc.edu/)。2007年,我们开始使用Nvidia CUDA(计算统一设备架构)系统进行通用图形处理器编程,以将多核计算能力应用于实际的科学应用。22

自下而上的生物学

如果要设计一个系统来保护数千年的关键数据,它将需要大量的冗余、自我复制、易于更换的组件和易于解释的格式。这些与我们的基因面临的挑战相同,基因围绕自身构建细胞、生物体、种群和整个物种,其唯一目的是延续自身的生存。每个细胞的DNA都包含数据(生命所需每种蛋白质的氨基酸序列)和元数据(大段的“垃圾”DNA,与激素相互作用以控制序列是否暴露于细胞的蛋白质表达机制或隐藏在染色体线圈的深处)。

生命的蛋白质序列一旦被核糖体表达为一维氨基酸链,就会在很大程度上无需帮助地折叠成其功能所需的独特三维结构。来自不同物种的相同蛋白质可能具有相似的结构,尽管序列差异很大。蛋白质序列经过选择,具有折叠能力,因为随机的氨基酸链不会在合理的时间内自组装成独特的结构。仅根据蛋白质序列确定其折叠结构是生物学中的一项巨大挑战,因为虽然已知整个生物体的DNA序列,但蛋白质结构只能通过晶体学家的艰苦工作获得。

仅仅了解蛋白质的折叠结构不足以理解其功能。许多蛋白质发挥着产生、传递或扩散力和力矩的机械作用。其他蛋白质控制和催化化学反应,有效地利用和消耗从呼吸或光合作用中获得的能量。虽然氨基酸链被编织成螺旋和片层的支架,并且一些成分很容易识别,但没有刚性的轴、铰链或齿轮来简化分析。

为了观察蛋白质和更大的生物分子聚集体的动态行为,我们求助于分子动力学模拟形式的“计算显微镜”。由于所有蛋白质都由一组固定的氨基酸构成,因此可以为任何给定的蛋白质构建作用于每个原子的力模型,包括键合、静电和范德华成分。然后,牛顿运动定律描述了蛋白质随时间的动力学。当实验观察在分辨率方面不足时,借助计算机,我们可以完美地观察到这个简单而有限的模型。

是否有必要模拟蛋白质中的每个原子来理解其功能?回答“否”将需要完全了解所涉及的机制,在这种情况下,模拟几乎无法产生新的见解。蛋白质并非由不同的组件干净利落地设计而成,而是在某种意义上是从可用材料中拼凑而成的。必然地,超越原子层面会放弃一些细节,因此最好将其保留用于研究聚合水平的现象,否则这些现象太大或太慢而无法模拟。

跟踪原子的运动需要将位置和速度向前推进数百万或数十亿个飞秒(10-15 秒)时间步长,以模拟纳秒或微秒的模拟时间。模拟大小范围从水中包含少于100,000个原子的单个蛋白质到包含1-10百万个原子的大型多组分结构。尽管每个原子都与其他每个原子相互作用,但已经开发出数值方法来计算N个原子的长程相互作用,其复杂度为阶数NN log N,而不是N2

在分子动力学模拟开始之前,必须尽可能以接近典型状态的方式组装生物分子系统的模型。首先,必须获得任何蛋白质的晶体结构(pdb.org提供公共存档),通过与其他结构的比较来填补缺失的细节,并将蛋白质嵌入脂质膜或根据需要与DNA分子结合。然后,整个复合物被水分子和适当浓度的离子包围,这些离子的位置应使它们的静电能最小化。然后必须在适当的温度和压力下平衡模拟,直到配置稳定。

原子尺度的过程是随机的,由能量景观中跨越势垒的随机热涨落驱动。从几乎相同的初始条件开始的模拟将很快发散,但随着时间的推移,如果系统可能的构象被充分采样,它们的平均性质将收敛。为了保证观察到预期的转变,通常需要对计算施加导向力。在计算期间和之后,对定期保存的快照进行分析,以测量系统的平均性质并确定哪些转变以什么频率发生。

正如已故美国数学家R. W. Hamming所说,“计算的目的是洞察力,而不是数字。” 如果科学家不能在电脑屏幕上看到生物分子模型的三维结构,在空间中旋转它,切除障碍物,简化表示,整合其他数据,并观察其行为以产生假设,那么模拟将几乎不会激发洞察力。一旦提出了蛋白质的运作机制,就可以通过模拟和实验对其进行测试,并改进细节。然后,同样需要出色的视觉表示来向生物医学界宣传和解释这一发现。

生物医学用户

我们拥有超过十年的指导NAMDVMD程序开发的经验,这些程序用于大型生物分子系统的模拟、分析和可视化。我们服务的科学家社区人数以万计,遍布全球,从只有笔记本电脑的学生到可以访问最强大的超级计算机和图形工作站的各自领域领导者。有些人simulation艺术方面经验丰富,而许多人主要是实验研究人员,他们转向模拟来解释他们的结果并指导未来的工作。

计算科学家的教育与以科学为导向的计算机科学家的教育截然不同。大多数人从物理学或其他数学导向的领域开始,并从他们的实验室伙伴和导师那里非正式地学习科学计算,最初使用Fortran 77,今天使用Matlab。虽然他们擅长解决复杂问题,但他们很少被教授任何软件设计过程,或者更喜欢一种解决方案而不是另一种解决方案的原因。有些人在这种环境中待了很多年,才开始接触版本控制系统,更不用说自动化单元测试了。

作为软件用户,科学家与程序员相似,他们习惯于调整示例以适应他们的需求并根据文档工作。记录和重复计算的需求使得图形界面主要用于交互式探索,而批处理导向的输入和输出文件成为研究过程的主要产物。

科学软件的伟大创新之一是脚本功能的加入,最初是初步的,但最终以Tcl和Python等通用语言的形式出现。在NAMD和VMD中包含脚本功能模糊了用户和开发者之间的界限,公开了一种安全且支持性的编程语言,允许典型的科学家自动化复杂的任务,甚至开发新的方法。由于不需要重新编译,用户无需担心破坏用C++实现的经过测试的、性能关键的例程。VMD中的许多新功能都是由用户以基于脚本的插件形式开发的,而基于C的插件接口简化了复杂分子结构分析工具和数十种分子文件格式读取器的开发。

科学家完全有能力开发新的科学和计算方法来解决他们的问题,但期望生物医学界扩展他们的兴趣和注意力,以至于掌握不断变化的高性能计算领域是不合理的。我们力求为NAMD和VMD用户提供实际超级计算的体验,在这种体验中,使用笔记本电脑上运行的玩具系统学到的技能在部门集群和国家超级计算机上仍然有用,并且底层并行分解的复杂性被隐藏起来。超级计算机不再是一种令人恐惧和复杂的工具,而变成了用户工作需要时可以调用的另一种工具。

鉴于高性能计算硬件的昂贵和有限的可用性,我们长期以来一直在寻找更好的选择,以便为科学大众带来更大、更快的模拟。这方面最近的一次重大进步是从廉价PC机架到当今主流平台的基于商品的Linux集群的演变。下一个进步,实际加速,将需要一种具有强大商业支持的商品技术,在几代产品中具有可持续的性能优势,以及科学程序员可以访问的编程模型。我们认为,下一个进步将在受公众对计算机游戏视觉真实感的需求启发而产生的3D图形加速器中找到。

GPU计算

生物分子建模者一直需要复杂的图形来阐明结构生物学中常见的大型分子结构的复杂性。在1995年,此类分子结构的三维可视化需要花费数万美元的台式工作站。逐渐地,个人电脑可用的商品图形硬件开始集成用于加速3D渲染的固定功能硬件。这导致了3D游戏的广泛开发,并资助了一个快节奏的持续硬件演进周期,最终产生了在现代计算机中无处不在的GPU。

GPU硬件设计

现代GPU已经发展到高度复杂的程度,这是当代游戏以及各种工程和科学可视化软件使用的复杂交互式渲染算法所必需的。GPU现在是完全可编程的大规模并行计算设备,支持标准的整数和浮点算术运算。11 最先进的GPU设备包含超过240个处理单元,并且能够执行高达每秒1万亿次的单精度浮点运算。高端设备包含数GB的高带宽板载内存,并辅以几个小型片上内存系统,这些系统可以用作程序管理的缓存,从而进一步放大有效的内存带宽。

GPU被设计为吞吐量导向的设备。GPU的设计目的不是优化单个线程或少量执行线程的性能,而是为数万个独立计算提供高聚合性能。这种关键的设计选择允许GPU将芯片管芯面积(以及晶体管)的大部分用于算术单元,而不是用于缓存。同样,GPU牺牲了独立指令解码器的使用,转而采用SIMD(单指令多数据)硬件设计,其中处理单元组共享一个指令解码器。这种设计选择最大化了每mm2芯片管芯面积的算术单元数量,但代价是当同一SIMD单元上的线程之间发生分支发散时,性能会降低。

GPU上缺少大型缓存意味着必须使用不同的技术来隐藏到片外GPU或主机内存的数百个时钟周期的延迟。这是通过将许多执行线程多路复用到每个物理处理单元上来实现的,由硬件调度器管理,该调度器可以在排队的内存操作得到服务时交换活动和非活动线程组。通过这种方式,一个线程的内存操作与另一个线程的算术操作重叠。最近的GPU可以同时在一个GPU上调度多达30,720个线程。虽然不需要用最大数量的独立线程来饱和GPU,但这为延迟隐藏提供了最佳机会。GPU需要大量细粒度数据并行工作是决定应用程序或算法是否适合GPU加速的关键因素。

由于大量的处理单元、高带宽主内存和快速片上内存系统,GPU有可能在高度数据并行的问题上显着优于传统的CPU架构,这些问题与GPU的架构特性非常匹配。

GPU编程

直到最近,使用GPU进行科学计算的主要障碍一直是通用编程工具的可用性。早期的研究工作,如Brook2和Sh13,证明了使用GPU进行非图形计算的可行性。在2007年中期,Nvidia发布了CUDA16,这是一个新的GPU编程工具包,解决了以前工作的许多缺点,并充分利用了新一代具有计算能力的GPU。在2008年末,Khronos Group宣布了OpenCL14的标准化,这是一个供应商中立的GPU和加速器编程接口。AMD、Nvidia和许多其他供应商已经宣布计划为其GPU和CPU提供OpenCL实现。一些供应商还提供低级专有接口,使RapidMind12和Portland Group等第三方编译器供应商能够更轻松地针对GPU。随着主要的GPU供应商提供官方支持的GPU计算工具包,最重大的广泛使用障碍已被消除。

虽然我们专注于CUDA,但我们描述的许多概念在OpenCL中都有类似之处。全面概述CUDA编程模型超出了本文的范围,但John Nickolls等人在他们发表在2008年3/4月刊上的文章“使用CUDA进行可扩展并行编程”中提供了出色的介绍。15 CUDA代码是用C/C++编写的,并带有扩展,用于标识要为host、GPU device或两者编译的函数。旨在设备上执行的函数(称为kernels)是用C/C++的方言编写的,该方言与GPU硬件的功能相匹配。CUDA为与device交互提供的关键编程接口包括执行以下操作的例程

在设备上启动时,内核函数根据内核配置实例化数千次线程,内核配置决定了每个block和每个grid的块数和线程数的维度和数量。内核配置将并行计算映射到设备硬件,并且可以在运行时为输入数据和CUDA设备功能的特定组合选择内核配置。在执行期间,内核使用其线程和块索引来选择所需的计算以及输入和输出数据。内核可以包含所有常用的控制结构,例如循环和if/else分支,并且它们可以根据需要读取和写入数据到共享设备内存或全局内存。线程同步原语提供了在同一块中的线程之间协调内存访问的方法,从而允许它们在共享数据上协同操作。

开发高性能CUDA内核所涉及的关键挑战围绕着高效利用多个内存系统和利用所有可用的数据并行性。虽然GPU提供了巨大的计算资源,但这种能力是以限制每个线程的寄存器数量、每个块共享内存的大小和常量内存的大小为代价的。由于有数百个处理单元,GPU为线程提供本地堆栈是不切实际的。通常放在堆栈上的局部变量改为从线程的寄存器中分配,因此不支持递归内核函数。

分析应用程序的GPU加速潜力

分析应用程序以确定其是否适合任何加速技术的第一步是分析其组成例程在代表性测试用例上消耗的CPU时间。有了分析结果,就可以确定Amdahl定律在多大程度上限制了仅加速应用程序中的少数几个函数所能获得的好处。将其运行时集中在少数关键算法或函数中的应用程序通常是加速的最佳候选者。

例如,如果分析显示应用程序将其运行时时间的10%花费在其最耗时的函数中,而剩余的运行时时间分散在数十个不相关的函数中,每个函数不超过2%,那么这样的应用程序将很难成为加速工作的目标,因为以适度的努力可以实现的最佳性能提升仅为10%。一个更具吸引力的案例将是一个应用程序,它将其90%的执行时间用于运行在单个或两个函数中实现的单个算法。

一旦分析分析确定了值得加速的子例程,就必须评估是否可以使用数据并行算法重新实现它们。GPU上实现峰值执行效率所需的并行规模通常约为100,000个独立计算。GPU提供了极其细粒度的并行性,硬件支持将大量线程多路复用和调度到处理单元池中。这使得CUDA有可能在比其他并行编程范例通常实用的粒度级别上提取并行性。

图1:NCSA Lincoln GPU 集群

Figure 1: NCSA Lincoln GPU Cluster

用于HPC的GPU加速集群

鉴于GPU提供的显着加速潜力,人们对将GPU集成到大型HPC集群中越来越感兴趣。6,24,8,3,19,21 由于这种兴趣,Nvidia现在生产专门为在此类集群中使用而设计的高密度机架式GPU加速器。通过将GPU安装在具有独立电源的外部机箱中,可以将它们连接到刀片式服务器或1U机架式服务器,这些服务器缺乏内部安装GPU所需的功率和冷却能力。除了提高性能外,GPU加速集群还具有比传统CPU集群更好的电源效率的潜力。

在最近于国家超级计算应用中心NCSAAC GPU集群上进行的测试中,STMV(卫星烟草花叶病毒)的NAMD模拟测量了GPU提供的性能提升以及每瓦性能的提升。在具有四个CPU内核和四个GPU的单个节点(连接了Tesla S1070的HP xw9400工作站)的小规模测试中,四个Tesla GPU提供的速度比单独使用四个CPU内核提高了7.1倍。与仅在CPU内核上计算相比,GPU使每瓦性能提高了2.71倍。性能、空间效率、功率和冷却方面的提高促成了NCSA和东京工业大学等超级计算中心大型GPU集群的构建。图1显示了NCSA Lincoln集群,该集群包含384个GPU、1,536个CPU内核、3 TB内存,并实现了47.5 teraFLOPS的聚合峰值浮点性能。

GPU应用

尽管通用GPU编程工具包的推出时间不长,但各种生物分子建模应用程序已经开始利用GPU。

分子动力学

GPU加速最引人注目和最成功的应用之一是分子动力学模拟,该模拟主要由N体原子力计算构成。GPU在分子动力学方面的早期成功案例之一是Folding@Home项目5,7,在该项目中,对高度优化的GPU算法的持续努力已证明,对于特定类别的非常小的分子(5,000个原子及以下)的模拟(例如,蛋白质折叠),速度提高了100倍以上。Folding@Home是一个分布式计算应用程序,部署在全球数千台计算机上。GPU加速帮助使其成为世界上最强大的分布式计算集群,其中基于GPU的客户端提供了主要的计算能力

HOOMD(高度优化的面向对象分子动力学)是一个最近开发的软件包,专门用于聚合物系统的分子动力学模拟,它的独特之处在于它是从头开始设计,以便在GPU上执行。1 虽然HOOMD仍处于起步阶段,但它已被用于各种粗粒度粒子模拟,并通过使用GPU特定算法和方法实现了高达30倍的速度提升。

NAMD18是GPU在分子动力学中应用的另一个早期成功案例。22,19,17 这是一个高度可扩展的并行程序,旨在用于包含数十万到数百万个原子的大型生物分子系统的全原子模拟。由于NAMD用户在全球超级计算机上消耗了大量的处理器小时,我们研究了各种加速选项,并使用CUDA来加速使用GPU计算非键合力。CUDA加速与基于任务的并行性很好地结合在一起,允许NAMD在每个节点具有多个GPU的集群上运行。使用CUDA流API进行异步内存传输和内核调用,以使GPU计算与CPU完成的通信和其他工作重叠,从而使速度比仅CPU运行快九倍。19

在每次迭代中,NAMD都必须计算截止距离内所有原子对之间的短程相互作用力。通过将空间划分为略大于截止距离的补丁,我们可以确保原子的所有相互作用都发生在相同或相邻立方体中的原子之间。我们的GPU实现中的每个块都负责由于同一或相邻补丁中的原子而作用于单个补丁中原子的力。内核将来自分配对中第一个补丁的原子复制到共享内存,并将来自第二个补丁的原子保存在寄存器中。所有线程一致地迭代共享内存中的原子,仅累积寄存器中原子的力。然后,将每个原子的累积力写入全局内存。由于一对原子之间的力相等且相反,因此可以将力计算的数量减少一半,但是共享内存中原子力求和所需的额外协调超过了任何节省。

NAMD使用常量内存来存储键合原子对的压缩查找表,对于这些原子对,标准短程相互作用无效。这是高效的,因为该表完全适合常量缓存,并且仅在少量对中引用。纹理单元是GPU硬件的专用功能,旨在快速将图像映射到表面上,用于从完全适合纹理缓存的值数组中插值短程相互作用。纹理单元的专用硬件可以为每个需要它的线程返回单独的插值,速度比解析评估势函数的速度更快。

图2:核糖体中离子的放置

Figure 2: Placement of Ions in a Ribosome

如图所示,以前在核糖体等大型结构中放置离子需要使用HPC集群进行计算,但现在可以在GPU加速的台式计算机上在短短几分钟内完成。

构建、可视化和分析分子模型

GPU显示出巨大前景的另一个领域是加速准备模拟模型、可视化模型和分析模拟结果所涉及的许多计算密集型任务

在病毒和其他包含核酸的结构的模拟中,关键任务之一是放置离子以重现自然生物学条件。正确放置离子(见图2)需要了解模拟系统所占据空间体积中的静电场。通过评估规则间隔的晶格上的静电势并在静电场中的最小值处插入离子来放置离子,用新添加离子的势贡献更新场,并根据需要重复插入过程。在这些步骤中,初始静电场计算占用了大部分运行时,因此最适合GPU加速。

简单的二次时间直接库仑求和算法通过对所有原子的势贡献求和来计算每个晶格点的静电场。当以最佳方式实现时,利用快速倒数平方根指令并广泛使用接近寄存器速度的片上内存,GPU直接求和算法的性能可以比CPU内核高出44倍或更多。22,17 通过采用所谓的“短程截止”距离(超出该距离忽略贡献),该算法可以实现线性时间复杂度,同时仍比CPU内核高出26倍或更多。20 为了考虑来自远处原子的长程静电贡献,短程截止算法必须与长程贡献相结合。线性时间多级求和方法的GPU实现结合了短程和长程贡献,与CPU内核相比,速度提升超过20倍。9

GPU加速技术已被证明在越来越多的其他生物分子应用中获得成功,包括量子化学模拟和可视化25,23、溶剂可及表面积的计算4以及其他。GPU和其他多核处理器似乎在未来会发现更大的适用性。

展望未来

随着特性尺寸的缩小,CPU 和 GPU 制造商现在都通过在其芯片中增加内核来利用制造技术的进步。GPU 编程系统预计会出现这种趋势,其中多核计算是常态,而 CPU 编程仍然主要基于串行执行模型,对紧密耦合的片上并行性的支持有限。因此,我们预计 GPU 将保持其相对于 CPU 目前 10 倍的峰值性能优势,同时它们在适合的问题上获得的性能优势将继续增长。我们进一步注意到,尽管 GPU 在制造技术方面历来落后 CPU 一代,但它们仍保持了这种性能领先地位,随着需求的增长,这种劣势可能会逐渐消失。

GPU 加速和其他计算机性能提升为生物医学科学带来的巨大好处将体现在三个方面。首先是在于更快、更方便地完成与今天相同的计算,在午餐时间而不是过夜提供结果,以便在头脑还清晰时测试假设。其次是实现今天速度过慢或成本过高的新型计算,例如评估整个模拟过程中的属性,而不是仅针对少数静态结构。第三个也是最重要的方面是极大地扩展高端生物医学计算的用户群体,使其包括世界各地的所有实验研究人员,因为有大量工作要做,而我们才刚刚开始揭开原子尺度生命奇迹的序幕。

喜欢还是讨厌?请告诉我们

[email protected]

参考文献

1. Anderson, J. A., Lorenz, C. D., Travesset, A. 2008. 通用分子动力学模拟完全在图形处理单元上实现 (General-purpose molecular dynamics simulations fully implemented on graphics processing units)。Journal of Chemical Physics 227(10): 5342-5359.

2. Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P. 2004. 用于 GPU 的 Brook:图形硬件上的流计算 (Brook for GPUs: Stream computing on graphics hardware)。载于 SIGGRAPH 2004 Papers: 777-786

3. Davis, D., Lucas, R., Wagenbreth, G., Tran, J., Moore, J. 2007. 用于加速 FMS 的 GPU 增强集群 (A GPU-enhanced cluster for accelerated FMS)。载于 Proceedings of the 2007 DoD High-performance Computing Modernization Program Users Group Conference: 305-309. IEEE Computer Society.

4. Dynerman, D., Butzlaff, E., Mitchell, J. C. 2009. CUSA 和 CUDE:用于估计溶剂可及表面积和去溶剂化的 GPU 加速方法 (CUSA and CUDE: GPU-accelerated methods for estimating solvent accessible surface area and desolvation)。Journal of Computational Biology 16(4): 523-537.

5. Elsen, E., Vishal, V., Houston, M., Pande, V., Hanrahan, P., Darve, E. 2007. GPU 上的 N 体模拟 (N-body simulations on GPUs)。技术报告,斯坦福大学(六月); http://arxiv.org/abs/0706.3060.

6. Fan, Z., Qiu, F., Kaufman, A., Yoakum-Stover, S. 2004. 用于高性能计算的 GPU 集群 (GPU cluster for high-performance computing)。载于 Proceedings of the 2004 /IEEE Conference on Supercomputing: 47. IEEE Computer Society.

7. Friedrichs, M. S., Eastman, P., Vaidyanathan, V., Houston, M., Legrand, S., Beberg, A. L., Ensign, D. L., Bruns, C. M., Pande, V.S. 2009. 加速图形处理单元上的分子动力学模拟 (Accelerating molecular dynamic simulation on graphics processing units)。Journal of Computational Chemistry 30(6): 864-872.

8. Göddeke, D., Strzodka, R., Mohd-Yusof, J., McCormick, P., Buijssen, S. H. M., Grajewski, M., Turek, S. 2007. 探索 GPU 增强集群上 FEM 计算的弱可扩展性 (Exploring weak scalability for FEM calculations on a GPU-enhanced cluster)。Parallel Computing 33(10-11): 685-699.

9. Hardy, D. J., Stone, J. E., Schulten, K. 2009. 使用图形处理单元的多级静电势求和 (Multilevel summation of electrostatic potentials using graphics processing units)。Parallel Computing 35: 164-177.

10. Humphrey, W., Dalke, A., Schulten, K. 1996. VMD:可视化分子动力学 (VMD: Visual Molecular Dynamics)。Journal of Molecular Graphics 14: 33-38.

11. Lindholm, E., Nickolls, J., Oberman, S., Montrym, J. 2008. Nvidia Tesla:统一的图形和计算架构 (Nvidia Tesla: A unified graphics and computing architecture)。IEEE Micro 28(2): 39-55.

12. McCool, M. 2006. 使用 RapidMind 开发平台在 Cell BE 和 GPU 上进行数据并行编程 (Data-parallel programming on the Cell BE and the GPU using the RapidMind development platform)。载于 GSPx Multicore Applications Conference (十月-十一月).

13. McCool, M., Du Toit, S., Popa, T., Chan, B., Moule, K. 2004. 着色器代数 (Shader algebra)。 Transactions on Graphics 23(3): 787-795.

14. Munshi, A. 2008. OpenCL 规范版本 1.0 (OpenCL specification version 1.0); http://www.khronos.org/registry/cl/.

15. Nickolls, J., Buck, I., Garland, M., Skadron, K. 2008. 使用 CUDA 的可扩展并行编程 (Scalable parallel programming with CUDA)。 6(2): 40-53.

16. Nvidia CUDA(计算统一设备架构)编程指南 (Nvidia CUDA (Compute Unified Device Architecture) Programming Guide)。2007. Nvidia, Santa Clara, CA.

17. Owens, J. D., Houston, M., Luebke, D., Green, S., Stone, J. E., Phillips, J. C. 2008. GPU 计算 (GPU computing)。 Proceedings of IEEE 96: 879-899.

18. Phillips, J. C., Braun, R., Wang, W., Gumbart, J., Tajkhorshid, E., Villa, E., Chipot, C., Skeel, R. D., Kale, L., Schulten, K. 2005. 使用 NAMD 的可扩展分子动力学 (Scalable molecular dynamics with NAMD)。Journal of Computational Chemistry 26: 1781-1802.

19. Phillips, J. C., Stone, J. E., Schulten, K. 2008. 将消息驱动的并行应用程序适配到 GPU 加速集群 (Adapting a message-driven parallel application to GPU-accelerated clusters)。载于 Proceedings of the 2008 /IEEE Conference on Supercomputing。IEEE Press.

20. Rodrigues, C. I., Hardy, D. J., Stone, J. E., Schulten, K., Hwu, W. W. 2008. 用于分子建模应用的截止对势的 GPU 加速 (GPU acceleration of cutoff pair potentials for molecular modeling applications)。载于 Proceedings of the 2008 Conference on Computing Frontiers: 273-282. .

21. Showerman, M., Enos, J., Pant, A., Kindratenko, V., Steffen, C., Pennington, R., Hwu, W. 2009. QP:异构多加速器集群 (QP: A heterogeneous multi-accelerator cluster)。载于 10th LCI International Conference on High-performance Clustered Computing (三月).

22. Stone, J. E., Phillips, J. C., Freddolino, P. L., Hardy, D. J., Trabuco, L. G., Schulten, K. 2007. 使用图形处理器加速分子建模应用程序 (Accelerating molecular modeling applications with graphics processors)。 Journal of Computational Chemistry 28: 2618-2640.

23. Stone, J. E., Saam, J., Hardy, D. J., Vandivort, K. L., Hwu, W. W., Schulten, K. 2009. GPU 和多核 CPU 上分子轨道的高性能计算和交互式显示 (High-performance computation and interactive display of molecular orbitals on GPUs and multicore CPUs)。载于 Proceedings of the 2nd Workshop on General-purpose Processing on Graphics Processing Units, International Conference Proceeding Series 383: 9-18.

24. Takizawa, H., Kobayashi, H. 2006. 在带有 GPU 协处理的 PC 集群上进行大规模数据聚类的分层并行处理 (Hierarchical parallel processing of large-scale data clustering on a PC cluster with GPU coprocessing)。Journal of Supercomputing 36(3): 219-234.

25. Ufimtsev, I. S., Martinez, T. J. 2008. 图形处理单元上的量子化学。1. 双电子积分评估策略 (Quantum chemistry on graphical processing units. 1. Strategies for two-electron integral evaluation)。Journal of Chemical Theory and Computation 4(2): 222-231.

James Phillips 是伊利诺伊大学厄巴纳-香槟分校贝克曼高级科学与技术研究所理论与计算生物物理学组的高级研究程序员。他拥有伊利诺伊大学物理学博士学位和马凯特大学物理学和数学学士学位。自 1999 年以来,Phillips 一直是 NAMD 的首席开发人员,NAMD 是一款高度可扩展的并行分子动力学程序,他因此于 2002 年获得了戈登·贝尔奖。他的研究兴趣包括通过并行化、优化、硬件加速、更好的算法和新方法来提高生物分子模拟的性能和准确性。通过 [email protected] 联系他。

John Stone 是伊利诺伊大学厄巴纳-香槟分校贝克曼高级科学与技术研究所理论与计算生物物理学组的高级研究程序员。他的研究兴趣包括科学可视化、GPGPU(GPU 上的通用计算)、并行渲染、虚拟现实和用于交互式模拟的触觉界面以及高性能计算。他是 VMD 分子可视化和分析程序的首席开发人员。他于 1998 年获得密苏里大学罗拉分校计算机科学硕士学位,并于 1994 年获得计算机科学学士学位。通过 [email protected] 联系他。

© 2009 1542-7730/09/1000 $10.00

acmqueue

最初发表于 Queue vol. 7, no. 9
数字图书馆 中评论本文





更多相关文章

Stephen V. Cantrill - 患者护理中的计算机:希望与挑战
一位来自纽约市的 29 岁女性凌晨 3 点来到加利福尼亚州的急诊室(急诊科),主诉严重的急性腹痛,痛醒了她。她报告说她正在加利福尼亚州参加婚礼,并且最近也患有类似的腹痛,最近一次导致了阑尾切除术。急诊医生进行了腹部 CAT 扫描,并看到了他认为是阑尾切除术后腹腔内的伪影。除了她能够告诉他的之外,他对患者的既往病史一无所知;他无法访问阑尾切除术之前或之后拍摄的任何图像,也无法获得有关手术记录或随访的其他任何重要信息。


Samantha Kleinberg, Bud Mishra - 蜕变:转化系统生物学的即将到来的变革
一天早上,格雷戈里娜·萨姆莎从焦虑的梦中醒来,她发现自己患上了一些神秘的流感样症状,这些症状没有任何警告地出现。“我怎么了?”她想。在去看医生之前,她决定更多地了解自己可能患了什么病。她登录到一个网站,她在网站上用自己能记住的内容注释了时间线。自三月份以来,她比平时更频繁地头痛,然后在四月份,她在运动后开始感到更加疲劳,并且从七月份开始,她也偶尔出现记忆力衰退的情况。


Matthew T. Dougherty, Michael J. Folk, Erez Zadok, Herbert J. Bernstein, Frances C. Bernstein, Kevin W. Eliceiri, Werner Benger, Christoph Best - 使用 HDF5 统一生物图像格式
生物科学需要一种通用的图像格式,该格式适用于长期存储并且能够处理非常大的图像。图像在生物学中传达了深刻的思想,跨越了学科。数字图像技术始于 50 年前,当时还是一种晦涩的技术现象。现在它已成为不可或缺的计算工具。它产生了各种不兼容的图像文件格式,其中大多数格式已经过时。


Kenneth N Lodding - 仿生软件的旅行者指南
自然世界可能是我们解决计算机问题所需的灵感。虽然“地图不是实际的地域”肯定是正确的,但大多数前往异国他乡的游客确实更愿意随身携带至少一本指南,以帮助他们在开始探索时确定自己的位置。这就是本文的目的。尽管没有足够的时间参观所有主要的旅游景点,但只要稍加努力并使用本文中的信息作为路标,勇敢的探险家就可以轻松找到许多其他有趣的探索路径。





© 保留所有权利。

© . All rights reserved.