Berkeley Open Infrastructure for Network Computing

Berkeley Open Infrastructure for Network Computing（バークレー・オープン・インフラストラクチャ・フォー・ネットワーク・コンピューティング）、略称 BOINC（ボインク、発音 – "oink"と韻を踏む）は、ボランティア・コンピューティングとグリッド・コンピューティングのためのオープンソースのミドルウェア・システムである。もともとはSETI@homeプロジェクト（2020年3月31日終了）をサポートするために開発されたが、数学、言語学、医学、分子生物学、気候学、環境科学、宇宙物理学などの多様な分野で、他の分散アプリケーションのためのプラットフォームとして一般化された。BOINCは、研究者が世界中の複数のパーソナルコンピュータの膨大なを利用できるようにすることを目的としている。
BOINCの開発は、カリフォルニア大学バークレー校の宇宙科学研究所(, SSL)に拠点を置き、SETI@homeのリーダーでもある(David P. Anderson)が率いるチームから始まった。高性能分散コンピューティング・プラットフォームとして、BOINCは、2020年3月17日時点で、世界中の約137,805人のアクティブな参加者と791,443台のアクティブなコンピュータ (ホスト) を集め、平均41.548ペタフロップスで処理する (スーパーコンピュータTOP500リスト上の個々のスーパーコンピュータと比較した場合、世界で5番目に大きな処理能力となる)。全米科学財団 (NSF) は、SCI/0221529、SCI/0438443、SCI/0721124の各賞を通じてBOINCに資金を提供している。ギネス世界記録では、BOINCは世界最大の計算グリッドとしてランク付けしている。
BOINCのコードは、Microsoft Windows、macOS、Android、Linux、FreeBSDを含む様々なオペレーティングシステム上で動作する。BOINCはGNU Lesser General Public License (LGPL)の条件でリリースされたフリーソフトウェアである。
BOINC の特徴.
参加者側からみた特徴.
参加者が最初に導入するのは、後述する BOINC クライアントであるが、ここではクライアント側ソフトウェアの構造から説明を始める。
まず、参加者側に配置されるクライアント・ソフトウェアが稼動するのに必須な部分は以下の2つである。
前者(a)アプリケーションは、各プロジェクトのサーバから参加者側へダウンロードされて複数プロジェクトが共存できる。
上記の必須部分 (a)+(b) に加えて、操作を楽にするための GUI が追加できる。GUI 部分と、(a)、そして(b)はこのように構造上分離されているが、今ではほとんどのプラットフォーム向けにそれぞれ GUI が用意されている。このため参加者からみると GUI がオプションであるとは意識されていないことがほとんどである。配布に際しても (b)コア・クライアントと GUI は一体として配られているので、コア・クライアント+ GUI を BOINC クライアントと呼ぶことが多い。つまり、
である。たとえば、Windows用や、macOS用の標準GUI版の BOINC クライアントがある。GUI の中には、機能を絞ったシンプルな画面と細かい操作のできる Advanced View の 2層構造になっているものもある。
コア・クライアントには、スクリーンセイバーを組込む仕組みが用意されており、旧来の SETI@home でもあったようなグラフィカルな動作画面が表示される。スクリーンセイバーは アプリケーションごとに用意するものなので、スクリーンセイバーが表示されないプロジェクトもある。以下ではBOINC クライアントを、主にコア・クライアント + GUI の意味で使うが、さらにおおまかに、(a)も集合的に含めたクライアント側ソフトウェア全体を意味することもある。
BOINC ベースの分散コンピューティングプロジェクトへの参加者は、まず BOINC クライアントを入手し、プロジェクトへの参加登録は BOINC クライアントを通じて行う 。参加登録が終わるとただちにそのプロジェクトのアプリケーションと最初の仕事が自動的にダウンロードされ、運用が始まる仕組みである。アプリケーションの新しいバージョンがリリースされた際も、BOINC クライアントが自動的にダウンロードする。稼動の一時停止や再開、プロジェクトからの脱退は、BOINC クライアント上で指示できる。
複数のプロジェクトに同時に参加する場合も、BOINC クライアント上から参加手続きをすればよい。同時に稼動できるプロジェクトは CPUコア1つ(INTELCPUのHTが有効時は二分の一つ)につき一プロジェクトのみだが、一定時間ごとに BOINC クライアントが自動的にプロジェクトを切り替える。
BOINC クライアントの設定や各プロジェクトの設定、プロジェクト間の稼動比率の設定は、現状では BOINC クライアント上からは設定できない。プロジェクトのウェブサイトに設けられたユーザーページ上で設定変更し、後ほど変更情報を BOINC クライアントに取り込む方法が採られている。
プロジェクト側からみた特徴.
サーバ運用の手法が確立しているため、新たにプロジェクトを起こす際に一からインフラ部分を整備する労力を要しない。また、関連プログラムはオープンソース化されている。
SETI@home で得られた分散コンピューティングの運用ノウハウを他の科学研究にも役立てることを主眼としているため、サーバ運用の省力化を念頭に置いて開発されている。通常、分散コンピューティングでは計算結果の信頼性を高めるため、同一の仕事を複数の参加者に配布して返却された計算結果を比較している。この、仕事の複製 → 配布 → 計算結果の回収 → 真偽判定 → 参加者への功績値の付与 → 不要ファイルの抹消、という一連の運用が自動化されている。
旧SETI@home では、終了直前の仕事を複製しておき不正に功績値を稼ぐチート行為が問題となったが、個々の仕事がどの参加者のどのコンピュータに配布されたかを把握している BOINC ではこのようなことはない。
BOINC クライアントでは、自身が走っているコンピュータの情報を細かく調べてプロジェクト側に申告している。これにより、特定のプラットフォームや CPU の計算能力、プロジェクトに提供するメモリやハードディスク容量の多寡によって、参加の可否や配布する仕事の軽重を選択できるようになっている。
設計と構造.
BOINCは、プロジェクト主催者が運営するサーバーシステムと、ボランティアが所有するコンピュータ上で動作するクライアントソフトウェアで構成され、相互に通信して作業単位(ワークユニット; Work Unitと呼ぶ)を分配および処理し、結果を返却する仕組みになっている。
プロジェクトサーバシステム.
プロジェクト主催者のサーバは、次のような構成をとる。
クライアントソフトウェア.
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が共同で考案・開発したものである。現在および過去のアカウントマネージャーは次の通りである：
クレジットシステム.
BOINCクレジットシステムは、クレジットを付与する前に結果を検証することで、不正行為を避けるように設計されている。
プロジェクト一覧.
現在アカウント作成・稼働可能なもの.
オープンβのプロジェクトも含む。
参加者の募集を停止中のもの.
クローズドβ、あるいは参加者数を限定して運用しているプロジェクト群。
運用にむけて準備中のもの.
参加者登録は可能なものの、まだワークの配布が始まっていないプロジェクト。
活動を休止中のもの.
長期に渡って運用停止していたり、運営側が休止を宣言したプロジェクト。
BOINCの技術をベースにした分散コンピューティングプロジェクト.
World Community Grid.
IBM社の支援の下、複数の医療系プロジェクトを展開している。既にいくつかのプロジェクトが完了、もしくはフェーズ2に移行している。
United Devices社のシステムで運用されているプロジェクトであったが、UD社のクライアントのサポートは2008年6月で中止され、一方これと平行して2005年11月からBOINCクライアントからも参加できるようになり、現在はBOINCクライアントのみのサポートとなった。当初は脇役的な扱いでBOINCからの参加方法も解りづらかったが、grid.org の終了前後から主客が逆転し、ウェブサイトでの参加登録後に現れるクライアントダウンロードページでも BOINCクライアントが上位に表示されるなど、UDクライアントの方が脇へと追いやられているという変遷もあった。
WCGサイトからの参加手続きは通常とは若干異なるが、これは初心者に対する配慮からWCGプロジェクトに参加した状態でのインストールになっていることによる。そのため、BOINCでWCGに参加する場合は、WCGサイトからインストールするのが最も簡単で手間がかからない。またBOINCクライアントは最新版が使用されており、インストール後にWCG以外のプロジェクトを追加する場合も特に制限はなく、別途BOINCに参加した人との差異はないと言って良い。
2007年10月3日BOINCクライアントからの功績値は68.8%に達し、2008年6月26日には100%となり、UDクライアントは使命を終えた。
特徴としてはBOINCでの功績値（クレジット）とは別に、過去のUDクライアントによる功績値との整合性を取る必要性からポイント（1クレジット＝7ポイント）による功績値集計を行っている。なおBOINC Stats等では、BOINCクライアントによる功績値のみが通常のクレジットで集計される。
グラフィック表示可能。（ただしグラフィックサイズは640×480px）
BOINCと違い、プロジェクト単位でのユーザー登録ではなく、World Community Gridで1つのアカウントを作成する仕組みである。1つのアカウントの元でWCG全てのプロジェクトに参加するか、個々のプロジェクトに参加するかの選択設定も行える。またWCGでは新規プロジェクトの始動と終了が比較的に頻繁に行われるが、新規プロジェクトを自動的に追加する設定がプロファイル設定に存在し、これにより自動で参加プロジェクトを増やせる。
なお、最新のプロジェクト状況についてはWorld Community Gridを参照。
cell computing βirth.
BOINCをベースに運用されている商用プロジェクト。2008年3月末をもってすべての活動を終了した。cell computing βirthの項も参照のこと。
BOINC標準クライアントからの参加はできないが、cell computing βirthのクライアントから各BOINCプロジェクトへの参加は可能。ただしクライアントがBOINCクライアント ver.4をベースとしているため、ver.5以降のクライアントを前提としたBOINCプロジェクトには参加できない。
BBC Climate Change Experiment.
ClimatePrediction.netのBBC協賛版。1920年から2080年までの160年間もの気候変動をシミュレートする。
ウェブサイトでは独自クライアントをダウンロードするよう誘導されるが、BOINC標準クライアントからも問題なく参加できる。
ワークの配布は2007年1月で打ち切られ、運用結果をもとにイギリス本国で特番が放映された（ダイジェスト版はYouTubeで閲覧可能。既に参加者登録は終了しており、現在は解析中ワークの返却のみ受け付けている）。