使用作业方法和属性传输数据
您可以通过parallel.Job (Parallel Computing Toolbox)对象的 AttachedFiles 属性将数据传输到云集群,操作方式与传输到其他集群相同。例如:
将所有必需的可执行文件和数据文件放置在同一文件夹中。
在作业的
AttachedFiles属性中指定该文件夹。提交作业。这将文件传输到云端,并使其可供在云集群上运行的工作单元使用。
您可以通过使用
fetchOutputs(Parallel Computing Toolbox) 函数,从已完成的作业中获取任务或批处理函数的结果。对于在云端运行的批处理作业,您还可以在客户端会话中使用load(Parallel Computing Toolbox) 函数访问作业工作区变量。
此示例演示如何在本地计算机上运行包含文件的批处理作业,并在 Cloud Center 的集群上调用函数 divideData。
加载数据
将本示例的数据复制到当前工作文件夹中,方法是打开辅助函数 prepareSupportingFiles 并使用其中的代码。
openExample("parallel/RunBatchJobAndAccessFilesFromWorkersExample", ... supportingFile="prepareSupportingFiles.m")
您当前的工作文件夹现包含 4 个文件:A.dat、B1.dat、B2.dat 和 B3.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)。