主要内容

指定最大线程数parfor循环

此示例显示如何指定用于对象的最大线程数parfor循环。因为您指定了要使用的最大线程数,所以生成的MEX函数在尽可能多的可用内核上并行执行循环迭代,直到您指定的最大线程数为止。如果指定的线程数超过可用内核数,则MEX函数使用可用内核数。

  1. 编写MATLAB®函数,specify_num_threads,它使用一个输入来指定要执行的最大线程数parfor-loop生成的MEX函数。例如:

    函数y = specificy_num_threads (u) %#codegen y = ones(1100);% u指定最大线程数parfor (i = 1:100,u) y(i) = i;结束结束

  2. 生成的MEX函数specify_num_threads.使用args {0}要指定输入u是一个双标量。使用报告生成代码生成报告。在MATLAB命令行输入:

    Codegen -report specificy_num_threads -args {0}
    codegen生成一个MEX函数,specify_num_threads_mex,在当前文件夹中。

  3. 运行MEX函数,指定它尝试在四个线程上并行运行。在MATLAB命令行输入:

    specify_num_threads_mex (4)

    生成的MEX功能最多在四个内核上运行。如果可用的内核少于4个,则MEX函数在调用时可用的最大内核数上运行。