Berkeley Open Infrastructure for Network Computing

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
BOINC
BOINC logo July 2007.svg
BOINCconproyectos.png
macOS上で動作するBOINC Manager 7.6.22
開発元 カリフォルニア大学バークレー校
初版 2002年4月10日(18年前) (2002-04-10
最新版

7.16.7 Windows 2020年5月28日(2か月前) (2020-05-28

7.16.6 macOS 2020年4月3日(3か月前) (2020-04-03

7.4.22 Linux 2014年9月17日(5年前) (2014-09-17

7.4.53 Android

2016年7月3日(4年前) (2016-07-03
最新評価版

7.16.6 Linux 2020年4月5日(3か月前) (2020-04-05

7.16.3 Android

2019年10月10日(9か月前) (2019-10-10
リポジトリ github.com/BOINC/boinc
プログラミング言語 C++ (client/server)
PHP (project CMS)
Java/Kotlin (Android client)
対応OS Windows
macOS
Linux
Android
種別

グリッド・コンピューティング

ボランティア・コンピューティング
ライセンス GNU Lesser General Public License[1]
Project licensing varies
公式サイト boinc.berkeley.edu
テンプレートを表示

Berkeley Open Infrastructure for Network Computing (バークレー・オープン・インフラストラクチャ・フォー・ネットワーク・コンピューティング) (BOINC, 発音 [bɔɪŋk] – "oink"と韻を踏む[2]) は、ボランティア・コンピューティンググリッド・コンピューティングのためのオープンソースミドルウェア・システムである。もともとはSETI@homeプロジェクトをサポートするために開発されたが、数学、言語学、医学、分子生物学、気候学、環境科学、宇宙物理学などの多様な分野で、他の分散アプリケーションのためのプラットフォームとして一般化された[3]。BOINCは、研究者が世界中の複数のパーソナルコンピュータの膨大な処理資源英語版を利用できるようにすることを目的としている。

BOINCの開発は、カリフォルニア大学バークレー校宇宙科学研究所 (SSL) に拠点を置き、SETI@homeのリーダーでもあるデビッド・アンダーソン(David Anderson)が率いるチームから始まった。高性能分散コンピューティング・プラットフォームとして、BOINCは、2020年3月17日時点で、世界中の約137,805人のアクティブな参加者と791,443台のアクティブなコンピュータ (ホスト) を集め、平均41.548ペタフロップスで処理する[4] (スーパーコンピュータTOP500リスト上の個々のスーパーコンピュータと比較した場合、世界で5番目に大きな処理能力となる)。全米科学財団 (NSF) は、SCI/0221529[5]、SCI/0438443[6]、SCI/0721124[7]の各賞を通じてBOINCに資金を提供している。ギネス世界記録では、BOINCは世界最大の計算グリッドとしてランク付けしている[8]

BOINCのコードは、Microsoft WindowsmacOSAndroid[9]、Linux、FreeBSD[10]を含む様々なオペレーティングシステム上で動作する。BOINCはGNU Lesser General Public License (LGPL)の条件でリリースされたフリーソフトウェアである。

BOINC の特徴[編集]

参加者側からみた特徴[編集]

参加者が最初に導入するのは、後述する BOINC クライアントであるが、ここではクライアント側ソフトウェアの構造から説明を始める。 まず、参加者側に配置されるクライアント・ソフトウェアが稼動するのに必須な部分は以下の2つである。

  • (a) アプリケーション: 分散コンピューティング・プロジェクトのそれぞれが目的とする計算をする部分
  • (b) コア・クライアント: どのプロジェクトでも使う共通部分(運用サーバとの送受信機能や 上記の(a)部分から呼び出すライブラリ機能)

前者(a)アプリケーションは、各プロジェクトのサーバから参加者側へダウンロードされて複数プロジェクトが共存できる。

上記の必須部分 (a)+(b) に加えて、操作を楽にするための GUI が追加できる。GUI 部分と、(a)、そして(b)はこのように構造上分離されているが、今ではほとんどのプラットフォーム向けにそれぞれ GUI が用意されている。このため参加者からみると GUI がオプションであるとは意識されていないことがほとんどである。配布に際しても (b)コア・クライアントと GUI は一体として配られているので、コア・クライアント+ GUI を BOINC クライアントと呼ぶことが多い。つまり、

  • (c) BOINC クライアント: コア・クライアント+ GUI 部分

である。たとえば、Windows用や、macOS用の標準GUI版の BOINC クライアントがある。GUI の中には、機能を絞ったシンプルな画面と細かい操作のできる Advanced View の 2層構造になっているものもある。 コア・クライアントには、スクリーンセイバーを組込む仕組みが用意されており、旧来の SETI@home でもあったようなグラフィカルな動作画面が表示される。スクリーンセイバーは アプリケーションごとに用意するものなので、スクリーンセイバーが表示されないプロジェクトもある。以下ではBOINC クライアントを、主にコア・クライアント + GUI の意味で使うが、さらにおおまかに、(a)も集合的に含めたクライアント側ソフトウェア全体を意味することもある。

BOINC ベースの分散コンピューティングプロジェクトへの参加者は、まず BOINC クライアントを入手し、プロジェクトへの参加登録は BOINC クライアントを通じて行う [11]。参加登録が終わるとただちにそのプロジェクトのアプリケーションと最初の仕事が自動的にダウンロードされ、運用が始まる仕組みである。アプリケーションの新しいバージョンがリリースされた際も、BOINC クライアントが自動的にダウンロードする。稼動の一時停止や再開、プロジェクトからの脱退は、BOINC クライアント上で指示できる。

複数のプロジェクトに同時に参加する場合も、BOINC クライアント上から参加手続きをすればよい。同時に稼動できるプロジェクトは CPUコア1つ(INTELCPUのHTが有効時は二分の一つ)につき一プロジェクトのみだが、一定時間ごとに BOINC クライアントが自動的にプロジェクトを切り替える。

BOINC クライアントの設定や各プロジェクトの設定、プロジェクト間の稼動比率の設定は、現状では BOINC クライアント上からは設定できない。プロジェクトのウェブサイトに設けられたユーザーページ上で設定変更し、後ほど変更情報を BOINC クライアントに取り込む方法が採られている。

プロジェクト側からみた特徴[編集]

サーバ運用の手法が確立しているため、新たにプロジェクトを起こす際に一からインフラ部分を整備する労力を要しない。また、関連プログラムはオープンソース化されている。

SETI@home で得られた分散コンピューティングの運用ノウハウを他の科学研究にも役立てることを主眼としているため、サーバ運用の省力化を念頭に置いて開発されている。通常、分散コンピューティングでは計算結果の信頼性を高めるため、同一の仕事を複数の参加者に配布して返却された計算結果を比較している。この、仕事の複製 → 配布 → 計算結果の回収 → 真偽判定 → 参加者への功績値の付与 → 不要ファイルの抹消、という一連の運用が自動化されている。

旧SETI@home では、終了直前の仕事を複製しておき不正に功績値を稼ぐチート行為が問題となったが、個々の仕事がどの参加者のどのコンピュータに配布されたかを把握している BOINC ではこのようなことはない。

BOINC クライアントでは、自身が走っているコンピュータの情報を細かく調べてプロジェクト側に申告している。これにより、特定のプラットフォームや CPU の計算能力、プロジェクトに提供するメモリやハードディスク容量の多寡によって、参加の可否や配布する仕事の軽重を選択できるようになっている。

設計と構造[編集]

BOINCは、プロジェクト主催者が運営するサーバーシステムと、ボランティアが所有するコンピュータ上で動作するクライアントソフトウェアで構成され、相互に通信して作業単位(ワークユニット; Work Unitと呼ぶ)を分配および処理し、結果を返却する仕組みになっている。

プロジェクトサーバシステム[編集]

プロジェクト主催者のサーバは、次のような構成をとる。

  • プロジェクト・バックエンドサーバ 参加クライアントに配布するプログラムや計算ユニットをデータサーバに供給する、また参加者から送られてきた計算結果を処理するサーバ
  • BOINCサーバ群
    • スケジューリングサーバ群 参加クライアントと通信を行う。
    • 計算ユニット、計算結果、参加者アカウントを管理する関係データベースサーバ
    • バックエンドサーバとBOINCサーバ群を連携するユーティリティ
    • プロジェクト参加者や開発者のためのWebインタフェース
    • データサーバ群 参加クライアントへのファイル配信と計算結果の収集を行う。これらの通信はHTTPを使って行う。

クライアントソフトウェア[編集]

SETI@homeプロジェクトに取り組んでいるBOINCマネージャ(v 7.6.22)
BOINCマネージャのアイコン

BOINCは本質的に、コンピュータで未使用のCPUGPUのサイクルを科学計算に利用できるソフトウェアであり、個人が自分のコンピュータを使わない分をBOINCが利用する。2008年末、BOINCの公式ウェブサイトでは、NVIDIAが科学計算にGPUを利用するCUDAと呼ばれるシステムを開発したと発表した。NVIDIAの支援により、現在、BOINCベースのいくつかのプロジェクト (SETI@homeMilkyWay@homeなど) では、CUDAを使用してNVIDIAのGPU上で動作するアプリケーションが含まれるようになった。2009年10月から、BOINCはATI/AMDファミリのGPUのサポートも追加した。これらのアプリケーションは、以前のCPUのみのバージョンよりも2倍から10倍速く動作する。7.xプレビュー版では、AMD Radeonグラフィックカードを搭載したMac OS XコンピュータのGPUサポート (OpenCL経由) が追加された。

ユーザインタフェース[編集]

BOINCは、リモートプロシージャコール (RPC)、コマンドライン、BOINCアカウントマネージャからリモートで制御できる。

BOINCマネージャには現在、アドバンストビュー簡易GUIという2つの「ビュー」がある。グリッドビューは冗長だったため、6.6.xクライアントでは削除された。

簡易GUIの外観(スキン)は、ユーザが独自のデザインを作成できるように、ユーザがカスタマイズすることができる。

モバイルアプリケーション[編集]

Android用のBOINCアプリも存在し、スマートフォン、タブレット、KindleなどのAndroid端末を所有している全ての人が、未使用のコンピューティングパワーを共有することができる。ユーザは、アプリの利用可能なプロジェクトリストから、支援したい研究プロジェクトを選択することができる。

デフォルトでは、デバイスがWiFiネットワークに接続され、充電されており、バッテリーの充電が少なくとも90%以上の場合にのみ、アプリケーションはコンピューティングを許可する[12]。これらの設定の一部は、ユーザのニーズに合わせて変更できる。ただし、すべてのBOINCプロジェクトが利用できるわけではなく[13]、一部のプロジェクトはすべてのバージョンのAndroid OSに対応していなかったり、作業が断続的であったりする。現在利用可能なプロジェクトと対応するプラットフォームは、BOINCプロジェクトのWebサイトに掲載されている[14]

アカウントマネージャ[編集]

BOINCアカウントマネージャは、複数のコンピュータ (CPU) とオペレーティングシステムにわたって、複数のBOINCプロジェクトアカウントを管理するアプリケーションである。アカウントマネージャーは、BOINCを初めて利用するユーザや、複数のコンピュータを複数のプロジェクトに参加させているユーザ向けに設計されている。アカウントマネージャーのコンセプトは、GridRepublicとBOINCが共同で考案・開発したものである。現在および過去のアカウントマネージャーは次の通りである:

  • BAM! (BOINC Account Manager) -  2006年5月30日に公開された最初の公開アカウントマネージャー
  • GridRepublic英語版 - アカウント管理に関しては、シンプルな状態を維持し、きちんとした状態を維持するという考えに従っている
  • Charity Engine英語版(チャリティーエンジン) - 非営利のアカウントマネージャーを雇い、懸賞の抽選や継続的なチャリティー募金活動を利用して、人々のグリッドへの参加意欲を高める
  • Dazzler (ダズラー) - オープンソースのアカウントマネージャー、制度的な経営資源を楽にする

クレジットシステム[編集]

BOINCクレジットシステムは、クレジットを付与する前に結果を検証することで、不正行為を避けるように設計されている。

  • クレジット管理システムは、ユーザが科学的にも統計的にも正確な結果を返していることを確認するのに役立つ。
  • オンライン分散コンピューティングは、ほとんどボランティアの努力によって成り立っている。このような理由から、プロジェクトは新規ユーザ、長期ユーザ、引退するユーザの複雑で変動性のある組み合わせに依存している。

歴史[編集]

  • 2000年 - SETI@homeの今後の計画として、SETI@home IIを計画中であることを表明。
  • 2002年8月 - BOINCを開発中であることを表明。
  • 2003年4月 - United Devices社(UD)から、BOINCのソースコードの公開差し止めを求めて訴訟を起こされる。開発主任のデビッド・アンダーソン博士がかつてUD社に勤めていたことを理由に、UD社の企業秘密を流用してUD社の脅威となるソフトウェアを開発していると主張。
  • 2003年7月 - UD社との和解が成立。完全なオープンソースでの配布を断念し、商用利用を不可とするライセンスにすることで合意。[15]
  • 2004年6月 - SETI@home/BOINCを一般公開。
  • 2004年6月 - Climateprediction.netがBOINCを採用。
  • 2004年6月 - Predictor@homeがBOINCを採用。
  • 2004年9月 - LHC@homeがBOINCを採用。
  • 2004年11月 - Einstein@HomeがBOINCを採用。
  • 2005年1月 - UD社との和解が期限切れを迎え、Lesser GPLのライセンスでの配布が可能となる。
  • 2005年6月 - Rosetta@homeがBOINCを採用。
  • 2005年6月 - SETI@homeのウェブサイトをSETI@home/BOINCのものに差し替え。半年の移行期間を設けてSETI@homeクラシックを運用終了することを宣言。
  • 2005年11月 - SETI@homeクラシックを1ヶ月後に運用終了すると表明。
  • 2005年12月 - SETI@homeクラシックが運用終了。
  • 2013年7月 - Android用BOINCクライアント公開[16][17]

プロジェクト一覧[編集]

現在アカウント作成・稼働可能なもの[編集]

オープンβのプロジェクトも含む。

天文学[編集]

気候学[編集]

地震学[編集]

数学[編集]

物理学[編集]

化学[編集]

構造生物学[編集]

分子生物学[編集]

疫学[編集]

認知科学[編集]

計算機科学[編集]

アニメーションレンダリング[編集]

パズル[編集]

テスト、その他[編集]

  • Gerasim@home
  • Pirates@Home
    • テストプロジェクト。もともとはEinstein@homeのスクリーンセーバ用画像を制作するプロジェクトだったが、現在は分散コンピューティングについて理解するための学習教材に転用されている。
  • VTU@home
    • テストプロジェクト。本格的なプロジェクトを立ち上げる前の運用習熟で、素因数分解の単純な総当り式による素数探索を行うダミーワークが配布されている。

オムニバス[編集]

参加者の募集を停止中のもの[編集]

クローズドβ、あるいは参加者数を限定して運用しているプロジェクト群。

運用にむけて準備中のもの[編集]

参加者登録は可能なものの、まだワークの配布が始まっていないプロジェクト。

活動を休止中のもの[編集]

長期に渡って運用停止していたり、運営側が休止を宣言したプロジェクト。

BOINCの技術をベースにした分散コンピューティングプロジェクト[編集]

World Community Grid[編集]

IBM社の支援の下、複数の医療系プロジェクトを展開している。既にいくつかのプロジェクトが完了、もしくはフェーズ2に移行している。World Community Gridの項も参照のこと。

United Devices社のシステムで運用されているプロジェクトであったが、UD社のクライアントのサポートは2008年6月で中止され[18]、一方これと平行して2005年11月からBOINCクライアントからも参加できるようになり、現在はBOINCクライアントのみのサポートとなった[19]。当初は脇役的な扱いでBOINCからの参加方法も解りづらかったが、grid.org の終了前後から主客が逆転し、ウェブサイトでの参加登録後に現れるクライアントダウンロードページでも BOINCクライアントが上位に表示されるなど、UDクライアントの方が脇へと追いやられているという変遷もあった。

WCGサイトからの参加手続きは通常とは若干異なるが、これは初心者に対する配慮からWCGプロジェクトに参加した状態でのインストールになっていることによる。そのため、BOINCでWCGに参加する場合は、WCGサイトからインストールするのが最も簡単で手間がかからない。またBOINCクライアントは最新版が使用されており、インストール後にWCG以外のプロジェクトを追加する場合も特に制限はなく、別途BOINCに参加した人との差異はないと言って良い。

2007年10月3日BOINCクライアントからの功績値は68.8%に達し、2008年6月26日には100%となり、UDクライアントは使命を終えた。

特徴としてはBOINCでの功績値(クレジット)とは別に、過去のUDクライアントによる功績値との整合性を取る必要性からポイント(1クレジット=7ポイント)による功績値集計を行っている。なおBOINC Stats等では、BOINCクライアントによる功績値のみが通常のクレジットで集計される。

グラフィック表示可能。(ただしグラフィックサイズは640×480px)

BOINCと違い、プロジェクト単位でのユーザー登録ではなく、World Community Gridで1つのアカウントを作成する仕組みである。1つのアカウントの元でWCG全てのプロジェクトに参加するか、個々のプロジェクトに参加するかの選択設定も行える。またWCGでは新規プロジェクトの始動と終了が比較的に頻繁に行われるが、新規プロジェクトを自動的に追加する設定がプロファイル設定に存在し、これにより自動で参加プロジェクトを増やせる。

  • FightAIDS@Home (2005年11月21日発足)- HIVの新しい候補薬の特定。
  • Human Proteome Folding - Phase 2(ヒトたんぱく質解析フェーズ 2 2006年6月23日発足) - 特定のヒト・タンパク質と病原タンパク質の分解構造を得ることとタンパク質構造予測の限界探索。生物学的なことと生物物理的なことへも対処。
  • Help Conquer Cancer(がん撲滅支援 2007年11月6日発足) - がん治療のためのたんぱく質解析。
  • Help Fight Childhood Cancer(ファイト!小児がんプロジェクト 2009年3月16日発足) - 神経芽腫に関連する3つの特定のタンパク質と、それを不活化させる為の薬剤候補との仮想結合実験。千葉県がんセンター及び千葉大学の研究者が主宰。
  • Help Cure Muscular Dystrophy - Phase 2(筋ジストロフィー治療支援フェーズ2 2009年5月13日発足) - 神経筋疾患を引き起こす遺伝子に対応するタンパク質の分子モデリング解析。
  • The Clean Energy Project - Phase (2010年6月30日発足) - 炭素ベースの光発電効率を高める新素材の探索。ハーバード大学の化学・生物化学部が主催。当初はLinux版のみで開始。
  • Computing for Clean Water:(2010年9月20日発足) - 新たなフィルター素材での効率的な分子の流れの様相探索。低価格、高効率の水浄化フィルター開発を目標とする。
  • Drug Search for Leishmaniasis (2011年9月7日発足)- リーシュマニア症の治療法に結びつく有望な合成物の探索。コロンビア共和国メデジン市アンティオキア大学の研究者が主催。

なお、最新のプロジェクト状況についてはWorld Community Gridを参照。

cell computing βirth[編集]

BOINCをベースに運用されている商用プロジェクト。2008年3月末をもってすべての活動を終了した。cell computing βirthの項も参照のこと。

BOINC標準クライアントからの参加はできないが、cell computing βirthのクライアントから各BOINCプロジェクトへの参加は可能。ただしクライアントがBOINCクライアント ver.4をベースとしているため、ver.5以降のクライアントを前提としたBOINCプロジェクトには参加できない。

  • CHRONOS
    • ヒトゲノム染色体間法則性解明プロジェクト
  • sekigahara(セキガハラ)
    • 関ヶ原の合戦映像製作プロジェクト

BBC Climate Change Experiment[編集]

ClimatePrediction.netのBBC協賛版。1920年から2080年までの160年間もの気候変動をシミュレートする。

ウェブサイトでは独自クライアントをダウンロードするよう誘導されるが、BOINC標準クライアントからも問題なく参加できる。

ワークの配布は2007年1月で打ち切られ、運用結果をもとにイギリス本国で特番が放映された。(ダイジェスト版は YouTube で閲覧できる。[20]既に参加者登録は終了しており、現在は解析中ワークの返却のみ受け付けている。

脚注[編集]

[脚注の使い方]
  1. ^ BOINC is now distributed under the Lesser GPL, BOINC, University of California, Berkeley, (2005-01-15), https://boinc.berkeley.edu/legal.html 2012年8月19日閲覧。 
  2. ^ Rosetta@home”. YouTube. Rosetta@home (2007年1月7日). 2015年8月26日閲覧。
  3. ^ Scoles, Sarah. “A Brief History of SETI@Home” (英語). The Atlantic. https://www.theatlantic.com/science/archive/2017/05/aliens-on-your-packard-bell/527445/ 2017年6月1日閲覧。 
  4. ^ BOINC”. Boinc.berkeley.edu. 2018年6月9日閲覧。
  5. ^ Research and Infrastructure Development for Public-Resource Scientific Computing, The National Science Foundation
  6. ^ SCI: NMI Development for Public-Resource Computing and Storage, The National Science Foundation
  7. ^ SDCI NMI Improvement: Middleware for Volunteer Computing, The National Science Foundation
  8. ^ Largest computing grid”. Guinness World Records. 2016年1月4日閲覧。
  9. ^ Put your Android device to work on World Community Grid!” (2013年7月22日). 2020年7月23日閲覧。
  10. ^ Manual sites of FreeBSD system” (2015年1月2日). 2020年7月23日閲覧。
  11. ^ BOINC クライアントのバージョン4までは、まずプロジェクトのウェブサイト上で参加登録を行い、メールで送られてきたアカウントキーを BOINC クライアントに入力する必要があった。一部プラットフォームではバージョン5 以降の BOINC クライアントが提供されておらず、ウェブサイト上での参加登録ページは現在も残されている。
  12. ^ Android FAQ”. BOINC. UC Berkeley (2018年4月12日). 2018年6月29日閲覧。
  13. ^ Projects”. BOINC. 2020年7月23日閲覧。
  14. ^ Projects”. BOINC. 2020年7月23日閲覧。
  15. ^ [1]
  16. ^ BOINCプロジェクトがAndroidに対応 - スマホで新星の発見や病気研究を支援” (日本語). マイナビニュース (2013年7月25日). 2019年2月26日閲覧。
  17. ^ SETI@home開発者の新たな挑戦:今度はAndroid端末で|WIRED.jp” (日本語). WIRED.jp. 2019年2月26日閲覧。
  18. ^ Community Advisor (2008年6月4日). “2008年6月26日をもってUDクライアントからBOINCクライアントに全て移行完了” (英語). World Community Grid. 2009年1月11日閲覧。
  19. ^ World Community GridのBOINCクライアントの使用開始2005年11月” (英語). World Community Grid. 2009年1月11日閲覧。
  20. ^ climateprediction.net - Results Programme Documentary - YouTube

関連項目[編集]

外部リンク[編集]

チュートリアル(使い方の指導)[編集]

外部統計サイト[編集]

  • BOINCstats
    • 各 BOINC プロジェクトが XML データで提供する貢献値データを定期収集し、個人別・チーム別・国別でのランキング、貢献値獲得の履歴やランキング変動履歴の提供を行う統計サイトのひとつ。プロジェクト横断での功績値合算にも対応しており完成度が高い。
  • All Project Stats
  • BOINC Statistics for the WORLD