【发布时间】:2017-10-05 08:16:14
【问题描述】:
schedule 子句的 OpenMP 文档说,当指定 schedule(auto) 时,有关调度的决定将委托给编译器或运行时系统。
编译器(例如 gcc)如何决定调度?它是从static, dynamic, guided 中选择一个还是有自己的算法来选择时间表?
【问题讨论】:
标签: gcc parallel-processing g++ openmp scheduling
schedule 子句的 OpenMP 文档说,当指定 schedule(auto) 时,有关调度的决定将委托给编译器或运行时系统。
编译器(例如 gcc)如何决定调度?它是从static, dynamic, guided 中选择一个还是有自己的算法来选择时间表?
【问题讨论】:
标签: gcc parallel-processing g++ openmp scheduling
在 libgomp 中,gcc 附带的默认 OpenMP 运行时库 auto 简单地映射到 static。没有魔法。
这在代码中被注释为:
/* For now map to schedule(static), later on we could play with feedback
driven choice. */
该评论已经存在 10 年了。你可以在loop.c和loop_ull.c中寻找GFS_AUTO
【讨论】: