以下は JE2BWM ほかが作成した翻訳 です。 原文は University of California より GFDL で配付されており、 この翻訳も GFDL に従います。
原文: Platforms [Deprecated - Wiki]   (翻訳対象の更新日付は 7:55 PM UTC, April 20 2007 です)。

プラットフォーム (古い文書です。 Wiki移行済み)

boinc.gif
(英語のみ)

ボランティア・コンピューティングプロジェクトに利用できる計算機は、 広範囲のオペレーティング・システムとハードウェア・アーキテクチャを持つ。 例えば、それらの計算機は、様々なプロセッサー(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 ユーティリィティ を使用して新規作成が可能である。


BOINCの訳のメインページに戻る | (原文のメインページに戻る)
 

最終更新時刻 23:38:15, 2007年05月19日(JST)
Copyright © 2008 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 © 2008 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.

/**/ echo "

プラットフォームの秩序維持

BOINCの各プロジェクトは自由にプロジェクト用のプラットフォームを新規作成できる。 しかしながら、混乱を回避するために、 プラットフォームの新規作成と命名は単一グループで調整することが望ましい。 (現時点ではUCBのSETI@homeプロジェクトが調整している) "; "; /* */ echo "

BOINCは下記目標の解決を目指している。

"; /**/ echo "

設計

プラットフォームは、実行プログラムを生成する際のターゲットになる。 全プラットフォームの情報は各プロジェクトのBOINCデータベースに保持される。 各プラットフォームは、名前(name)と、 扱うことができるアーキテクチャーの範囲についての記述(description)とを有する。 BOINCの各プログラム(コアクライアントおよびアプリケーション)は、一つのプラットフォームに関連付けられる。 "; /**/ echo "

プラットフォームは、少なくともCPUアーキテクチャとオペレーティング・システムの組合せとなる。 それらを以下に例示する。 echo"

The name of a platform should specify a particular version (e.g. of an OS) only if it uses features new to that version. For example, the platform sparc_solaris2.8 should apply to SPARC machines running Solaris 2.8 or greater. -->*/ echo "

あるバージョンの新機能を利用するときに限り、 プラットフォームの名前に(例えばOSの)バージョンを付ける。 例えば、プラットフォーム「sparc_solaris2.8」は、 「SPARC互換のプロセッサー上で稼動する Solaris 2.8 もしくはそれ以降」を意図する。 "; /**/ echo "

簡素化のため、プラットフォームは相互に排他的と仮定する。 プラットフォーム「X」用のアプリケーションは、 Xと異なるプラットフォーム「Y」のコアクライアントが稼動しているホストでは使用できないと判定する。 BOINCのスケジューリングサーバ(scheduling server)は、 同一プラットフォームのアプリケーションがある場合のみ、ホストにワーク(work)を送信する。 "; /**/ echo "

プラットフォームの種類はなるべく少なく絞りたい。 例えば、「Solaris2.6」「Solaris2.7」の二つのプラットフォームがあると仮定しよう。 Solaris2.6用のコアクライアントが稼動しているホストでは、 Solaris2.6用のアプリケーションのみが実行できる。 この場合では、アプリケーション開発者は、たとえ 2.6用と 2.7用が同一プログラムであろうとも、 二つのバージョンを作る必要がある。 "; /*