失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux配置intel编译器 使用Intel® Fortran编译器编译Coarray程序

linux配置intel编译器 使用Intel® Fortran编译器编译Coarray程序

时间:2018-09-06 03:11:51

相关推荐

linux配置intel编译器 使用Intel® Fortran编译器编译Coarray程序

Coarray是在Fortran 中实现标准化的一种数据共享概念, 它通过使用同一个程序的多个拷贝来实现并行处理。这里的每一个拷贝,也被称image,同时拥有普通局部变量和叫做coarray的共享变量。一个共享变量既可以是一个数组也可以是一个标量,它的存储空间会跨越一个程序对应的所有image。在这种分区全局地址空间(Partitioned Global Address Space – PGAS)模式中,每一个image既可以像访问局部变量一样访问某个共享变量的自有部分,还可以访问位于别的image中的该变量其它部分。

Intel编译器支持在使用共享内存的多核或多处理机系统上运行coarray程序。通过使用可选的许可证coarray程序也可以运行在使用分布式内存的Linux*操作系统或Windows*操作系统的集群上。

在使用Intel® Fortran编译器编译使用coarray的代码时必须使用/Qcoarray (Windows* OS) 或 –coarray(Linux* OS)编译选项打开编译器对coarray语法的支持,否则编译器会无法识别代码中和coarray相关的语法和特性而产生编译错误。

对于下列的编译选项,在一个给定的编译命令行中仅有一个选项有效。如果同时指定了多个选项,那么只有最后一个指定的选项有效。该规则的一个例外是使用single关键字的[Q]coarray选项;当使用该选项时,无论在命令行中的位置如何它都将被优先使用。

使用 [Q]coarray选项并不加任何关键字:等同于在一个节点(共享内存)上运行程序。

使用[Q]coarray选项加上shared关键字:使用底层的Intel® MPI并行库在共享内存的多核或多处理器单个节点上运行程序。

使用[Q]coarray选项加上distributed关键字:需要安装Intel® Cluster Toolkit许可证并使用底层的Intel MPI并行库在多节点环境(多CPU分布式内存系统)运行程序。

使用-coarray=coprocessor (Linux* OS):第一个image在主机上运行,其它image在主机或者目标协处理器上运行。此时使用一个配置文件来制定在何处运行这些image。配置文件通过编译选项-coarray-config-file=filename来指定。

使用[Q]coarray加上single关键字:生成一个不被复制的可执行文件,即运行时只生成一个image(这与使用其它coarray关键字时程序的自我复制特性正好相反)。该用法主要用于程序调试。

运行一个使用Intel®编译器生成的coarray的程序不需要特别的步骤,你只需简单的执行相应的可执行文件即可。底层的并行是通过使用Intel® MPI库来实现的。安装Intel®编译器时会自动安装在共享内存系统上运行所需的Intel® MPI运行时库文件。Intel® Cluster Toolkit会安装需要在分布式内存的系统上运行所需的Intel® MPI运行时库文件。Intel® Fortran 编译器不支持使用其它的MPI实现或与OpenMP同时使用coarray。

缺省情况下coarray程序执行时创建的image数目 等于当前系统的执行单元数目。用户可以在主程序文件的编译命令行中使用[Q]coarray-num-images选项来修改数目。另一种更改执行时image数目的方式是通过使用环境变量FOR_COARRAY_NUM_IMAGES。

Windows*操作系统上的例子

/Qcoarray:shared /Qcoarray-num-images:8:在共享内存系统中创建8个image运行coarray程序

/Qcoarray:shared /Qcoarray-config-file:filename:在共享内存系统中使用MPI配置文件filename运行coarray程序

/Qcoarray:distributed /Qcoarray-config-file:filename:在分布式内存系统中使用Intel MPI配置文件filename运行coarray程序(需要安装Intel Cluster Toolkit许可证)

Linux*操作系统上的例子

-coarray=shared -coarray-num-images=8:在共享内存系统中创建8个image运行coarray程序

-coarray=distributed -coarray-num-images=8:在分布式内存系统中创建8个image运行coarray程序(需要安装Intel Cluster Toolkit许可证)

更多关于如何使用Intel® Fortran编译器编译,运行coarray程序的信息请参见Intel® Fortran编译器14.0用户参考手册的相关内容。

如果觉得《linux配置intel编译器 使用Intel® Fortran编译器编译Coarray程序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。