RemoteBatchMapSubmit
RemoteBatchMapSubmit[env,f,list]
使用远程批处理提交环境 env 提交一个阵列批处理作业,其中 f 应用于 list 的第一层的每个元素.
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 选项,计算被分配到多个孤立的子作业中(在每个子作业内还可能跨越多个并行内核). 然而,有时可以采用诸如 function memoization 等技术有限地在条件合适的情况下利用全局状态来优化.
- 由 RemoteBatchMapSubmit 返回的 RemoteBatchJobObject 将使用 "Array" 作为其 "JobType" 属性的值.
- RemoteBatchMapSubmit 支持以下选项:
-
ForwardCloudCredentials Automatic 是否将本地会话的 Wolfram Cloud 凭据复制到远程会话 IncludeDefinitions True 是否自动包含表达式的依赖关系 Initialization None 在每个子作业的主内核中进行一次运算的表达式 LicensingSettings Automatic 要使用的许可设置 Method Automatic 将运算纳入子作业的策略 RemoteInputFiles < > 要上传到提供程序的本地文件的关联 RemoteProviderSettings < > 每个子作业提供程序特定的设置的关联 TimeConstraint Automatic 每个子作业的超时 - Initialization 表达式可用于导入输入文件并将其内容存储在作业函数中要访问的变量中. »
- IncludeDefinitions 选项的值同时适用于作业函数和 Initialization 表达式(如果指定).
- LicensingSettings 选项的缺省值 Automatic 根据作业的配置创建具有内核数和到期限制的新的按需许可证权利. 默认内核数限制是在假定所有子作业可以同时运行的情况下确定的.
- 当使用默认的按需许可配置运行作业时,Wolfram Engine 许可证的使用将按使用量付费,从 Wolfram Service Credits 的余额中扣除.
- Method 选项支持以下包装方法规范:
-
"FinestGrained" 为每个作业分配最少的运算数(在提供程序强制执行的作业数量限制内) "EvaluationsPerJob"n 在提供程序强制执行的作业计数限制内,选择适合每个拟合的作业数量,尽可能接近 n 个运算(如果 Length[list] 不能被 n 整除,则将有一个包含余数的附加作业) "JobCount"n 平衡恰好 n 个作业之间的运算,不高于 Length[list] 和提供程序强制执行的工作计数的较小者 Automatic 等价于 "JobCount"Round[] - 默认打包方法 MethodAutomatic 尝试最小化作业数量和每个作业的运算次数之间的差异.
- Method 选项也可以设置为诸如 {"JobCount"10,"FinestGrained"} 之类的列表,其中第一个元素是上表中的打包方法,第二个元素是 Parallelize (及相关函数)支持的并行化方法.
- 如果指定了并行化方法,它将在每个子作业中提供给 ParallelMap. 默认的并行化方法是 Automatic. 如果将阵列作业配置为为每个子作业仅提供一个内核,则设置并行化方法无效.
- RemoteProviderSettings 选项的值和由 TimeConstraint 选项指定的超时都分别应用于每个子作业,而不适用于主阵列作业.
范例
打开所有单元关闭所有单元基本范例 (1)
选项 (5)
可能存在的问题 (1)
使用默认的按需许可设置,如果您的 Service Credits 余额不足以根据阵列子作业的数量以及子作业处理器的数量和 TimeConstraint 创建许可证授权,RemoteBatchMapSubmit 将拒绝提交作业:
默认情况下,假设所有子作业将同时运行,RemoteBatchMapSubmit 请求许可证授权. 如果不是这种情况,则可以使用 LicensingSettings 选项减少授权的并发内核限制:
或者,可以减少子作业的数量,每个子作业的处理器内核数和/或子作业 TimeConstraint:
最后,可以通过向 LicensingSettings 选项提供 "CheckCreditsBalance"False 授权设置来覆盖余额检查:
文本
Wolfram Research (2020),RemoteBatchMapSubmit,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RemoteBatchMapSubmit.html.
CMS
Wolfram 语言. 2020. "RemoteBatchMapSubmit." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/RemoteBatchMapSubmit.html.
APA
Wolfram 语言. (2020). RemoteBatchMapSubmit. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RemoteBatchMapSubmit.html 年