
ボランティアコンピューティングは、人々がコンピュータの未使用リソースを研究指向のプロジェクトに寄付する分散コンピューティングの一種であり、 [ 1 ]時にはクレジットポイントと引き換えに寄付されることもあります。[ 2 ]その基本的な考え方は、現代のデスクトップコンピュータは毎秒数十億回の演算を実行できるほど強力ですが、ほとんどのユーザーではその容量の10~15%しか使用されていないということです。ワードプロセッシングやウェブブラウジングなどの一般的なタスクでは、コンピュータはほとんどアイドル状態になります。
1990年代半ばに始まったボランティアコンピューティングの実践は、研究者に最小限のコストで相当な処理能力を提供する可能性を秘めている。通常、ボランティアのコンピュータ上で実行されるプログラムは、定期的に研究アプリケーションに接続してジョブを要求し、結果を報告します。ミドルウェアシステムが通常、仲介役として機能します。[ 3 ]
最初のボランティアコンピューティングプロジェクトは、1996年1月に開始されたGreat Internet Mersenne Prime Searchでした。 [ 4 ] 1997年にはdistributed.netがそれに続きました。1997年と1998年には、いくつかの学術研究プロジェクトがボランティアコンピューティング用のJavaベースのシステムを開発しました。例としては、Bayanihan、[ 5 ] Popcorn、[ 6 ] Superweb、[ 7 ]、Charlotte [ 8 ]などがあります。
ボランティアコンピューティングという用語は、Bayanihanの開発者であるLuis FG Sarmentaによって造語されました。ハーバード・ビジネス・レビューで報告されているように、社会的責任、または企業の社会的責任に関する世界的な取り組みにも魅力的です。 [ 9 ]
1999年にSETI@homeとFolding@homeプロジェクトが開始されました。これらのプロジェクトはメディアで大きく取り上げられ、それぞれ数十万人のボランティアが集まりました。[ 10 ]
1998年から2002年にかけて、ボランティアコンピューティングをビジネスモデルとする企業がいくつか設立された。例としては、Popular Power、Porivo、Entropia、United Devicesなどが挙げられる。
2002年、カリフォルニア大学バークレー校宇宙科学研究所で、国立科学財団の資金提供を受けて、Berkeley Open Infrastructure for Network Computing (BOINC) プロジェクトが設立されました。BOINC は、クライアント、クライアント GUI、アプリケーションランタイム システム、サーバー ソフトウェア、プロジェクト Web サイトを実装するソフトウェアなど、ボランティア コンピューティングのための完全なミドルウェア システムを提供します。BOINC に基づく最初のプロジェクトは、スクリップス研究所を拠点とするPredictor@homeで、2004 年に運用を開始しました。その後すぐに、SETI@home とclimate prediction.netがBOINC の使用を開始しました。次の数年間で、Rosetta@home、Einstein@home、AQUA@homeなど、BOINC に基づく新しいプロジェクトが多数作成されました。2007 年、IBM World Community Grid は United Devices プラットフォームから BOINC に移行しました。[ 11 ]
初期のボランティアコンピューティングプロジェクトのクライアントソフトウェアは、科学計算と分散コンピューティングインフラストラクチャを統合した単一のプログラムで構成されていた。このモノリシックなアーキテクチャは柔軟性に欠けていた。例えば、新しいアプリケーションバージョンを導入するのは困難だった。
近年、ボランティアコンピューティングは、科学計算とは独立した分散コンピューティングインフラストラクチャを提供するミドルウェアシステムへと移行している。例としては以下のようなものがある。
これらのシステムのほとんどは、基本的な構造が同じです。ボランティアのコンピュータ上でクライアントプログラムが動作し、定期的にインターネット経由でプロジェクト運営サーバーに接続して作業依頼を送信したり、完了した作業の結果を報告したりします。多くのボランティアのコンピュータはファイアウォールの内側にあり、外部からの接続が遮断されているため、このような「プル型」モデルが必要となります。システムは各ユーザーの「クレジット」を記録します。これは、そのユーザーのコンピュータがプロジェクトのためにどれだけの作業を行ったかを数値で表したものです。
ボランティアコンピューティングシステムは、ボランティアによって提供されるコンピュータに関するいくつかの問題に対処する必要がある。それらの問題とは、コンピュータの多様性、変動性(個々のコンピュータが時間の経過とともにネットワークに参加したり離脱したりする傾向)、断続的な可用性、そして通常の使用中にそのパフォーマンスを妨げない必要性である。
さらに、ボランティアコンピューティングシステムは、正確性に関する問題にも対処しなければならない。
これらの問題に対する一般的なアプローチの一つは、複製コンピューティングです。これは、各ジョブを少なくとも2台のコンピュータで実行する方式です。結果(およびそれに対応する報酬)は、両者が十分に一致した場合にのみ受け入れられます。
これらの影響は目に見える場合もあれば、そうでない場合もあり、たとえ目に見える場合でも、ボランティアは参加を続けることを選択するかもしれません。ただし、消費電力の増加は、クライアントソフトウェアの一部に搭載されている、クライアントが使用するプロセッサの割合を制限するオプションを設定することで、ある程度軽減できます。
ボランティアによるコンピューティングは、他の方法では実現できないコンピューティング能力を研究者に提供することができます。たとえば、Folding@home は世界最速のコンピューティング システムの一つとしてランク付けされています。COVID -19 パンデミックの結果としてプロジェクトへの関心とボランティアの参加が高まり、[ 13 ]このシステムは 2020 年 3 月下旬までに約 1.22エクサフロップスの速度を達成し、2020 年 4 月 12 日までに 2.43 エクサフロップスに達し、[ 14 ]世界初のエクサフロップ コンピューティング システムとなりました。
ボランティアコンピューティングは、他の形態の分散コンピューティングよりも安価な場合が多く、[ 15 ]通常はエンド研究者にとって費用はかかりません。
プロジェクト実施中に参加者と研究者の間で説明責任や信頼関係が欠如しているなどの問題はあるものの、ボランティアコンピューティングは、特に資金が限られているプロジェクトにとって非常に重要である。[ 16 ]
ボランティアコンピューティングでは、参加者はクレジットポイントと引き換えに計算リソースを提供します。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)