Berkeley Open Infrastructure for Network Computing
Berkeley Open Infrastructure for Network Computing(バークレー・オープン・インフラストラクチャ・フォー・ネットワーク・コンピューティング)、略称 BOINC(ボインク、発音 [bɔɪŋk] – "oink"と韻を踏む)は、ボランティア・コンピューティングとグリッド・コンピューティングのためのオープンソースのミドルウェア・システムである。もともとはSETI@homeプロジェクト(2020年3月31日終了)をサポートするために開発されたが、数学、言語学、医学、分子生物学、気候学、環境科学、宇宙物理学などの多様な分野で、他の分散アプリケーションのためのプラットフォームとして一般化された。BOINCは、研究者が世界中の複数のパーソナルコンピュータの膨大な処理資源(英語版)を利用できるようにすることを目的としている。
BOINCの開発は、カリフォルニア大学バークレー校の宇宙科学研究所(en:Space Sciences Laboratory, SSL)に拠点を置き、SETI@homeのリーダーでもあるデビッド・P・アンダーソン(英語版)(David P.
参加者が最初に導入するのは、後述する 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層構造になっているものもある。
net の1プロジェクト。2000年秋に英国で発生した洪水のシミュレーションを試みる。
Cunning Plan
DepSpid ウェブクローラーを分散コンピューティングで構築。
Distributed Rainbow Table Generator ハッシュ関数の逆引きを可能とする、巨大なレインボーテーブルの作成。
EternityII.net 懸賞金の掛けられたパズルEternity II Puzzle(英語版)の早解きを行う。
HashClash@home(英語版) MD5ハッシュ関数の脆弱性を見つけ出す。
NanoHive@home ナノテクノロジーの研究。
pPot Tables ポーカー (テキサス・ホールデム) に強いAIを作成するためのルックアップテーブルを構築する。
Predictor@home(英語版) タンパク質構造予測。
Project Neuron 分散コンピューティングプロジェクトの効率性評価手法の確立。
Ramsey@home ラムゼー数の探索。
RenderFarm@home アニメーションのレンダリングを行うプロジェクト。
Reversi リバーシの最善手を探索し、完全に解くことを目指す。
Riesel Sieve 509203よりも小さいリーゼル数が存在するかを探索。