ボランティア・コンピューティング (Volunteer computing) とは、分散コンピューティングの一種で、人々が自分のコンピュータの未使用のリソースを研究向けのプロジェクトに寄付するものである。

1990年代半ばにまで遡るこの手法は、研究者が最小限のコストでかなりの処理能力を利用できるようになる可能性がある。典型的には、ボランティアのコンピュータ上で実行されているプログラムが、定期的に研究アプリケーションに接続し、仕事をリクエスト、その結果を報告する。ミドルウェアシステムは通常、仲介者としてその任を務める。

 歴史 
最初のボランティア・コンピューティング・プロジェクトは、1996年1月に開始された Great Internet Mersenne Prime Search (GIMPS) であった。1997年、distributed.netがそれに続いた。1997年と1998年には、いくつかの学術研究プロジェクトがボランティア・コンピューティング用Javaベースのシステムを開発した。たとえば、Bayanihan、Popcorn、Superweb、Charlotte である。

ボランティア・コンピューティング(volunteer computing)という言葉は、Bayanihanの開発者であるルイス・F・G・サルメンタ(Luis F. G. Sarmenta)によって作られた。また、ハーバード・ビジネス・レビュー で報告されているような社会的責任へのグローバルな取り組みや、あるいは企業の社会的責任、あるいはResponsible ITフォーラム での活用などでアピールされている。

1999年には、SETI@homeとFolding@homeプロジェクトが開始された。これらのプロジェクトはメディアに大きく取り上げられ、それぞれ数十万人のボランティアが集まった。

1998年から2002年の間に、ボランティア・コンピューティングを含むビジネスモデルでいくつかの企業が設立された。例としては、Popular Power, Porivo, Entropia, United Devicesが挙げられる。

2002年には、カリフォルニア大学バークレー宇宙科学研究所の「Berkeley Open Infrastructure for Network Computing」(BOINC) プロジェクトが、国立科学財団の資金援助を受けて設立された。BOINCは、クライアント、クライアントGUI、アプリケーションランタイムシステム、サーバーソフトウェア、プロジェクトのウェブサイトを実装するソフトウェアなど、ボランティア・コンピューティングのための完全なミドルウェアシステムを提供している。BOINCをベースにした最初のプロジェクトは、スクリップス研究所のPredictor@homeで、2004年に運用を開始した。その後すぐにSETI@homeとClimatePrediction.netがBOINCを使い始めた。その後数年の間に、Rosetta@home, Einstein@home, AQUA@home など、BOINCをベースにした新しいプロジェクトが次々と誕生した。2007年、IBM World Community Grid は United Devices プラットフォームからBOINCに切り替わった。

2015年には、スマートフォン向けのボランティア・コンピューティングアプリケーション、DreamLabがリリースされた。

 ミドルウェア 
初期のボランティア・コンピューティングプロジェクトのクライアントソフトウェアは、科学計算と分散コンピューティング・インフラストラクチャを組み合わせた単一のプログラムで構成されていた。このモノリシック・アーキテクチャには柔軟性がなかった。たとえば、新しいアプリケーションバージョンを展開するのは困難であった。

最近では、ボランティア・コンピューティングは、科学的計算から独立した分散コンピューティング・インフラストラクチャを提供するミドルウェア・システムへと移行している。例としては、次のようなものがある。

 Berkeley Open Infrastructure for Network Computing (BOINC) は、最も広く使われているミドルウェア・システムである。BOINCは、Windows、Mac OS X、Linux、Android、その他のUnix用のクライアントソフトウェアを提供している。
 XtremWeb は主に研究ツールとして使用されている。パリ南大学を拠点とするグループによって開発された。
 XgridはAppleによって開発された。クライアントとサーバのコンポーネントはMac OS X上でのみ動作する。
 Grid MPはUnited Devicesが開発した商用ミドルウェアプラットフォームで、grid.org、World Community Grid、Cell Computing、Hikari Gridなどのボランティア・コンピューティングプロジェクトで使用されていた。

これらのシステムのほとんどは基本的な構造は同じで、ボランティアのコンピュータ上でクライアントプログラムが動作する。このプログラムは、インターネットを介してプロジェクトが運営するサーバーに定期的に接続し、仕事をリクエストして、完了した仕事の結果を報告する。多くのボランティアのコンピュータがファイアウォールの背後にあり、着信接続を許可しないために、この「プル」モデル (pull model) が必要である。システムは、各ユーザーの「クレジット」(credit) を追跡し、そのユーザーのコンピュータがプロジェクトのためにどれだけの仕事をしたかを数値的に測定する。

