小编Ima*_*ary的帖子

在并行区域中使用 fortran 保存属性

我的 Fortran 代码中有一个并行区域,它使用 OpenMP 并调用使用作用域内带有 save 属性的变量的子例程。这导致了一个问题,因为它们在线程之间共享,所以我的问题是是否有一种方法可以使这些变量成为私有变量,同时仍然在子例程调用之间保存,或者我是否需要输入和输出它们?

谢谢

parallel-processing fortran openmp

3
推荐指数
1
解决办法
538
查看次数

在 HPC 上使用 mpi_send 而不是在我的笔记本电脑上时 Fortran 代码冻结

我有一个子例程,它应该W % R使用MPI_SEND. 它可以在我的笔记本电脑上使用 Intel 和 gfortran 编译器(从某种意义上说它不会崩溃)。但是当我在 HPC 上运行它时,程序在第一次调用子例程时冻结。

SUBROUTINE mix_walkers( W ) 

 include 'mpif.h'
 TYPE(walkerList), INTENT(INOUT) :: W
 INTEGER, SAVE :: calls = 0
 INTEGER :: ierr, nthreads, rank, width, self, send, recv, sendFrstWlkr, sendLstWlkr, sendWlkrcount, &
            recvFrstWlkr, recvlstWlkr, recvWlkrcount, status

  calls = calls + 1

  CALL MPI_COMM_SIZE( MPI_COMM_WORLD, nthreads, ierr )

  CALL MPI_COMM_RANK ( MPI_COMM_WORLD, rank, ierr )

  width = W % nwlkr / nthreads

  IF( MODULO( calls, nthreads ) == 0 ) …
Run Code Online (Sandbox Code Playgroud)

fortran mpi

1
推荐指数
1
解决办法
94
查看次数

标签 统计

fortran ×2

mpi ×1

openmp ×1

parallel-processing ×1