研究说明使用高性能计算与 HIV 对抗

Kristin Firth 和 Mia Matusow

当想到医学研究工作者时,您是否会联想起身穿白色实验室工作服、手持试管和显微镜工作的男士和女士?或许是大学或医药公司的一组化学家?这是对医学研究的普遍印象,当然这也是真实的,但是这些只代表

该领域的一个方面。事实上,某些医学研究是在极为不同的环境下进行的。

了解到 Microsoft Research 正在开发人体免疫缺损病毒 (HIV) 疫苗的工作中起着重要的作用时,您可能会感到吃惊。而且,也没有看到 Microsoft 在进行这项工作时使用什么本生灯设备。环境看起来就像其他普通办公环境,有整齐的书桌和许多 PC。

那么 Microsoft 在所有这些研究中扮演什么角色呢?这些身穿白色实验室工作服的人 — 各所大学和研究中心(包括波士顿的麻省总医院、英国哥伦比亚大学、华盛顿大学、Fred Hutchinson 癌症研究中心和澳大利亚的默多克大学)的科学家 — 收集了大量的项目数据。Microsoft Research 的 eScience 小组由大约六个人组成,其中大部分成员居住在华盛顿州的雷蒙德(有一名成员居住在新墨西哥州),他们帮助这些研究人员处理和分析大量的数据。早在 2003 年,Microsoft Research 首次加入这一项目,现在,eScience 小组与科学家在多个项目中合作,这些项目致力于处理影响社会的一些问题。该团队与外部的科学家密切合作,为项目构建自定义解决方案,分析处理数据和分析结果。

在一个高优先级的项目中,Microsoft 正在协助分析与 HIV 变异模式有关的数据。Microsoft 的高级研究人员 David Heckerman 医学博士解释说,HIV 在受到受感染者免疫系统的攻击时会快速变异。“我们正在从事一项尝试确定 HIV 在响应宿主的免疫系统时如何变异的研究。为此,我们正在寻找个人免疫系统类型和感染他的 HIV 蛋白质序列之间的关联性。”

科学家使用来自 HIV 感染者的样本来确定免疫系统类型和 HIV 序列。分析处理数据在这时就派上了用场。该研究在几百个个体中搜索 3,000 种 HIV 氨基酸和数百种免疫系统类型之间的关联性。“我们已设计了可提供较为可靠的关联性的统计测试,能减少假阳性和假阴性数。”Microsoft 的首席研究软件开发工程师 Carl Kadie 博士说。“但是,这些测试需要大量的计算功能,而且包括的对象越多越好。我们想运行数百万次的模拟来揭示最可靠的相互关系。”

使用 HPC 与 HIV 对抗

就在几年以前,研究所做的努力还在因为处理能力的限制而受到阻碍。仅配备了六台计算机,参与此项目的 Microsoft 研究人员没有足够的处理能力在适当的时间内执行分析。哪怕仅仅 200 个对象,想了解疫苗基因组的每个位置和不同免疫类型就要花费整整一年的时间。即使研究人员拥有 20 台计算机专供分析使用,他们仍然会面临一个基本问题,即手动在 20 台独立的计算机上运行测试、接收 20 组单独的结果以及需要其他程序(以及更多时间)将单独的结果组制成表格。管理多个作业、收集部分输出和涉及的所有其他各项任务将会花费许多时间。因此,他们向 Microsoft 的高性能计算 (HPC) 小组寻求帮助。

在 2006 年,研究人员实现了 Windows® Compute Cluster Server 2003。该 HPC 解决方案为研究人员控制许多台一起工作的计算机提供了简单方法。实际上,Windows Compute Cluster Server 允许在并行运行的服务器节点之间分配工作。在节点之间分发数据、管理数据和合并结果的任务都是自动完成的。该解决方案包括安装步骤、一系列管理工具和集成的作业计划程序。

最后,使用该解决方案克服了最重要的技术障碍:计算功能不再受限制并且分配工作和管理数据的过程完全自动化。

安装

对于 Microsoft Research,计算群集方法非常合适。Windows Compute Cluster Server 2003 非常适合包括反复执行相同操作的应用程序的项目 — 例如,当并行运行任务可加速解决问题和分析时。但是,不应该轻率地部署该解决方案,因为高性能计算可能需要相当多的资金 — 尤其是在电源和冷却方面。该解决方案需要使用经常以 100% 的 CPU 使用率连续运行几周的多台服务器。

接下来的步骤是确定组织可以提供的群集的大小以及可以存储群集的位置。如果环境已经是基于 Windows 且具备 Active Directory® 的环境,则管理员就拥有了安装、部署和支持群集所需的基础结构。在尚未使用 Active Directory 的环境中,需要一些额外的配置步骤。

您还应决定如何在计算群集中配置节点,这意味着选择使用 Windows Compute Cluster Server 2003 附带的工具还是选择使用您自己的内部部署技术。您需要部署 Windows Compute Cluster Server 2003 本身以及您希望在群集上运行的软件应用程序。还必须建立用户对群集的访问权限,以便用户能够连接到群集和提交作业,这可以通过包含的图形 UI 或通过命令行界面完成。

Windows Compute Cluster Server 2003 是 64 位操作系统(图 1 显示了 Windows Compute Cluster Server 2003 环境的典型体系结构)。编写本专栏时(2007 年 6 月),Microsoft Research 正在基于 25 台 IBM eServer 326 服务器构建的群集上运行各种不同的应用程序。上述每台服务器都配有以 2.6 GHz 运行的两个 AMD Opteron 处理器。

图 1 使用 Windows Compute Cluster Server 2003 控制计算能力

图 1** 使用 Windows Compute Cluster Server 2003 控制计算能力 **(单击该图像获得较大视图)

部署 Windows Compute Cluster Server 后,小组更新了其用于在群集上运行以执行遗传关联性的应用程序。为计算群集部署应用程序的复杂程度各不相同。应用程序本身会对编程的必要程度产生影响。

首先,小组使用 Windows Compute Cluster Server 的内置工具快速建立通用 UI。这仅仅是一个快速修补,但是,小组很快创建了自己的自定义 Web 应用程序,该应用程序可提供更好的灵活性并支持选择将某些群集节点展示给 Microsoft 以外的科学家。事实上,Microsoft 是 Open Grid Forum 的一员,并且某些 Microsoft Research 群集可供全球其他大学的用户使用,从而使研究人员可以相互合作并分担工作。

除了其图形 UI 以外,Windows Compute Cluster Server 还支持命令行操作,允许用户编写脚本。它提供可用于编写程序的丰富的 API,这些程序可直接与 Windows Compute Cluster Job Scheduler(Microsoft Research 选择采用的一种技术)进行交互。

获得结果

由于使用了高性能计算,现在,Microsoft Research 的 eScience 小组在开发 HIV 疫苗方面取得了巨大的进展。“借助于高性能计算,我们已经能够加快了解分析结果这一过程的速度,”Heckerman 说,“几个正在与我们合作的外部研究小组现在使用我们的统计技术并与我们共享他们的发现。因此,科学家已经提出新的假定供我们进行测试。以前,获得整个过程的每个步骤的结果都会花费一年的时间。现在只要用一天。”

在 Windows Compute Cluster Server 之前,Microsoft Research 使用的方法由于需要时间执行分析而不切实际。Kadie 说:“使用 Windows Compute Cluster Server,我们可以在过去运行 1 个作业的相同时间内运行包含 200,000 个工作项的 50 个作业。”

现在 eScience 小组拥有唾手可得的强大计算能力,因此可以对模拟数据运行多次作业来进行测试。对模拟数据运行的作业对于确定实际数据上的哪些结果值得关注至关重要。执行的模拟越多,结果越可信。

经验教训

很明显,Microsoft Research 从使用 Windows Compute Cluster Server 中获得了益处,但是实际上这种关系是相互的。高性能计算小组中的开发人员(正在研究 Windows Compute Cluster Server 的第二版本)继续从 eScience 研究小组提供的反馈中了解情况。

特别是,通过监视和分析 Microsoft Research 群集的行为确定在多个用户之间平衡群集资源的最好方法,HPC 研究小组已了解到了有关资源分配的大量知识。例如,关于此项目,用户通常一次创建一个作业,每个作业平均有 50 个任务与之关联。用户提交作业后,Windows Compute Cluster Job Manager 会分配足够的资源来管理所有 50 个任务。为此,它立即要求群集上所有可用的节点都来处理这些任务。该方案在单一用户环境中不会出现问题,但在多用户设置中,各项目同时进行非常重要,因而会出现问题。

当前,当作业的 50 个任务中有 10 个已完成时,并不会释放这 10 台服务器。作业管理器等到作业中的所有 50 个任务都完成后,才会释放服务器来处理另一作业。HPC 开发人员正在研究在完成每个任务(而不是整个作业)后重新分配资源的方法。

Microsoft Research 也希望 HPC 研究小组帮助解决因研究人员希望使用 Windows Compute Cluster Server 的方式而产生的特定问题。值得注意地是,研究人员希望设置安全性,以便用户凭据会自动从 Web 前端传播到计算群集。该解决方案在 Microsoft® .NET Framework 中工作并扩展 ASP.NET 窗体身份验证,以便 Web 应用程序能够在每次用户提交作业时为群集节点提供完整的用户凭据。

现在,Microsoft Research 的 eScience 团队成员及其来自世界各地的同仁可以将精力集中在其作业的最重要部分上,而将涉及处理和管理数据的所有任务留给计算机完成。“因此,我们能够作为一个团队继续前进,”Heckerman 说,“我们扩大了对 HIV 的了解范围,并在与该疾病的斗争中取得了较大的进展。”

Kristin Firth 和 Mia Matusow都在从事 Blue Line 的撰写和编辑工作,过去十年来一直致力于在三大洲内为公共部门和私营部门的企业组织创建策略内容。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.