我有用老式 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 经验,我只想选择最正确和最简单的方式开始。
提前致谢 !