当您考虑到特定的依赖关系图时,我有一个关于如何生成OpenMP伪代码的问题.所以假设我们有这个特定的图:

解决方案可能是这样的:
#pragma omp parallel
{
#pragma omp single
{
A();
#pragma omp task B();
#pragma omp task C();
D();
#pragma omp taskwait
#pragma omp task E();
F();
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,尽管上面的代码确实成功实现了重要的并行性,但是任务E必须等待任务D完成,任务F必须等待任务B完成,这根据图形不是必需的.
所以我的问题是,有人可以为我提供OpenMP伪代码,其中E不会等待D而F不会等待B给定的依赖图吗?