我试图在cython中重写一个使用openmp的fortran子程序。我发现在cython中重写fortran子程序没有任何困难。非openmp版本工作正常。但是,我不知道如何处理openmp指令......
!$omp parallel do private(x, y, z)
在cython中,我知道你使用cython.parallel.prange获得了openmp parallel。但是,我没有看到如何为循环声明私有变量。
这甚至可能吗?
感谢您提供的任何见解。
答案 0 :(得分:1)
是的,有可能。 The docs说:
如果分配给prange块中的变量,它将变为lastprivate,这意味着变量将包含上次迭代的值。 .....与块并行分配的变量将是私有的,并且在块之后不可用,因为没有顺序最后一个值的概念。