Fortran2008及之后版本的主要提升在于混合编程和并行编程,并行编程通过coarray实现,想将Fortran的并行操作变成与数组操作一样简单,将Fortran变为一个天然的并行编程语言。
目前的fortran编译器基本上都内在的支持coarray,只需要在编译选项中添加一些选项就可以编译coarray程序。对gfortran, 添加选项1-fcoarray=lib -lcaf_mpi
对intel fortran添加选项1-coarray
hello_coarray
|
|
结果
执行 cafrun -n 4 hello_coarray 或 mpirun -n 4 hello_coarray ,得到12345total images 4image 1 say hello coarrayimage 2 say hello coarrayimage 3 say hello coarrayimage 4 say hello coarray
coarray
|
|
程序中iv就是一个coarray,可以在每一个镜像中对coarray赋值。
结果
执行 cafrun -n 4 hello_coarray 或 mpirun -n 4 hello_coarray ,得到1234iamges-1:1 2 3 4iamges-2:2 3 4 5iamges-3:3 4 5 6iamges-4:4 5 6 7