主要内容

中指定最大线程数parfor循环

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

  1. 写一个MATLAB®函数,specify_num_threads,它使用一个输入指定要执行的最大线程数parfor在生成的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函数在调用时的最大可用核数上运行。