Var*_*n V 4 parallel-processing gcc scheduling g++ openmp
OpenMP 文档中的 forschedule
子句表示,当schedule(auto)
指定时,有关调度的决策将委托给编译器或运行时系统。
编译器(例如,gcc)如何决定调度?它是从其中之一中选择static, dynamic, guided
还是有自己的算法来选择时间表?
在 gcc 附带的默认 OpenMP 运行时库 libgomp 中,auto
简单地映射到static
. 没有魔法。
这在代码中注释为:
/* For now map to schedule(static), later on we could play with feedback
driven choice. */
Run Code Online (Sandbox Code Playgroud)
这条评论已经存在了 10 年。GFS_AUTO
您可以在loop.c
和 中查找loop_ull.c