Cython:prange中的私有变量

3

我正在尝试用Cython重写使用openmp的Fortran子程序。我已经成功地将Fortran子程序本身重写为Cython,但是openmp版本有一些困难。...

!$omp parallel do private(x, y, z)

在cython中,我知道你可以使用cython.parallel.prange来获取openmp并行循环。然而,我不知道如何为循环声明私有变量。
这是否可能呢?
感谢您能提供的任何见解。

我对OpenMP不是很熟悉,但听起来你需要的是在http://docs.cython.org/src/userguide/parallelism.html中描述的并行指令。 - IanH
1个回答

1

是的,这是可能的。文档中说:

如果您在prange块中分配变量,则该变量将成为lastprivate,这意味着该变量将包含最后一次迭代的值。......在parallel with块中分配的变量将是私有的,在块结束后无法使用,因为没有顺序上的最后一个值的概念。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接