BOINCクライアント-サーバ技術

BOINC(ボインク)が大規模な科学計算を分散して実行するための基盤となるのが、クライアントサーバ技術と呼ばれるモデルです。このモデルは、BOINCフレームワークが採用するアーキテクチャであり、タスクの配布・処理・集計を行うサーバシステムと、計算を実行するクライアントソフトウェアから構成されます。サーバは計算タスク(ワークユニット)を参加者のコンピュータ上のクライアントへ送信し、クライアントはその処理を実行します。計算が完了すると、結果はサーバ側へアップロードされます。

BOINCは、分散コンピューティングを用いた研究プロジェクトを立ち上げやすくするため、自由で柔軟な構造を目指しています。サーバとクライアントは相互に通信し、ワークユニットの配布、処理、結果の返却を行います。

BOINCサーバ構造



BOINCシステムの中核はバックエンドサーバです。これは単一または複数のマシンで運用でき、プロジェクト規模に柔軟に対応します。BOINCサーバLinuxベースで、ウェブシステムにApache、データベースMySQL、連携にPHPを使用します。

実際の科学計算は参加者のコンピュータで実行されます。クライアントからアップロードされた結果はサーバで検証・分析されます。検証は、同じタスクを複数のコンピュータで実行し、結果を比較することで行われます。

サーバは効率的な計算処理のために以下の機能を提供します:
同種の冗長性: 特定環境(例: Windows XP SP2)のコンピュータにのみタスクを送信し、計算エラーリスクを低減。
ワークユニット・トリッキング: タスク完了前に途中経過をサーバに送信。
ローカリティ・スケジューリング: 必要なファイルを持つコンピュータに優先的にタスクを割り当て、データ転送負荷を軽減。
ホストパラメータに基づく作業配布: 計算に必要なメモリなどの条件を満たすコンピュータにのみタスクを配布。

BOINCサーバは、C++で書かれた二つのCGIプログラムと通常五つのデーモンで構成されます。クライアントが実行する計算は「ワークユニット」、その実行結果は「結果」と呼ばれます。サーバがワークユニットから自動的に結果を生成します。

スケジューラー: クライアントからの要求を処理し、完了した結果を受け取り、新しいタスクを割り当てます。フィーダーがデータベースからタスクを読み込み、共有メモリに置いたものを利用します。
フィーダー: データベースから計算タスクを読み込み、スケジューラーが利用する共有メモリ領域に配置します。
バリデーター: 返却された計算結果の正当性を検証します。一般的には、複数のクライアントの結果を比較照合します。有効な結果と判断された場合、そのワークユニットと結果にマークが付けられ、貢献者にはクレジットが付与され、「正規の結果」が選定されます。判断できない場合や無効な場合は、再実行を促します。
アシミレーター: バリデーターが正規と判断した結果データを処理します。プロジェクト固有の処理(データベース保存、ファイルコピーなど)や、追加のワークユニット生成を行います。
ファイル_デリーター: 処理済みの出力ファイルや不要になった入力ファイルを削除します。
トランジショナー: ワークユニットと結果の状態遷移を管理し、必要な場合に結果のインスタンスを生成します。

BOINCクライアント構造



参加者のコンピュータ上で動作するBOINCクライアントは、BOINCリモート・プロシージャ・コール(RPC)メカニズムで通信する独立したアプリケーション群で構成されます。

主要コンポーネントは以下の通りです:
コア・クライアント (`boinc`): クライアントの中核プログラムです。サーバとの通信、科学アプリケーションのダウンロード・ロギング・バージョン確認、CPUリソースのスケジューリングを行います。自動更新は行いません。Unixではデーモン、Windowsではサービスまたはアプリケーションとして動作します。インストール方法によりバックグラウンドまたはユーザーログイン時に起動します。科学アプリケーション開発を簡素化します。
科学アプリケーション: 実際の科学計算を行うプログラムで、プロジェクト固有です。コア・クライアントを通じてサーバとデータのやり取りを行います。
BOINCマネージャー (`boincmgr`): コア・クライアントとRPC通信を行うGUIです。BOINCの操作や状態確認に使用します。リモート接続も可能で、複数クライアントを一元管理できます。クロスプラットフォーム対応で、クライアント状態確認、アプリ追加、進捗監視、ログ閲覧などができます。RPCメカニズムは設定次第でセキュリティリスクの可能性もあります。
BOINCスクリーンセーバー: コンピュータアイドル時に、科学アプリケーションが計算状況などを視覚的に表示する機能です。BOINCグラフィックスAPIなどを利用します。アプリが対応しない場合はBOINCロゴが表示されます。

BOINCはユーザーから見えにくい動作も可能なため、不正インストールのリスクも指摘されます。また、貢献度に応じたクレジットシステムは、参加者間の競争を促す側面も持ちます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。