OpenAcc:如何并行化函数调用

时间:2013-02-27 07:12:08

标签: parallel-processing openacc

我正在开发一个项目,我正在尝试并行化应用程序。 有一些函数我试图并行化,但问题是这些函数非常频繁地调用其他函数.loops仅用于计算,并且在一个函数体中有许多循环。 我知道OpenACC在其指令中不支持函数调用(仅内联调用),所以我想出了两种方法: a)或者只是将OpenAcc指令放在循环周围并获得所需的并行性并忽略函数调用(不要忽略它只是保持原样)(在每个函数体中执行此操作) b)或者我可以将调用函数体放入调用函数中,然后在输入acc指令时多次创建线程的开销最小化(通过在一个块中包含大量循环)。但这似乎是头疼是因为函数体很大(约4000-5000行代码)。

我无法弄清楚如何处理这种情况。

总之,我需要找到一种在OpenACC中并行化函数调用的有效方法

1 个答案:

答案 0 :(得分:0)

正如一些Mark Ebersole所说,OpenACC 2.0就是解决方案。 2.0中的例程指令允许将函数标记为设备目标。