主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用作业方法和属性传输数据

您可以通过parallel.Job (Parallel Computing Toolbox)对象的 AttachedFiles 属性将数据传输到云集群,操作方式与传输到其他集群相同。例如:

  1. 将所有必需的可执行文件和数据文件放置在同一文件夹中。

  2. 在作业的 AttachedFiles 属性中指定该文件夹。

  3. 提交作业。这将文件传输到云端,并使其可供在云集群上运行的工作单元使用。

  4. 您可以通过使用 fetchOutputs (Parallel Computing Toolbox) 函数,从已完成的作业中获取任务或批处理函数的结果。对于在云端运行的批处理作业,您还可以在客户端会话中使用 load (Parallel Computing Toolbox) 函数访问作业工作区变量。

此示例演示如何在本地计算机上运行包含文件的批处理作业,并在 Cloud Center 的集群上调用函数 divideData

加载数据

将本示例的数据复制到当前工作文件夹中,方法是打开辅助函数 prepareSupportingFiles 并使用其中的代码。

openExample("parallel/RunBatchJobAndAccessFilesFromWorkersExample", ...
supportingFile="prepareSupportingFiles.m") 

您当前的工作文件夹现包含 4 个文件:A.datB1.datB2.datB3.dat

运行批处理作业

在 MATLAB 上创建并探索您的 Cloud Center 个人资料。将此配置文件指定为您的默认集群配置文件。有关详细信息,请参阅创建与探索集群

使用 parcluster (Parallel Computing Toolbox) 创建一个集群对象。

c = parcluster; 
将代码放入函数中,并使用 batch (Parallel Computing Toolbox) 提交为批处理作业。使用 AttachedFiles 名称-值参量将文件从本地计算机传输到工作单元。例如,使用包含三个工作单元的并行池,并在 divideData 中转移计算负载。
filenames = "B" + string(1:3) + ".dat"; 
job = batch(c,@divideData,1,{}, ... 
    Pool=3, ... 
    AttachedFiles=filenames);

要阻止 MATLAB 直到作业完成,请在作业对象上使用 wait (Parallel Computing Toolbox) 函数。

wait(job);

检索结果并清理数据

要检索批处理作业的结果,请使用 fetchOutputs (Parallel Computing Toolbox) 函数。fetchOutputs 返回一个元胞数组,其中包含在批处理作业中运行的函数的输出。您还可以通过load (Parallel Computing Toolbox)函数访问作业工作区变量。

X = fetchOutputs(job)
X = 1×1 cell array 
    {40×207 double}

当您已获取所有所需输出且不再需要作业对象时,请删除该对象以清理其数据,避免不必要地消耗资源。

delete(job) 
clear job

有关详细信息,请参阅运行批处理作业并从工作单元访问文件 (Parallel Computing Toolbox)。要了解有关与员工共享数据的更多信息,请参阅 与工作单元会话之间传递数据 (Parallel Computing Toolbox)

另请参阅

主题