Berkeley Open Infrastructure for Network Computing
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/10/30 03:57 UTC 版)
![]() | |
![]() macOS上で動作するBOINC Manager 7.6.22 | |
開発元 | カリフォルニア大学バークレー校 |
---|---|
初版 | 2002年4月10日 |
最新版 | |
最新評価版 | |
リポジトリ | |
プログラミング 言語 |
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 Open Infrastructure for Network Computing(バークレー・オープン・インフラストラクチャ・フォー・ネットワーク・コンピューティング)、略称 BOINC(ボインク、発音 [bɔɪŋk][2])は、ボランティア・コンピューティングとグリッド・コンピューティングのためのオープンソースのミドルウェア・システムである。もともとはSETI@homeプロジェクト(2020年3月31日終了)をサポートするために開発されたが、数学、言語学、医学、分子生物学、気候学、環境科学、宇宙物理学などの多様な分野で、他の分散アプリケーションのためのプラットフォームとして一般化された[3]。BOINCは、研究者が世界中の複数のパーソナルコンピュータの膨大な処理資源を利用できるようにすることを目的としている。
BOINCの開発は、カリフォルニア大学バークレー校の宇宙科学研究所(en:Space Sciences Laboratory, SSL)に拠点を置き、SETI@homeのリーダーでもあるデビッド・P・アンダーソン(David P. Anderson)が率いるチームから始まった[4]。高性能分散コンピューティング・プラットフォームとして、BOINCは、2020年3月17日時点で、世界中の約137,805人のアクティブな参加者と791,443台のアクティブなコンピュータ (ホスト) を集め、平均41.548ペタフロップスで処理する[5] (スーパーコンピュータTOP500リスト上の個々のスーパーコンピュータと比較した場合、世界で5番目に大きな処理能力となる)。全米科学財団 (NSF) は、SCI/0221529[6]、SCI/0438443[7]、SCI/0721124[8]の各賞を通じてBOINCに資金を提供している。ギネス世界記録では、BOINCは世界最大の計算グリッドとしてランク付けしている[9]。
BOINCのコードは、Microsoft Windows、macOS、Android[10]、Linux、FreeBSD[11]を含む様々なオペレーティングシステム上で動作する。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 クライアントを通じて行う [12]。参加登録が終わるとただちにそのプロジェクトのアプリケーションと最初の仕事が自動的にダウンロードされ、運用が始まる仕組みである。アプリケーションの新しいバージョンがリリースされた際も、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を使って行う。
クライアントソフトウェア


BOINCは本質的に、コンピュータで未使用のCPUやGPUのサイクルを科学計算に利用できるソフトウェアであり、個人が自分のコンピュータを使わない分をBOINCが利用する。2008年末、BOINCの公式ウェブサイトでは、NVIDIAが科学計算にGPUを利用するCUDAと呼ばれるシステムを開発したと発表した。NVIDIAの支援により、現在、BOINCベースのいくつかのプロジェクト (SETI@home、MilkyWay@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%以上の場合にのみ、アプリケーションはコンピューティングを許可する[13]。これらの設定の一部は、ユーザのニーズに合わせて変更できる。ただし、すべてのBOINCプロジェクトが利用できるわけではなく[14]、一部のプロジェクトはすべてのバージョンの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社の脅威となるソフトウェアを開発していると主張。
- 7月 - UD社との和解が成立。完全なオープンソースでの配布を断念し、商用利用を不可とするライセンスにすることで合意[15]。
- 2004年
- 6月
- SETI@home/BOINCを一般公開。
- Climateprediction.netがBOINCを採用。
- Predictor@homeがBOINCを採用。
- 9月 - LHC@homeがBOINCを採用。
- 11月 - Einstein@HomeがBOINCを採用。
- 6月
- 2005年
- 1月 - UD社との和解が期限切れを迎え、Lesser GPLのライセンスでの配布が可能となる。
- 6月
- Rosetta@homeがBOINCを採用。
- SETI@homeのウェブサイトをSETI@home/BOINCのものに差し替え。半年の移行期間を設けてSETI@homeクラシックを運用終了することを宣言。
- 11月 - SETI@homeクラシックを1ヶ月後に運用終了すると表明。
- 12月 - SETI@homeクラシックが運用終了。
- 2013年7月 - Android用BOINCクライアント公開[16][17]。
- 2020年3月31日 - SETI@home/BOINC運用終了。
プロジェクト一覧
現在アカウント作成・稼働可能なもの
オープンβのプロジェクトも含む。
天文学
- Asteroids@home
- 太陽系内小惑星の物理的特性を導出する。
- Cosmology@home
- 宇宙マイクロ波背景放射の非等方性についての研究。観測結果により良く適合する宇宙モデルを構築する。
- Einstein@home
- 重力波の検出を試みる。
- MilkyWay@home
- 天の川銀河の進化モデルを構築。スローン・デジタル・スカイサーベイ[1]によってもたらされたデータを基とし、天の川銀河の精密な三次元モデルを構築する。また、銀河同士の衝突により天の川銀河が作られた過程や渦巻構造が作られた方法についての知見を得る。
- Universe@Home
- 超高輝度X線源・重力波・超新星Iaなどを研究する。
気候学
- ClimatePrediction.net
- 長期的気候予測技術の改善・気候変動調査
- CPDN Beta
- Climateprediction.net 次期バージョンのβテスト。
地震学
- Quake-Catcher Network Seismic Monitoring
- 簡易地震計ネットワークを構築する。
数学
- Collatz Conjecture
- Goldbach's Conjecture
- ゴールドバッハの予想で2*10^1346以下のものを解く。
- PrimeGrid
- 素数探索全般。
- Rectilinear Crossing Number
- 幾何学的な命題のひとつ、線分の交わる個数の最も少なくなるような頂点の配置を求める。
- SZTAKI Desktop Grid
- 11次元までの一般化された2進数系 (generalized binary number system) の探索。
- WEP-M+2
- メルセンヌ数+2の形式の素数を探索。
物理学
- AQUA@home
- 超伝導断熱量子コンピュータの性能予測。
- LHC@home
- 粒子加速器の改善。欧州原子核研究機構 (CERN) の大型ハドロン衝突型加速器 (LHC) の稼動シミュレーションを行う。
- μFluids@Home
化学
- Hydrogen@home
- 水素生産の研究。
- Leiden Classical
- Magnetism@home
- ナノスケールの磁気現象を研究。
- QMC@home
- Spinhenge@home
- 分子磁石およびナノスケールの磁気現象を研究。
構造生物学
- Docking@Home
- タンパク質のリガンドを探索、および探索方法そのものの新規開拓。
- GPUGRID
- CUDA対応のGPUやLinuxを導入したプレイステーション3を用いて分子動力学に基づくシミュレーションを行う。
- POEM@home
- proteins@home
- タンパク質構造予測。
- Rosetta@home
- タンパク質構造予測。
- RALPH@home
- Rosetta@home次期バージョンのαテスト。
- SIMAP
- タンパク質の相似性データベースの構築。
- The Lattice Project
- タンパク質構造予測、ほか分子生物学全般。
分子生物学
疫学
- Malaria Control Project
- 臨床疫学の確率論的なモデリング。
認知科学
- MindModeling@home
- MindModeling@homeのβテスト。ACT-R上での認知モデルの構築とその評価を行う。
計算機科学
- DistrRTgen
- Enigma@home
- M4 ProjectにBOINCクライアントから参加できるように仲介するラッピングプロジェクト。ナチス・ドイツの暗号機「エニグマ」で作成された未解読の暗号文を解読する。
- FreeHAL@home
- 人工無能の研究。構文解析やタグ付けを行っている。
- Genetic Life
- SHA-1 Collision Search Graz
アニメーションレンダリング
- en:Big and Ugly Rendering Project(BURP)
- 3Dアニメーションレンダリングの公共システム開発。
パズル
- NQueens Project
- チェスの盤面を使ったパズル「Nクイーン問題」の解を求める。
- Sudoku
- ペンシルパズルのナンバープレース(数独)における数学的命題、問題として成立する最も少ない初期配置を求める。
テスト、その他
- Gerasim@home
- Pirates@Home
- テストプロジェクト。もともとはEinstein@homeのスクリーンセーバ用画像を制作するプロジェクトだったが、現在は分散コンピューティングについて理解するための学習教材に転用されている。
- VTU@home
- テストプロジェクト。本格的なプロジェクトを立ち上げる前の運用習熟で、素因数分解の単純な総当り式による素数探索を行うダミーワークが配布されている。
オムニバス
- World Community Grid
- yoyo@home
- Ibercivis
- 複数の分散コンピューティングの受け皿となるプロジェクト。
- adsorcion
- docking
- fusion
- nanoluz
- nanotest
- neurosim
- materiales (16、32、64、128、24、48)
- AlmereGrid Boinc Grid
- 複数の分散コンピューティングの受け皿となるプロジェクト。世界最初の市営分散コンピューティングプロジェクトでもある。運営元はオランダ・フレヴォラント州にある町アルメレである。
- AlmereGrid TestGrid
- AlmereGridのαテスト
- Statistical analysis of twins - test version
参加者の募集を停止中のもの
クローズドβ、あるいは参加者数を限定して運用しているプロジェクト群。
- Chess960@home
- Climateprediction.net Beta
- Climateprediction.net次期バージョンのβテスト。オープンβは別サイトに移動した。
- IMP@home
- 既に終了したプロジェクトIMPFarmの後続。
- BRaTS@home
- Superlink@clusters
- Superlink@Technionのαテスト。一般の参加はできない。
- MindModeling@home
- BOINC Alpha
- BOINC自体のαテスト。一般の参加はできない。
- DockTest@Home
- Docking@Homeのテスト。
運用にむけて準備中のもの
参加者登録は可能なものの、まだワークの配布が始まっていないプロジェクト。
- NCSSM Grid Computing Project
- NNSIMU Project
- Satisfaction@home
- DECS
- MapTheGap Project
- CancerGrid
- Bioinfo@Home
- Prob
- EON
- EAPS@HOME
- UNCW's Distributed Data Analysis System
- Volunteer Computing Platform
活動を休止中のもの
長期に渡って運用停止していたり、運営側が休止を宣言したプロジェクト。
- BOINCstats
- 各 BOINC プロジェクトが XML データで提供する貢献値データを定期収集し、個人別・チーム別・国別でのランキング、貢献値獲得の履歴やランキング変動履歴の提供を行う統計サイトのひとつ。プロジェクト横断での功績値合算にも対応しており完成度が高い。
- All Project Stats