#1247 1999 · SETI@home (UC Berkeley Space Sciences Laboratory) · Astronomy / distributed computing
伯克利买不起超算搜寻外星信号,就借用了闲置的家用电脑
问题
从射电望远镜数据里搜寻外星信号,需要的算力远超天文学预算能负担的范围
背景
阿雷西博天文台的射电望远镜每天采集约35GB原始数据,是更大范围SETI(搜寻地外文明)计划的一部分;要从这些数据里找出可能代表人工信号的窄带模式,所需算力远远超出加州大学伯克利分校空间科学实验室能持续购买或租用的能力。传统超算的机时价格昂贵,还要跟许多互相竞争的研究项目分摊,靠项目预算根本撑不起一次持续、专用的搜索。
David Anderson和Dan Werthimer的团队在1990年代中期酝酿这个想法时注意到,全世界数百万台个人电脑大部分时间都在闲置,主人不在时只是跑着毫无用处的屏幕保护程序。1999年5月17日上线的SETI@home,用一款软件替换掉那个闲置的屏保:软件下载一小段阿雷西博的射电数据,利用电脑的空闲算力在本地处理,再自动把分析结果传回去,一切都由安装者免费捐出。
换别人会怎么做
当时能选的路子,要么是申请机构超算的共享机时——僧多粥少,多个研究项目抢着用——要么是另外筹一笔专项资金,去买实验室天文预算原本负担不起的计算硬件。
他们看到了什么
Anderson和Werthimer看清了:世界上早就存在闲置算力,数百万台电脑藏在屏保背后,缺的只是把数据切成小块送过去,而不是再去买机器。
那一手
SETI@home把阿雷西博射电望远镜的原始数据切成小块,分发给任何安装了免费客户端的志愿者家用电脑;软件以屏保的形式在电脑闲置时处理数据,并自动回传结果,把数十万台普通电脑捐出的闲置算力,汇聚成一次统一的分布式搜索。
为什么管用
因为每一份工作单元都是一小段独立的射电数据,处理和回传不需要志愿者之间做任何协调,系统增加新参与者时几乎不产生额外管理成本,可用算力总量只随安装客户端的人数增长,而不受制于固定的硬件预算。把参与设计成被动的屏保而不是主动任务,让贡献的成本几乎降到零,这也是上线几个月内用户就突破一百万的原因。
值了多少
1999年5月上线后三个月内,一百万名志愿者累计捐出了51,000年的处理器时间。
什么时候会失灵
这套方法要求计算任务能拆成小而独立、不需要贡献者之间实时协调的单元,还要能在不重跑整个计算的前提下核实回传结果是否正确。对于需要紧密耦合、按顺序计算的任务,或者恶意/故障的志愿者机器可能悄悄污染结果而不被发现的任务,这种分发方式并不适用。
后来呢
SETI@home成了志愿者分布式计算的范本,其底层BOINC软件框架后来支撑起从蛋白质折叠到气候建模等数十个其他科研项目,SETI@home项目本身则在持续运行21年的志愿计算后,于2020年3月停止发放新的工作单元。
资料来源
- [1]Over One Million Served: SETI@Home Reaches A MilestoneScienceDaily, 1999sciencedaily.com