编写通信作业
通信作业是指工作单元在评估任务期间可以相互通信的作业。一个通信作业仅包含一个在多个工作单元上同时运行的单一任务,通常使用不同的数据。更具体地说,该任务在每个工作单元上重复,因此每个工作单元可以在不同的数据集上或大型数据集的特定段上执行该任务。工作单元在执行各自任务时可以互相通信。任务运行的函数可以利用工作单元对有多少个工作单元正在运行该作业、在运行该作业的工作单元中这是哪个工作单元的认识,以及允许工作单元彼此通信的功能。
原则上,创建和运行通信作业的方式与编写独立作业的方式类似:
定义并选择一个集群配置文件。
查找一个集群。
创建一个通信作业。
创建一个任务。
提交作业以供运行。有关每个工作单元为评估任务所执行的操作的详细信息,请参阅 向作业队列提交作业。
检索结果。
独立作业和通信作业之间的差异总结在下表中。
独立作业 | 通信作业 |
---|---|
MATLAB® 工作单元执行任务但不互相通信。 | MATLAB 工作单元可以在执行任务的过程中相互通信。 |
您可以在一个作业中定义任意数量的任务。 | 在一个作业中您只能定义一项任务。该任务的副本在所有运行通信作业的工作单元上运行。 |
任务不需要同时运行。当工作单元有空时,任务就会分配给工作单元,因此一个工作单元可以执行一份作业中的几项任务。 | 任务同时运行,因此您只能在运行时可用的尽可能多的工作单元上运行该作业。作业可能会被推迟开始,直到所需的工作单元数量到位为止。 |
通信作业及其任务的某些细节可能取决于您使用的调度器的类型。以下部分讨论了不同的调度器并解释了编程注意事项: