BOINC(バークレー・オープン・インフラストラクチャ・フォー・ネットワーク・コンピューティング)
BOINCは、ボランティア・コンピューティングおよび
グリッド・コンピューティングを実現するためのオープンソースの
ミドルウェアシステムです。
カリフォルニア大学バークレー校の宇宙科学研究所(SSL)で、もともと
SETI@homeプロジェクトを支援するために開発が始まりましたが、現在では数学、言語学、医学、気候学、宇宙物理学など、非常に幅広い分野の科学研究プロジェクトで利用されています。このシステムの主な目的は、世界中の個人のパーソナル
コンピュータに存在する膨大な未利用処理能力を結集し、研究活動に役立てることにあります。
BOINCは、その規模において世界的に知られており、
ギネス世界記録によって「世界最大の計算グリッド」として認定されています。多数の活動的な参加者と
コンピュータが協力し、スーパー
コンピュータに匹敵するか、あるいはそれを凌駕するほどの合計処理能力を生み出しています。この開発および運用には、全米科学財団(NSF)からの資金提供も受けています。
特徴
参加者の視点
BOINCに参加するには、「BOINCクライアント」と呼ばれる
ソフトウェアを自身の
コンピュータにインストールします。このクライアントは、研究プロジェクト固有の計算を行う「アプリケーション」と、プロジェクト
サーバーとの通信やシステム管理を行う共通部分である「コア・クライアント」、そして操作を容易にするための「GUI」から構成されます。参加者は、BOINCクライアントを通じて支援したいプロジェクトに登録し、自動的に計算タスクとアプリケーションがダウンロードされ、処理が開始されます。複数のプロジェクトに同時に参加することも可能で、クライアントが自動的にタスクを切り替えながら計算を行います。計算の進行状況はグラフィカルなスクリーンセーバーとして表示されることもあります。なお、プロジェクトの詳細な設定変更は、原則として各プロジェクトのウェブサイト上のユーザーページで行い、それがクライアントに反映される仕組みとなっています。
プロジェクト運営者の視点
BOINCは、
分散コンピューティングプロジェクトの運用に必要なインフラストラクチャを提供するため、研究者は計算基盤を一から構築する労力を省き、研究そのものに集中できます。
SETI@homeでの運用経験から得られたノウハウが活かされており、運用の省力化が図られています。特に、計算タスクの複製、配布、結果の回収、検証、参加者への貢献度(クレジット)付与、不要ファイルの削除といった一連のプロセスが自動化されています。これにより、計算結果の信頼性を確保しつつ、効率的なプロジェクト運営が可能となっています。また、旧来のシステムで問題となった不正行為(
チート)に対しても、タスクの配布先を詳細に把握することで対策が強化されています。クライアントから申告される
コンピュータの性能情報に基づき、プロジェクト側は最適なタスクを配布することができます。
仕組みと技術
BOINCシステムは、プロジェクト主催者が運営する
サーバーシステムと、ボランティア参加者の
コンピュータ上で動作するクライアント
ソフトウェアで構成されます。両者は連携し、計算が必要な単位である「ワークユニット」をクライアントに分配し、処理された結果を
サーバーに返却します。
プロジェクト
サーバーシステムは、配布プログラムや計算タスクを管理・供給し、クライアントからの結果を処理する「プロジェクト・バックエンド
サーバー」、クライアントとの通信やタスク・結果・アカウントを管理する「BOINC
サーバー群」、参加者や開発者向けの「Webインタフェース」、ファイル配信や結果収集を行う「データ
サーバー群」などで構成されます。
クライアント
ソフトウェアは、
コンピュータの未使用な
CPUサイクルだけでなく、近年ではGPU(
Graphics Processing Unit)の強力な計算能力も活用できるようになっています。
NVIDIAの
CUDAやAMD/ATIの
OpenCLといった技術に対応したプロジェクトでは、
CPUのみの場合と比較して格段に速い計算が可能になることがあります。
利用方法と管理
BOINCクライアントは、GUIを備えた「BOINCマネージャー」を通じて操作するのが一般的ですが、コマンドラインやリモートプロシージャコール(RPC)による制御も可能です。GUIには、シンプル表示と詳細表示が用意されており、ユーザーの好みに合わせてスキンのカスタマイズもできます。PCだけでなく、Androidスマートフォンやタブレット向けのBOINCアプリも提供されており、モバイル端末の未使用リソースも研究に役立てることが可能です。モバイル版では通常、Wi-Fi接続中で充電されており、バッテリー残量が多い場合にのみ計算が実行されるよう設定されています。
複数の
コンピュータで多数のプロジェクトに参加する場合、その管理を効率化するための「アカウントマネージャー」という仕組みも存在します。これは、複数のBOINCプロジェクトアカウントを一元的に管理できるアプリケーションで、BAM!やGridRepublicなどがその例です。
BOINCでは、参加者の貢献度を示すために「クレジットシステム」が導入されています。これは、単に計算結果を受け取っただけでなく、その結果を検証することで不正なクレジット取得を防ぐよう設計されています。クレジットは、ボランティアとして科学研究に貢献した証となります。
歴史と貢献する研究分野
BOINCは、
SETI@home IIの計画の中から生まれ、2002年に開発が公表されました。開発初期には企業の訴訟問題に直面しましたが、和解を経てオープンソース
ライセンス(後にLGPL)での配布が可能となりました。2004年からは
SETI@home以外のプロジェクトもBOINCを採用し始め、Climateprediction.net、
LHC@home、Einstein@Homeなどが続々と参加しました。
SETI@homeクラシックの運用終了を経て、BOINCが
SETI@homeの新たな基盤となり、その後Android版クライアントのリリースなどプラットフォームの拡大も進みました。
SETI@home/BOINC自体は2020年に運用を終了しましたが、BOINCを基盤とする他の多数のプロジェクトは現在も活発に活動しています。
BOINCを利用するプロジェクトは非常に多様で、天文学分野では宇宙構造や重力波の探査、気候学では長期的な
気候変動予測、地震学では地震観測ネットワークの構築、数学では未解決問題の解析、物理学では粒子加速器のシミュレーションや量子
コンピュータの研究、化学では
分子シミュレーション、構造生物学・
分子生物学ではタンパク質構造予測や病気の原因
遺伝子探索、疫学では感染症のモデリングなどが行われています。また、計算機科学やアニメーションレンダリング、パズル解析といったプロジェクトも存在します。
特筆すべきプロジェクトとしては、IBMが支援し、医療・健康分野の研究に特化した「
World Community Grid」があります。これは、かつて独自のクライアントで運用されていましたが、現在はBOINCクライアントからのみ参加可能となり、BOINCプラットフォーム上での代表的な成功例の一つとなっています。がん、HIV、筋ジストロフィーなどの研究に貢献しています。過去には商用の「cell computing βirth」などもBOINCを基盤として運用されていました。
まとめ
BOINCは、世界中のボランティアの
コンピュータ資源を結集することで、膨大な計算能力を必要とする様々な科学研究を可能にする画期的なシステムです。オープンソースであるため誰もが利用・開発に参加でき、その柔軟性と拡張性によって多分野の研究に貢献しています。ボランティア一人ひとりの小さな貢献が集まることで、人類の知見拡大に大きく寄与していると言えるでしょう。