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