主要内容

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

确定本地并行环境的默认池大小

如果您安装了 Parallel Computing Toolbox™,就可以启动一个并行工作单元进程池,以充分利用多核计算机中的处理器核。

并行池是一组 MATLAB® 工作单元,您可以在其上运行代码。默认情况下,每个工作单元仅限使用一个计算线程。如需进一步了解并行池,请参阅 在并行池上运行代码

Parallel Computing Toolbox 提供了并行环境配置文件进程线程,用于在您的本地桌面计算机上运行并行代码。NumWorkers 属性用于确定进程配置文件和线程配置文件所使用的最大工作单元数。默认情况下,NumWorkers 等于您的计算机上高性能物理 CPU 核的数量。

物理核与逻辑核

物理 CPU 核是一种硬件处理单元,拥有独立的浮点运算单元 (FPU),能够执行计算并运行指令。诸如同时多线程 (SMT) [1]或 Intel® 超线程技术 (Hyper-Threading Technology) [2]等技术,能够使单个物理核在操作系统看来表现为多个逻辑核。然而,逻辑内核通常共享浮点运算单元 (FPU),这可能会在计算密集型任务中造成性能瓶颈。NumWorkers 的默认值基于物理核数,而非逻辑核数。此设置可确保每个工作单元都能独占使用一个浮点运算单元 (FPU)。

配备性能核和能效核的计算机

某些 CPU 同时具备性能核 (P-core) 能效核 (E-core) [3]。P-核的计算能力与传统的物理核相当,而 E-核则针对能效和计算强度较低的任务进行了优化。工作单元可以使用这两种类型的内核,并依靠操作系统在可用内核之间调度任务。然而,对于并行池而言,最佳做法是最初设置的工作单元数与物理 P 核的数量相等。因此,如果您的 CPU 同时拥有 P 核和 E 核,则 NumWorkers 的默认值仅等于物理 P 核的数量。

在 R2024a 之前的版本中: 默认的工作单元数等于物理内核的总数,其中包括 P 内核和 E 内核。

在集群配置文件管理器中查看有关池大小的更多详细信息

自 R2026a 起

集群配置文件管理器显示了 MATLAB 如何为进程配置文件和线程配置文件确定 NumWorkers 属性的默认值。例如,在下图中,NumWorkers 属性显示为:10,对应于高性能核的数量 (默认)。这意味着 MATLAB 检测到 10 个高性能核,并将这 10 个核作为 NumWorkers 的默认值。

您还可以查看可用物理内核的总数,其中包括 P 内核的数量(如有)。要查看此信息,请将鼠标悬停在 NumWorkers 属性值旁边的 信息按钮上。

The Cluster Profile Manager shows the Processes profile, with an information box next to the NumWorkers property value that displays "Detected 16 physical cores. Detected 10 high-performance cores."

如果更改 NumWorkers 的值,集群配置文件管理器将仅显示修改后的属性值,而不显示说明性文本或 (默认值) 标签。信息图标和工具提示也没有显示。如果将 NumWorkers 恢复为默认值,集群配置文件管理器将恢复显示默认值 NumWorkers、说明文本以及信息按钮。

编辑最大工作单元数

您可以通过编程方式或在集群配置文件管理器中,覆盖进程配置文件中默认的 NumWorkers 属性值。您只能通过集群配置文件管理器来更改线程配置文件中的 NumWorkers 属性值。

作为最佳做法,建议将 NumWorkers 设置为计算机上的物理核 (P-core) 数量。然后在监控性能和稳定性的同时,逐步调整该值。

  • 通过加入 E-core,您或许能进一步提升性能,但扩展行为可能会有所不同。当计算密集型数学运算仅在物理核上运行,或在条件允许时仅在物理 P 核上运行时,通常能够更快、更高效地完成。

  • 如果您的代码计算强度不高(例如,以输入/输出 (I/O)为主的代码),则可以考虑为每个物理核分配最多两个工作单元。

注意

请确保您的计算机拥有足够的内存和磁盘空间,以支持您配置的工作单元数量。如需了解 Parallel Computing Toolbox 的磁盘和内存要求,请参阅 Parallel Computing Toolbox 的产品要求与平台可用性

使用集群配置文件管理器

  1. 打开集群配置文件管理器。在主页选项卡的环境部分中,选择并行 > 创建和管理集群

  2. 集群配置文件选项卡中,选择进程线程

  3. 修改 NumWorkers 配置文件属性。在“管理配置文件”部分,点击编辑。在 NumWorkers 文本框中输入新值。

    Cluster Profile Manager shows the Processes profile being edited. In the Properties tab, the NumWorkers property has been changed to 4 from the default of 6, which corresponds to number of performant cores.

    .

通过编程方式

您可以使用 parclustersaveProfile 函数,通过编程方式更改进程配置文件中的 NumWorkers 属性值。不支持通过编程方式更改线程配置文件中的 NumWorkers 属性值。

  1. 在您的工作区中,使用进程配置文件创建一个集群对象。

    c = parcluster("Processes")

    在 R2022b 之前的版本中:

    c = parcluster("local") 

  2. NumWorkers 属性指定一个新值。

    c.NumWorkers = 10;

  3. 使用 saveProfile 函数保存修改后的集群配置文件。

    saveProfile(c) 

下次您使用更新后的配置文件启动池时,MATLAB 会尝试创建一个工作单元数量与 NumWorkers 属性中指定的数量相符的池。

参考

[1] Wikipedia. “Simultaneous multithreading.” August 4, 2025. https://wikipedia.org/w/index.php?title=Simultaneous_multithreading&oldid=1304464531.

[2] Wikipedia. “Hyper-threading.” August 4, 2025. https://wikipedia.org/w/index.php?title=Hyper-threading&oldid=1304462351.

[3] Intel “How Intel® Core™ Processors Work” August 4, 2025. https://www.intel.com/content/www/us/en/gaming/resources/how-hybrid-design-works.html

另请参阅

主题