Parallel processing OpenMP:这两者之间的区别是什么;taskloop";及;“omp”代表;性能方面?

Parallel processing OpenMP:这两者之间的区别是什么;taskloop";及;“omp”代表;性能方面?,parallel-processing,openmp,Parallel Processing,Openmp,OpenMP 4.5中引入了“taskloop”。它可以从循环和任务构造中获取子句(depend子句AFAIK除外) 但是,我想知道“taskloop”和“ompfor”结构在性能方面是否也有所不同。我认为这可能取决于实际问题。并行化for循环omp for可能比任务更快,因为它为您的需要提供了几种不同的调度方案。根据我的经验(使用clang12编译器解决一个特定问题)omp for生成的代码比任务s(在Ryzen 5 7800X上)快一点。当我想知道这类事情时,我设置了一两个测试并进行研究。你

OpenMP 4.5中引入了“taskloop”。它可以从循环和任务构造中获取子句(depend子句AFAIK除外)


但是,我想知道“taskloop”和“ompfor”结构在性能方面是否也有所不同。

我认为这可能取决于实际问题。并行化for循环omp for可能比任务更快,因为它为您的需要提供了几种不同的调度方案。根据我的经验(使用clang12编译器解决一个特定问题)omp for生成的代码比任务s(在Ryzen 5 7800X上)快一点。

当我想知道这类事情时,我设置了一两个测试并进行研究。你为什么不呢?我举了一个例子。但我不能在其他情况下测试它。我使用gcc进行编译。在某些情况下,它会生成错误“InternalCompilerError”,而在其他情况下,当t具有“taskloop”构造时,它会很好地编译,但编译后的程序会按顺序执行。