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

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

BOINCのコードは、Microsoft Windows、macOS、Android、Linux、FreeBSDを含む様々なオペレーティングシステム上で動作する。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 クライアントを通じて行う BOINC クライアントのバージョン4までは、まずプロジェクトのウェブサイト上で参加登録を行い、メールで送られてきたアカウントキーを BOINC クライアントに入力する必要があった。一部プラットフォームではバージョン5 以降の BOINC クライアントが提供されておらず、ウェブサイト上での参加登録ページは現在も残されている。。参加登録が終わるとただちにそのプロジェクトのアプリケーションと最初の仕事が自動的にダウンロードされ、運用が始まる仕組みである。アプリケーションの新しいバージョンがリリースされた際も、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%以上の場合にのみ、アプリケーションはコンピューティングを許可する。これらの設定の一部は、ユーザのニーズに合わせて変更できる。ただし、すべてのBOINCプロジェクトが利用できるわけではなく、一部のプロジェクトはすべてのバージョンのAndroid OSに対応していなかったり、作業が断続的であったりする。現在利用可能なプロジェクトと対応するプラットフォームは、BOINCプロジェクトのWebサイトに掲載されている。

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

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

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

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

歴史 2000年 - SETI@homeの今後の計画として、SETI@home IIを計画中であることを表明。 2002年8月 - BOINCを開発中であることを表明。 2003年 4月 - United Devices社(UD)から、BOINCのソースコードの公開差し止めを求めて訴訟を起こされる。開発主任のデビッド・アンダーソン博士がかつてUD社に勤めていたことを理由に、UD社の企業秘密を流用してUD社の脅威となるソフトウェアを開発していると主張。 7月 - UD社との和解が成立。完全なオープンソースでの配布を断念し、商用利用を不可とするライセンスにすることで合意。 2004年 6月 SETI@home/BOINCを一般公開。 Climateprediction.netがBOINCを採用。 Predictor@homeがBOINCを採用。 9月 - LHC@homeがBOINCを採用。 11月 - Einstein@HomeがBOINCを採用。 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クライアント公開。 2020年3月31日 - SETI@home/BOINC運用終了。

プロジェクト一覧 現在アカウント作成・稼働可能なもの オープンβのプロジェクトも含む。 天文学 Asteroids@home 太陽系内小惑星の物理的特性を導出する。

Cosmology@Home 宇宙マイクロ波背景放射の非等方性についての研究。観測結果により良く適合する宇宙モデルを構築する。 Einstein@home 重力波の検出を試みる。 MilkyWay@home 天の川銀河の進化モデルを構築。スローン・デジタル・スカイサーベイによってもたらされたデータを基とし、天の川銀河の精密な三次元モデルを構築する。また、銀河同士の衝突により天の川銀河が作られた過程や渦巻構造が作られた方法についての知見を得る。

Universe@Home 超高輝度X線源・重力波・超新星Iaなどを研究する。

気候学

長期的気候予測技術の改善・気候変動調査 CPDN Beta Climateprediction.net 次期バージョンのβテスト。

地震学 Quake-Catcher Network Seismic Monitoring 簡易地震計ネットワークを構築する。

数学 Collatz Conjecture 数論の未解決問題の一つ、コラッツの問題を解決する。 Goldbach's Conjecture ゴールドバッハの予想で2*10^1346以下のものを解く。 PrimeGrid 素数探索全般。 Rectilinear Crossing Number 幾何学的な命題のひとつ、線分の交わる個数の最も少なくなるような頂点の配置を求める。

11次元までの一般化された2進数系 (generalized binary number system) の探索。 WEP-M+2 メルセンヌ数+2の形式の素数を探索。

物理学 AQUA@home 超伝導断熱量子コンピュータの性能予測。 LHC@home 粒子加速器の改善。欧州原子核研究機構 (CERN) の大型ハドロン衝突型加速器 (LHC) の稼動シミュレーションを行う。 μFluids@Home 微小重力状態での流体工学研究。

化学 Hydrogen@home 水素生産の研究。

古典力学全般。現在は分子動力学法に基づく水分子の運動モデルの検証が主。 Magnetism@home ナノスケールの磁気現象を研究。

モンテカルロ法を用いて量子化学方程式を解く。

分子磁石およびナノスケールの磁気現象を研究。

構造生物学 Docking@Home タンパク質のリガンドを探索、および探索方法そのものの新規開拓。 GPUGRID CUDA対応のGPUやLinuxを導入したプレイステーション3を用いて分子動力学に基づくシミュレーションを行う。

タンパク質構造予測。

タンパク質構造予測。 Rosetta@home タンパク質構造予測。 RALPH@home Rosetta@home次期バージョンのαテスト。 SIMAP タンパク質の相似性データベースの構築。

タンパク質構造予測、ほか分子生物学全般。

分子生物学 Superlink@Technion 糖尿病、高血圧、癌、統合失調症などの原因となる遺伝子を発見する。

疫学 Malaria Control Project 臨床疫学の確率論的なモデリング。

認知科学

MindModeling@homeのβテスト。ACT-R上での認知モデルの構築とその評価を行う。