ボランティア・コンピューティング・システムは、ボランティア・コンピュータに関わるいくつかの問題に対処する必要がある。参加するコンピュータの多様性、解約 (個々のコンピュータが時間の経過とともにネットワークに参加したり離脱する傾向)、散発的な利用可能性、そして通常の使用中にパフォーマンスを妨害しない必要性である。

さらに、ボランティア・コンピューティングシステムは、正しさに関する問題に対処しなければならない。

 ボランティアは説明責任がなく、基本的に匿名である。
 ボランティアのコンピュータ (特にオーバークロックされたもの) の中には、時々誤動作を起こして誤った結果を返すものがある。
 ボランティアの中には、意図的に誤った結果を返したり、結果に対して過剰なクレジットを要求する人もいる。

このような問題に対する一般的なアプローチとして、各ジョブが少なくとも2台のコンピュータで実行されるレプリケート・コンピューティングがある。仕事の結果 (および対応するクレジット) は、それらが十分に一致した場合にのみ受け入れられる。

 参加者の不利益 

 消費電力の増加： 一般的に、CPUは、アイドル状態の時と比較してアクティブな時の方が多くの電力を消費する。さらに、ボランティアが参加したいという願望により、一晩中パソコンの電源を入れっぱなしにしたり、サスペンドのような省電力機能を無効にすることがある。さらに、パソコンが十分に冷却できない場合、ボランティアのCPUに負荷がかかることでオーバーヒートする可能性がある。
 パソコンの性能低下： パソコンの使用中に、ボランティア・コンピューティングのアプリケーションを実行されると、パソコンのパフォーマンスに影響が出ることがある。これは、CPU、CPUキャッシュ、ローカルストレージ、ネットワーク接続の使用量が増えることが原因である。RAMが制限されている場合は、ディスクキャッシュのミスやページングが増加する可能性がある。ボランティア・コンピューティング・アプリケーションは通常の場合、より低いCPUスケジューリング優先度が実行されるため、CPUの競合を緩和するのに役立つ。

これらの効果は目に見えない場合も目に見える場合もあり、たとえ目立ったとしても、ボランティアは参加の継続を選択をする場合がある。しかし、消費電力の増加は、クライアントが使用するプロセッサの割合を制限するオプションを設定することによって、ある程度まで改善することができる。

 研究者の利益 

 計算力 
ボランティア・コンピューティングは、他の方法では達成できないコンピューティングパワーを研究者に提供することができる。例えば、Folding@homeは、世界最速のコンピューティングシステムの一つとして位置づけられている。COVID-19パンデミックの影響でプロジェクトへの関心とボランティアの参加が高まったことで、システムは2020年3月下旬に約1.22エクサフロップスの速度を達成、2020年4月12日には2.43エクサフロップスに達し、世界初のエクサフロップス・コンピューティングシステムになった。

 コスト 
多くの場合、ボランティア・コンピューティングは、他の形態の分散コンピューティングよりも安価である。

 重要性 
プロジェクトを実施する上で、参加者と研究者の間に説明責任や信頼関係の欠如などの課題はあるが、特に資金が限られているプロジェクトにおいては、ボランティア・コンピューティングは非常に重要である。

 世界には10億台以上のパソコンが存在するため、ボランティア・コンピューティングを利用することで、大学を中心とした学術研究や科学研究など、コンピューティング能力を持たない研究者にも、より多くのコンピューティング能力を提供することが可能となる。また、技術の進歩により、パソコンやゲーム機などのコンシューマー製品の進歩が他のどの専門製品よりも速く起こり、その結果、世界のパソコンの数と計算能力が増加してゆく。
 巨大な計算能力を持つスーパーコンピュータは非常に高価であり、一部のアプリケーションでしか利用できない。一方、ボランティア・コンピューティングは買えるものではないが、その力は公的な支持から生まれてくる。資源や資金が限られている研究プロジェクトでも、世間の注目を集めることで、巨大な計算能力を手に入れることができる。
 市民は、科学などの研究にボランティアで参加し、支援や計算能力を提供することにより、科学に興味を持つようになる。また、市民が研究を支援するかしないかによって、科学研究の方向性、ひいては将来の科学に対して発言力を持つことができるようになった。

 参照項目 
 DreamLab 
 市民科学 
 クラウドコンピューティング 
 分散コンピューティングプロジェクトのリスト 
 Peer-to-peer 
 群知能 
 バーチャル・ボランティア
 BOINC