【发布时间】:2013-08-02 23:45:41
【问题描述】:
我有使用老式 Fortran 95 编写的用于燃烧建模的代码。该问题的特点之一是必须求解刚性 ODE 系统以考虑化学反应的影响。为此,我使用了 Fortran SLATEC 库,它也很老了。求解过程很简单,只需要在计算域的每个单元格中调用子程序 ddriv3,如下所示:
do i = 1,Number_of_cells ! Number of cells is about 2000
call ddriv3(...) ! All calls are independent on cell number i
end do
ddriv3 相当复杂,并利用了许多其他库函数。
有没有什么方法可以利用 CUDA Fortran 获得优势,而无需为此搜索其他库?如果我只是将其作为“并行循环”运行,那将是有效的,还是可能有另一种方式?
对于这样的问题,我很抱歉立即出现了最明显的答案:“你为什么不尝试自己去了解它?”,但我的时间非常紧迫。我没有任何 CUDA 经验,我只想选择最正确和最简单的方式开始。
提前致谢!
【问题讨论】:
-
这在很大程度上取决于子程序的结构、所涉及的算法和所需的内存传输。
标签: cuda fortran equation-solving