跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Studio 12.3:OpenMP API 用户指南 Oracle Solaris Studio 12.3 Information Library (简体中文) |
嵌套并行区域提供一种直接的方法来允许多个线程参与到计算中。
例如,假定您的程序包含两级并行操作,并且每个级别的并行操作等级为 2。此外,还假定您的系统有四个 CPU,您要使用全部四个 CPU 来加快此程序的执行速度。如果只并行化其中任意一个级别,则只需使用两个 CPU。您想要并行化两个级别。
嵌套并行区域容易创建过多的线程,从而占用过多的系统资源。适当设置 OMP_THREAD_LIMIT 和 OMP_MAX_ACTIVE_LEVELS 可限制使用中的线程数,并防止过多占用系统资源而失控。
创建嵌套并行区域会增加开销。如果外部级别有足够的并行操作并且负载平衡,在计算的外部级别使用所有线程要比在内部级别创建嵌套并行区域更有效。
例如,假定您的程序包含两级并行操作。外部级别的并行操作等级为四,并且负载平衡。您的系统具有四个 CPU,您要使用所有四个 CPU 来加快此程序的执行速度。通常,将所有四个线程用于外部级别在性能上要优于将两个线程用于外部并行区域而将其他两个线程用作内部并行区域的从属线程。