プラットフォーム (古い文書です。 Wiki移行済み) |
|
ボランティア・コンピューティングプロジェクトに利用できる計算機は、 広範囲のオペレーティング・システムとハードウェア・アーキテクチャを持つ。 例えば、それらの計算機は、様々なプロセッサー(486、ペンティアム、AMD)上で、 各種バージョンのウインドウズ(95、98、ME、2000、XP) を実行しているだろう。 更に、複数プロセサや、グラフィックス・コプロセサも持っているかもしれない。
プラットフォームは編集作業のターゲットである。 つまり、 典型的には CPU アーキテクチャとオペレーティング・システムの組合せとなる。 各プロジェクトが持つ BOINC のデータベースには、プラットフォームの集合が含まれている。 おのおののプラットフォームには 名前(name) と それが扱えるコンピュータの範囲の説明(description) が付いている。 おのおのの アプリケーションの版(application version) は、特定のプラットフォームに結びついている。
プロジェクト間での整合性を保つため、下記のプラットフォームだけを使うべきである。 下記の表にないプラットフォームを追加したいときは、 我々に連絡 を取っていただきたい。
| 名前(name) | 説明(description) |
|---|---|
| windows_intelx86 | Intel x86 互換の CPU 上で稼動する Microsoft Windows(98もしくはそれ以降) |
| windows_x86_64 | AMD x86_64 または Intel EM64T CPU 上で稼動する Microsoft Windows |
| i686-pc-linux-gnu | Intel x86 互換の CPU 上で稼動する Linux |
| x86_64-pc-linux-gnu | AMD x86_64 または Intel EM64T CPU 上で稼動する Linux |
| ppc64-linux-gnu | 64-bit PowerPC上で稼動する Linux |
| powerpc-apple-darwin | Motorola PowerPC上で稼動する Mac OS 10.3 もしくはそれ以降 |
| i686-apple-darwin | Intel CPU 上で稼動する Mac OS 10.4 もしくはそれ以降 |
| sparc-sun-solaris2.7 | SPARC互換の CPU 上で稼動する Solaris 2.7 |
| sparc-sun-solaris | SPARC互換の CPU 上で稼動する Solaris 2.8 もしくはそれ以降 |
| sparc64-sun-solaris | SPARC 64-bit CPU 上で稼動する Solaris 2.8 もしくはそれ以降 |
プラットフォームの名前は BOINC クライアントの中にコンパイル時に組み込まれる。 このクライアントは自分のプラットフォームをプロジェクトのスケジューリング・サーバへ報告する。 すると、報告に合致するプラットフォーム向けのアプリケーションの版があるときだけ、 そのスケジューリング・サーバはクライアントの計算機に仕事を送る。
ときには、一つの実行可能ファイルを複数のプラットフォームに結びつけたいこともあるだろう。 たとえば、Mac/Intelマシン(Intel CPU を使った Mac)は、Mac/PPC アプリケーションを エミュレーション・モードで実行できる。 Mac/Intel マシン向けのアプリケーションをあなたがコンパイルできない場合には、 Mac/PPC マシン用のバイナリを Mac/Intel のアプリケーションの版として追加できる。 すると、Mac/Intel マシンがあなたのプロジェクトに参加できるようになる。
BOINC は、特定アーキテクチャーの機能を利用するアプリケーションを許容する。 ただし、アプリケーションがそのアーキテクチャの機能を自己認識する負担を負わなければならない。
言い換えると、もしも仮に「AMD 3DNow 命令セット」を利用するようなアプリケーションを製作しようと欲したとしても、 プラットフォーム「windows_amd_3dnow」を新規作成してはならない。 代わりに、プラットフォーム「windows_intelx86」用に、 「3DNow」が装備された機械かどうか判別し適切なコードに分岐するするようなバージョンを作るべきである。
こうすることによって、 BOINC 内部の都合で版とアーキテクチャが、 組み合わせによる数の爆発を起こさないようにする。
統計情報を詳細に分類できるようにするために、 BOINC は計算処理が終了した個々のリザルト(result) について、以下の処理を行う。
最初に、コアクライアントは「CPU ベンダー、CPU モデル、OS 名および OS バージョン」を探す。 これらの情報はホストレコード(the host record) に格納されている。
次に、特定のアーキテクチャ情報を認識するアプリケーションは
コアクライアントにその情報を渡すことができる。
これには、BOINC API
で提供する「boinc_architecture()」関数を用いる。
コアクライアントへ渡された情報(プロジェクトごとに固有の文字列だが、典型的にはXML形式を使う)は、
リザルト(result) データベースレコードの
architecture_xml 欄に記録される。
例えば、アプリケーションは下記のような文字列を渡すかもしれない。
<has_3dnow_instructions/> <graphics_board>ATI Rage 64MB</graphics_board>これにより、例えば「3DNow 命令」を搭載したホストと他のインテル互換ホストとを比較して、 各種パフォーマンス統計をレポーティングできるかもしれない。
各種プラットフォームの情報は、BOINC データベースの platform テーブルに保持される。 xadd ユーティリィティ を使用して新規作成が可能である。
最終更新時刻 23:38:15, 2007年05月19日(JST)
Copyright © 2012 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.
Copyright © 2012 Yazawa Ikuo and Komori Hitoshi(je2bwm at jarl.com).
Japanese translation from English web pages on BOINC.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.