作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 fortran coarray 功能在不同的图像上使用不同大小的数组。
根据 2008/2018 标准,这应该可以通过使用包含可分配的派生类型来实现。我在 macOS Mojave 上使用 gfortran 8.2.0 和 opencoarrays 2.3.1.1 MPI 库。
program Main
implicit none
type :: Array_Type
double precision, dimension(:), allocatable :: values
end type
type(Array_Type), codimension[*] :: array
if(this_image() == 1) then
allocate(array%values(2))
array%values = this_image()
else
allocate(array%values(1))
endif
sync all
print *, this_image(), array[1]%values(:)
sync all
end program
程序编译
gfortran -Wall -fcoarray=lib Main.f90 -lcaf_mpi
当分配的数组被其他图像访问时,一个更简单的示例会导致相同的分割错误。
program Main
implicit none
type :: Array_Type
double precision, dimension(:), allocatable :: values
end type
type(Array_Type), codimension[*] :: array
allocate(array%values(2))
sync all
print *, this_image(), array[1]%values(:)
sync all
end program
最佳答案
解决方案
只要将 MPICH 而不是默认的 OpenMpi 与 OpenCoarrays 一起使用,代码就可以在指定的系统上正常工作。
此外,应该使用 OpenCoarrays 编译器包装器:caf Main.f90
我在 OpenCoarrays GitHub 站点上开了一个问题:https://github.com/sourceryinstitute/OpenCoarrays/issues/625
关于fortran - 为什么具有可分配组件的 coarray 在从不同图像访问时会产生分割错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54067382/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!