partition
语法
说明
partition 将现有的并行池划分为池分区,允许您使用现有池中的特定资源。使用 partition 函数创建针对特定资源的池,或创建多个池以同时执行多个并行工作流。
创建一个池对象 newPool = partition(pool,"MaxNumWorkersPerHost",MaxNumWorkersPerHost)newPool,每个主机最多提供 MaxNumWorkersPerHost 个工作单元到输入池 pool。
主机是指运行 MATLAB® 工作单元的计算机。在本地池中,主机是您的计算机。在集群池中,主机是集群中的计算机。集群池可以在多个主机上运行工作单元。
如果主机运行的工作单元数少于您请求的工作单元数,则 partition 函数将该主机上的所有可用工作单元分配给 newPool。
创建一个池对象 newPool = partition(pool,"MaxNumWorkersPerGPU",MaxNumWorkersPerGPU)newpool,输入池 pool 中的每个唯一 GPU 最多可有 MaxNumWorkersPerGPU 个工作单元。
GPU 必须连接到与 MATLAB 工作单元相同的主机,才能被分配给该工作单元。如果 partition 函数无法将请求的工作单元数分配给 GPU,则该函数将所有可分配给 GPU 的工作单元分配给 newpool。在具有多个 GPU 的主机上,主机上的 MATLAB 工作单元和 GPU 的数量决定了 partition 函数可分配给每个 GPU 的最大工作单元数量。在没有 GPU 的主机上,除非池中的其他主机有 GPU,否则 partition 函数将返回一个空池。
此分区方法使用每个并行池工作单元上的 gpuDevice 函数的结果来确定哪个工作单元与哪个 GPU 相关联。partition 函数只考虑分配了 GPU 的工作单元,不会修改任何 GPU 的属性值。partition 函数在 pool 中的所有工作单元上执行代码,以收集 gpuDevice 信息。如果任何工作单元正在执行 parfeval 计算,则 partition 函数将等待 parfeval 计算完成。
[ 还返回 newPool,remainingPool] = partition(pool,___)remainingPool,这是一个池对象,包含 pool 中但 newpool 中没有的工作单元集。
示例
输入参数
输出参量
提示
池分区包含输入池中的某些工作单元,因此输入池及其分区均可对同一工作单元进行调度。因此,使用一个池可能会延迟其他池中工作的执行。删除任何池实例都会删除其底层的工作单元集合以及在池上运行的任何并行作业。使用同一资源集合的所有池均失效。如果您不再需要并行池分区,请让实例超出作用域,而不是显式删除它。
池分区的
NumWorkers属性值反映了池可使用的 工作单元的数量。新池与输入池共享一些属性。这些属性的更改会影响所有池。这些共享属性为:
AttachedFilesFileStoreValueStoreIdleTimeout
版本历史记录
在 R2025a 中推出