我无法理解我正在为我的并行计算课程所做的分配。所讨论的问题是这样的:打开MP计划 - 寻找循环的最佳参数
考虑下面的代码:
for(int i = 0; i < 1024; i++){ int arg = ... compute(arg); }
凡
compute()
执行时间正比于它的参数值。我们希望使用OpenMP并行化该循环,其中一个时间表static
,dynamic
或guided
。查找表达式的一个例子arg
(即完整的第2行),使得要使用的最佳时间表将是:
静态
动态
引导
解释你的答案。
我没有任何理解OpenMP Schedules的问题,但是我很难找到任何可以帮助我决定使用哪些参数的信息,以及为什么。
课程没有用,我对Google没有任何运气。
我明白,如果人们“不想给我功课解决方案”,但一个坚实的指针在正确的方向将是很好的。简而言之,我如何评估哪个参数用于任何时间表?
所以大概你已经完成了我们其他人现在所做的任何事情,你已经写了一些代码来在黑暗中进行各种刺试验和纠错,收集一些数据并开始做一些扣除?计算不是一种旁观者运动...... –
除了你提到关于观众体育的任何内容之外,没有人可以提到。如果你不想帮忙,那很好,但是你可以没有那种指责的语气。 – DoTheGenes
为什么课程并没有要求你考虑汽车?是否仅限于OpenMP 2?通过提供的信息,您可以推断出最慢的循环迭代需要的时间是平均值的近两倍,因此可能值得测试各种时间表和块的选择。需要额外的信息来猜测引导是否是最好的,但答案仍然可能是问题和平台依赖性。 – tim18