計算機科学 DistrRTgen ハッシュ関数の逆引きを可能とする、巨大なレインボーテーブルの作成。 Enigma@home M4 ProjectにBOINCクライアントから参加できるように仲介するラッピングプロジェクト。ナチス・ドイツの暗号機「エニグマ」で作成された未解読の暗号文を解読する。 FreeHAL@home 人工無能の研究。構文解析やタグ付けを行っている。 Genetic Life 進化的アルゴリズムの研究。Tierraを分散コンピューティング上で動作させる。 SHA-1 Collision Search Graz SHA-1ハッシュ関数の脆弱性を見つけ出す。

アニメーションレンダリング :en:Big and Ugly Rendering Project(BURP) 3Dアニメーションレンダリングの公共システム開発。

パズル NQueens Project チェスの盤面を使ったパズル「Nクイーン問題」の解を求める。 Sudoku ペンシルパズルのナンバープレース(数独)における数学的命題、問題として成立する最も少ない初期配置を求める。

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

オムニバス World Community Grid #World Community Gridを参照。 yoyo@home BOINCを採用していない分散コンピューティングプロジェクトに対し、BOINC クライアントで参加できるよう仲介するラッピングプロジェクト。以下のプロジェクトに対応している。 distributed.net の OGR (最短ゴロム定規) 探索プロジェクト 最短ゴロム定規を求める。 ECM 素因数分解のに関する研究。

進化の研究。マラーのラチェットの定量化を試みる。 Muon1 Distributed Particle Accelerator Design ミュー粒子の研究。粒子加速器のシミュレーションを行う。

複数の分散コンピューティングの受け皿となるプロジェクト。 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 変則チェスの一種、チェス960での定跡を探る。 Climateprediction.net Beta Climateprediction.net次期バージョンのβテスト。オープンβは別サイトに移動した。 IMP@home 既に終了したプロジェクトIMPFarmの後続。 BRaTS@home 重力レンズ風の視覚効果を用いたレイトレーシングを作成。 Superlink@clusters Superlink@Technionのαテスト。一般の参加はできない。 MindModeling@home 認知科学の研究。ACT-R上での認知モデルの構築とその評価を行う。現在はβテスト専用のプロジェクトでのみ運用。 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

活動を休止中のもの 長期に渡って運用停止していたり、運営側が休止を宣言したプロジェクト。 ABC@home ABC予想に関連する数の組を探索する。2011年にを満たす組、15年にはまでの約2380万個の組を求め、プロジェクトは終了した。 APS@home 生態系から発するガスなどの流動体が、計測地点に到達するまでにどのような軌跡を辿ったかを求める。

将来の大規模な人工知能システム構築の参考にするため、巨大なニューラルネットワークを構築する。 BBC Climate Change Experiment #BBC Climate Change Experiment参照。 BCL@Home タンパク質構造予測。新薬候補の探索を主眼においている。 Cels@home 細胞接着のメカニズムを、それを原因とした疾患(癌細胞の転移やウイルス感染、HIV感染など)を防止する観点から研究する。 climateprediction.net Seasonal Attribution Project climateprediction.net の1プロジェクト。2000年秋に英国で発生した洪水のシミュレーションを試みる。 Cunning Plan DepSpid ウェブクローラーを分散コンピューティングで構築。 Distributed Rainbow Table Generator ハッシュ関数の逆引きを可能とする、巨大なレインボーテーブルの作成。 EternityII.net 懸賞金の掛けられたパズルの早解きを行う。

MD5ハッシュ関数の脆弱性を見つけ出す。 NanoHive@home ナノテクノロジーの研究。 Orbit@home 地球近傍小惑星の軌道をモニタリング。 pPot Tables ポーカー (テキサス・ホールデム) に強いAIを作成するためのルックアップテーブルを構築する。

タンパク質構造予測。 Project Neuron 分散コンピューティングプロジェクトの効率性評価手法の確立。 Ramsey@home ラムゼー数の探索。 RenderFarm@home アニメーションのレンダリングを行うプロジェクト。 Reversi リバーシの最善手を探索し、完全に解くことを目指す。 Riesel Sieve 509203よりも小さいリーゼル数が存在するかを探索。 RND@home 無線基地局の効率よい配置・運用を行うためのシミュレーション。 SciLINC 植物学に関する膨大な文献をデータベース化する。 SETI@home 地球外知的生命体探査。天球上の一点から届く狭帯域信号を検出する。 SETI@home beta SETI@home 次期バージョンのベータ版。

TANPAKU タンパク質の構造と機能をを用いて研究。 TSP 巡回セールスマン問題の研究。遺伝的アルゴリズムのほか、さまざまな検索アルゴリズムをテストする。 UCT : malariacontrol.net malariacontrol.netのβテスト。 UH Second Computing 複数の分散コンピューティングの受け皿となるプロジェクト。 Virtual Prairie 広大なプレーリー全体をシミュレートし、繰り返される放牧や伐採といった擾乱に対して生態学的にどれほどの復元力があるかの知見を得る。 XtremLab 分散コンピューティングのパフォーマンス向上を目的とした BOINC 自体の研究・分析。 Zebra RSA Bruteforce スマートカードで使われるRSA暗号をブルートフォース(総当たり)によって無力化。 Zivis Superordenador Ciudadano

BOINCの技術をベースにした分散コンピューティングプロジェクト World Community Grid IBM社の支援の下、複数の医療系プロジェクトを展開している。既にいくつかのプロジェクトが完了、もしくはフェーズ2に移行している。

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