"CharityEngine" (バッチ計算プロバイダ)

詳細

Charity Engineは,コンテナベースのグリッド計算サービスであり,世界中のデスクトップコンピュータのネットワーク上の使われていないプロセッサ時間を使ってジョブを実行する.
Wolfram言語で"CharityEngine"のバッチ計算プロバイダを使えるように設定するには,Charity Engineのバッチ計算プロバイダを設定するのワークフローに記載されている指示に従われたい.
"CharityEngine"のバッチ計算プロバイダは,Charity Engineが提供するファイルホストシステムを使って,ジョブの入出力データを保存する.
"CharityEngine"のバッチ計算プロバイダは,Linuxコンテナのみのジョブの実行をサポートする.
"CharityEngine"のバッチ計算プロバイダは,現在Wolfram言語のGPU計算をサポートしない.

環境特性

以下の特性が"CharityEngine"プロバイダのRemoteBatchSubmissionEnvironment オブジェクトでサポートされる.
  • "ServiceObject"Automatic"CharityEngine"サービスのServiceObject
    "UseOwnDevices"Falseジョブのスケジュール作成を現行ユーザが所有するホストに限るかどうか
  • "ServiceObject"特性が削除される(あるいはAutomaticに設定される)場合,サービスオブジェクトは自動的に構築され, ServiceConnect["CharityEngine"]で接続される.
    "ServiceObject"特性が"New"に設定されている場合には,ServiceConnect["CharityEngine","New"]で新しいサービス接続が作成され,保存されている接続や認証情報はどれも無視される.
    Charity Engineの"authenticator"文字列は,"CharityEngine"サービスオブジェクトに接続しなければならない.Charity Engineのバッチ計算プロバイダを設定するのワークフローにCharity Engine のアカウントを作成し,認証符号を取得する手順が記載されている.

    ジョブの設定

    "CharityEngine"プロバイダを使う場合に,以下の設定がRemoteProviderSettingsオプションでサポートされる.
  • "InstanceType""C.2x2"Charity Engineのインスタンスタイプの文字列
    "UseOwnDevices"Inheritedジョブのスケジュール作成を現行ユーザが所有するホストに限るかどうか
  • Charity Engineでは,以下の基本的なインスタンスタイプがサポートされる.
  • "C.2x2"2つのvCPU; 2GiB RAM
    "C.2x4"2つのvCPU; 4GiB RAM
    "C.4x4"4つのvCPU; 4GiB RAM
  • リストされているインスタンスタイプ以外にサポートされるものもあるかもしれない.現在のリストについては,Charity EngineのWebサイトを参照されたい.現在のリストは,"CharityEngine"のサービス接続の"InstanceTypes"リクエストを使うことによっても取得できることがある. »
    "UseOwnDevices"設定の値Inheritedは,ジョブの送信に使われたRemoteBatchSubmissionEnvironmentに指定されている値に対応する.
    "CharityEngine"プロバイダを使う場合,RemoteBatchSubmitおよびRemoteBatchMapSubmitTimeConstraintオプションの値は,1から8時間(デフォルトは8時間)でなければならない.
    "CharityEngine" プロバイダは,ForwardCloudCredentialsオプションでクラウドの認証情報を自動的に転送することはしない. »

    ジョブの状態

    "CharityEngine"プロバイダを使っている場合に,"JobStatus"のジョブ特性の値として以下の値が可能である.典型的なジョブが渡される順にリストされている.
  • "Provisioning"ジョブがキューに入り,ホストにスケジュールされるのを待っている
    "Downloading"ジョブがホストにスケジュールされ,そのコンテナ画像と入力ファイルがダウンロードされている
    "Running"ジョブコンテナが開始され,ジョブコードを評価している
    "Completed"ジョブの実行に成功し,出力がアップロードされている
    "Failed"ジョブの実行に失敗した
    "Aborted"ジョブは完了する前に中断されたか,時間切れになったかした
  • ジョブ特性

    "CharityEngine"プロバイダを使っているときには,RemoteBatchJobObjectがサポートする標準特性に加えて,"Single"タイプのジョブオブジェクトから以下の特性が使用可能である.
  • "JobLog"ジョブコンテナからのコンソールログ
    "ProviderJobID"Charity Engineがジョブに対して提供する一意的な識別子
  • "CharityEngine"プロバイダを使っているときには,RemoteBatchJobObjectがサポートする標準特性に加えて,"Array"タイプのジョブオブジェクトから以下の特性が使用可能である.
  • "ProviderChildJobIDs"Charity Engineが個々の配列の子のジョブに対して提供する一意的な識別子
  • "CharityEngine"プロバイダを使っているときには,RemoteBatchJobObjectがサポートする標準特性に加えて,"ArrayChild"タイプのジョブオブジェクトから以下の特性が使用可能である.
  • "JobLog"子のジョブコンテナからのコンソールログ
    "ProviderJobID"Charity Engineが子のジョブに対して提供する一意的な識別子
  • "ProviderJobID"および"ProviderJobIDs"の特定の値は,Wolframシステム内のジョブを特定する"JobUUID"特性とは対照的に,Charity Engineにジョブを特定する.
    Charity Engineは,完了した("Completed""Failed""Aborted"のいずれか)ジョブのメタデータを送信から14日後に,未完了("Provisioning""Download""Running"のいずれか)のジョブのメタデータを送信から28日後に,有効期限切れにし,削除する.
    有効期限切れしたジョブを表すRemoteBatchJobObject式は,状態や出力のクエリを行うことはできず,RemoteBatchJobsによってリストされることもない.

    例題

    すべて開くすべて閉じる

      (2)

    "CharityEngine"RemoteBatchSubmissionEnvironmentオブジェクトを作成する:

    作成された環境を使ってジョブを送信する:

    ジョブの状態についてクエリを行う:

    ジョブが完了してから,もう一度ジョブの状態についてのクエリを行う:

    ジョブの出力をダウンロードする:

    陰的に作成された送信環境を使って,ジョブを送信する:

    ジョブ設定  (1)

    "InstanceType"  (1)

    使用可能な4つのvCPUで"C.4x4"インスタンスを使って送信されたジョブを実行するように,Charity Engineに指示する:

    ジョブ特性  (2)

    "Single"のジョブ  (1)

    RemoteBatchSubmitを使って,バッチジョブをCharity Engineに送信する:

    ジョブコンテナからコンソール出力を取得する:

    "Array"と"ArrayChild"のジョブ  (1)

    RemoteBatchMapSubmit:を使って,バッチ配列ジョブをCharity Engineに送信する:

    それぞれの配列の子のジョブに対して,Charity Engineのジョブ識別子を取得する:

    最初の子のジョブを表すRemoteBatchJobObjectの式を得る:

    子のジョブコンテナからコンソール出力を取得する:

    特性と関係  (1)

    現在使用可能なCharity Engineのインスタンスタイプのリストは,"CharityEngine"のサービス接続を通して取得できる:

    考えられる問題  (1)

    "CharityEngine"プロバイダは,クラウドの認証情報を自動的に送信することをサポートしない: