RemoteBatchMapSubmit
RemoteBatchMapSubmit[env,f,list]
リモートバッチ送信環境 env を使って f が list の第1レベルの各要素に適用される配列バッチジョブを送信する.
RemoteBatchMapSubmit[f,list]
$DefaultRemoteBatchSubmissionEnvironmentを使って配列ジョブを送信する.
詳細とオプション
- RemoteBatchMapSubmitは送信バッチジョブを使って関数をリストにマッピングする.
- 現在サポートされているバッチ計算のプロバイダは,"AWSBatch","AzureBatch","CharityEngine"である.
- RemoteBatchMapSubmitは,バッチ計算プロバイダ上の結果の配列ジョブを表すRemoteBatchJobObjectを返す.配列ジョブは複数の子ジョブからなるリモートのバッチジョブである.
- 環境 env はRemoteBatchSubmissionEnvironmentでなければならない.
- 必須の環境設定がないバッチ計算プロバイダが使われると,env はRemoteBatchMapSubmit["CharityEngine",f,list]のような文字列としてのプロバイダ名になるだろうが,これはRemoteBatchMapSubmit[RemoteBatchSubmissionEnvironment["CharityEngine"],f,list]と等価である.
- 入力の配列 list は(Methodオプションで指定された方法で)連続するスパンに分割される.各スパンはマスターの配列ジョブの子ジョブで別々に処理される.
- 子ジョブで(例えばRemoteProviderSettingsオプションの効果として)複数のプロセッサコアが使える場合は,内部的にParallelMapを使って評価を使用可能なコアに分散する.
- 一般に,関数 f の各評価は,以前の特定の評価によって生成された大域状態には依存できない.評価はMethodオプションに従って複数の分離された子ジョブに分散される(さらに,各子ジョブ内の複数の並列カーネルに分散される可能性もある)ためである.ただし,計算値を記憶する関数等大域的な状態を限定的かつ日和見的に使用する手法を使用して,ジョブのパフォーマンスを最適化できる場合がある.
- RemoteBatchMapSubmitが返すRemoteBatchJobObjectの"JobType"特性の値は"Array"である.
- RemoteBatchMapSubmitは次のオプションをサポートする.
-
ForwardCloudCredentials Automatic ローカルセッションのWolfram Cloud認証情報をリモートセッションにコピーするかどうか IncludeDefinitions True 式の依存関係を自動的に含めるかどうか Initialization None 各子ジョブのマスターカーネルで1度だけ評価する式 LicensingSettings Automatic 使用するライセンス設定 Method Automatic 評価を子ジョブに割り当てる方法 RemoteInputFiles < > プロバイダにアップロードするローカルファイルの連想 RemoteProviderSettings < > 各子ジョブについてのプロバイダ特有の設定の連想 TimeConstraint Automatic 各子ジョブのタイムアウト - Initialization式を使って入力ファイルをインポートし,ジョブ関数内でアクセスできるようにそのコンテンツを変数に保存することができる. »
- IncludeDefinitionsオプションの値は,ジョブ関数と,指定されている場合はInitialization式の,両方に適用される.
- LicensingSettingsオプションのデフォルト値はAutomaticで,カーネル数と有効期限がジョブの設定に基づく新たなオンデマンドのライセンス資格を作ることができる.デフォルトのカーネル数の上限はすべての子ジョブが同時に実行されるという仮定に基づいている.
- デフォルトのオンデマンドライセンス設定を使ってジョブを実行するときは,Wolfram Engineライセンスの使用によってWolframサービスクレジットの口座残高に対して従量制で課金される.
- Methodオプションは次のパッキングメソッド指定をサポートする.
-
"FinestGrained" 各ジョブに可能な最小の評価数を割り当てる(プロバイダによって強制されるジョブ数の制限内) "EvaluationsPerJob"n プロバイダーによって適用されるジョブ数の制限内で,それぞれ n 個の評価に可能な限り近い適切な数のジョブを選択する(Length[list]が n で割り切れない場合は残りを含む単一の追加ジョブになる) "JobCount"n Length[list]とプロバイダによって強制されるジョブ数の制限のいずれか小さい方まで,厳密に n 個のジョブにバランスよく評価を分散する Automatic "JobCount"Round[]に等しい - デフォルトのパッキングメソッドMethodAutomaticは,ジョブ数とジョブごとの評価数の差を最小にしようとする.
- Methodオプションは{"JobCount"10,"FinestGrained"}のようなリストに設定することもできる.ここで,最初の要素は上記の表からのパッキングメソッド,2番目の要素はParallelize(および関連関数)でサポートされる並列化メソッドである.
- 並列化メソッドが指定されると,そのメソッドが各子ジョブ内のParallelMapに渡される.デフォルトの並列化メソッドはAutomaticである.配列ジョブが各子ジョブに単一のコアだけを与えるように設定されている場合は,並列化メソッドを設定しても効果はない.
- RemoteProviderSettingsオプションとTimeConstraintオプションで指定されるタイムアウトの値は,どちらも,マスターの配列ジョブではなく,各子ジョブに別々に適用される.
例題
すべて開くすべて閉じる例 (1)
オプション (5)
考えられる問題 (1)
デフォルトのオンデマンドライセンス設定を使うと,サービスクレジットの口座残高が配列子ジョブと配列子ジョブプロセッサおよびTimeConstraintの数に基づいてライセンス資格の作成に不十分な場合はRemoteBatchMapSubmitがジョブの送信を拒む:
デフォルトで,RemoteBatchMapSubmitは子ジョブが同時実行されるとの仮定の下にライセンス資格を要求する.子ジョブが同時実行されない場合は,LicensingSettingsオプションを使って並列カーネルの上限数資格を下げることができる:
子ジョブ,子ジョブあたりのプロセッサコアの数および/または子ジョブのTimeConstraintの数を減らすこともできる:
"CheckCreditsBalance"Falseの資格設定をLicensingSettingsオプションに与えることで残高チェックを無効にすることもできる:
テキスト
Wolfram Research (2020), RemoteBatchMapSubmit, Wolfram言語関数, https://reference.wolfram.com/language/ref/RemoteBatchMapSubmit.html.
CMS
Wolfram Language. 2020. "RemoteBatchMapSubmit." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RemoteBatchMapSubmit.html.
APA
Wolfram Language. (2020). RemoteBatchMapSubmit. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RemoteBatchMapSubmit.html