2017-10-05 90 views
2

schedule子句的OpenMP文档说,如果指定了schedule(auto),那么有关调度的决定将委派给编译器或运行时系统。如何在gcc中实施OpenMP“自动”计划?

编译器(E.g,gcc)如何决定调度?它是否从static, dynamic, guided之一中选择,或者它是否有自己的选择时间表的算法?

回答

3

在libgomp中,gcc默认的OpenMP运行时库auto只映射到static。没有魔法。

这在代码注释为:

/* For now map to schedule(static), later on we could play with feedback 
driven choice. */ 

这番话已经存在了10年。您可以在loop.cloop_ull.c中寻找GFS_AUTO