庆祝分布式计算多样性的发展成果

来自中国分布式计算总站
BiscuiT讨论 | 贡献2009年7月24日 (五) 21:01的版本 (新页面: '''<big>Celebrating Diversity in Volunteer Computing</big>'''<br> '''庆祝分布式计算多样性的发展成果''' January 20, 2009 作者:<br> '''David P. Anderson'''<br> Universi...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

Celebrating Diversity in Volunteer Computing
庆祝分布式计算多样性的发展成果

January 20, 2009

作者:
David P. Anderson
University of California, Berkeley

Kevin Reed
IBM


< 资料来源:University of California, Berkeley >


本文讨论 BOINC 系统如何处理分布式计算中资源与任务的多样性。获得第42届夏威夷国际系统科学协商会最佳论文奖。


概要

志愿者提供计算资源的系统是高度多样化的,无论在软件和硬件的类型、速度、可用性、可靠性、网络连通性和其他性质上。同样的,将被执行的任务可能会随着志愿者们的硬件和完成任务所需时间的各异而大不相同。为了最大限度的提高系统性能,系统的任务选择策略必须同时适应这些多样性。在本文中我们针对 World Community Grid(由 IBM 主办的大型志愿者计算项目)和 BOINC (WCG所基于的中间件系统)来对计算资源的多样性进行讨论。然后我们讨论在 BOINC 调度程序中有效地把不同任务匹配给不同主机的技术。


介绍

志愿者计算是一种分布式计算,它是让一般市民志愿者参与并提供计算和存储资源的计算项目。BOINC 是一个为志愿者计算的软件平台[2]。BOINC 正被各种项目所应用,如物理、分子生物学、医学、化学、天文学、气候动力学、数学和各种游戏的研究。目前已有50个项目和580000位志愿者的计算机提供着平均 1.2 PetaFLOPS 的计算能力。

相对于其他类型的高性能计算,志愿者计算有着高度的多样性。志愿者的计算机在软件和硬件的类型、速度、可用性、可靠性和网络连通性上有着很大的不同。同样的,计算程序和任务在资源要求和时间限制上也是有很大差异。

这些多样性给 BOINC 提出了很多的要求。其中最重要的是任务选择问题:当一个客户端连接到 BOINC 的调度服务器,这时服务器必须根据一套复杂的标准机制,从数据库中可能多达百万的任务里面做出选择,把对于该客户端“最佳”的任务挑选出来。而且,服务器必须在每秒钟应付数以百计这类请求。

在本文中,我们以 IBM 主办的 World Community Grid(基于BOINC的大型志愿者计算项目)为背景来讨论这个问题。第2节介绍 BOINC 的架构。第3节概述了参与 World Community Grid 的志愿者的计算机以及所支持的应用。第4节我们讨论使用 BOINC 调度服务器处理差异任务和不同主机的技术。这项工作获得了自然科学基金会授予奖项:OCI-0721124


BOINC 的模型与结构

BOINC 的模型包含项目方与志愿者。项目方是需要计算资源的组织(通常是学术机构)。各个项目是独立的,他们各自运营自己的 BOINC 服务器。

志愿者通过在自己计算机(主机)上运行 BOINC 客户端软件参与到项目。志愿者可以对每个主机添加任何一个项目。并可以对每个项目制定资源配额。

一个 BOINC 服务器是与之相关的数据库的中心,并相应于以下抽象 BOINC 计算模型:

  • 平台:一个运行环境,通常是操作系统和处理器类型的类型结合(Windows/x86),或者是虚拟环境(VMWare/x86 或 Java)。
  • 应用程序:抽象的计算程序,独立于平台或版本。
  • 应用程序版本:一个可执行程序。与应用程序,平台,版本号,和一个或多个文件(主程序,库,数据)相关的。
  • 任务:一个需要完成的计算工作。与应用程序(不是应用程序版本或者平台)和一组输入文件相关的。
  • 任务实例:任务在特定主机上的执行。每个任务实例与应用程序版本(选择任务时发出)和一组输出文件相关的。

志愿者返回的计算结果并非总是正确的,由于硬件故障(特别是在超频使用的计算机上)或是恶意志愿者试图破坏项目或为了获得积分而不进行实际运算。这样,结果验证通常是需要的。

BOINC 支持多种结果验证技术,最基本的就是冗余计算,在这种情况下会把任务实例发送给两个不同的主机。如果结果一致,它们就被认为是正确的。否则会进一步发送任务实例到其他主机,到获得一致的结果,或者达到实例的数量限制。


World Community Grid 上的主机与应用的多样性

World Community Grid 是由 IBM 公司主办的大型志愿者计算项目,目前已有超过390000名志愿者参与。自2004年11月项目开始以来,他们贡献了超过167000年的计算时间。目前从全部志愿者的计算机上平均提供着 170 TeraFLOPS 的计算能力。

参与到 World Community Grid 的计算机在处理器、操作系统、内存、硬盘、网络带宽、可用性、错误率和周转时间都有着很大差异。图表1显示了这些差异的分布。