- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的本地集群上,我可以使用此脚本跨 36 个内核并行化我的 OpenMP 代码
#$ -S /bin/bash
#$ -N name_of_project
#$ -o output.out
#$ -pe orte 36
#$ -V
#$ -cwd
export OMP_NUM_THREADS=36
./my_programme
我可以在 4 个节点的 36 个内核上运行 OpenMP c++ 代码...
但是,在作为 XSEDE 一部分的 super 计算设施上:
https://portal.xsede.org/tacc-stampede
我被告知我只能在具有 16 个内核的 1 个节点上运行 OpenMP。我有点困惑,所以如果我想用超过 17 个有效线程并行化我的程序,我必须将我的程序重新编码为 MPI 程序吗?
请问OpenMP程序转换成MPI程序有多难?谢谢。
最佳答案
If I would like parallelize my programme with effectively more than 17 threads, I have to recode my programme into an MPI programme ?
是的,您需要编写一些 MPI 代码才能利用您可以支配的节点。OpenMP 以共享内存架构为目标,您需要一个消息传递库以便在节点之间进行通信。
并行化分布式架构是不同的(您不能像在 OpenMP 中那样进行 for 循环并行化),因为每个节点都有自己的共享内存,并且一个节点无法知道其他节点的状态以同步工作。你必须自己做。
I would like to ask how difficult it is to convert a OpenMP programme into an MPI programme?
MPI 并行化可能非常简单,具体取决于您的应用程序和您编写代码的方式。您应该详细说明您的算法以便进行判断。大行是:
希望你能进入第一组!
最后,乐趣从这里开始,为了获得良好的加速,您将需要找到折衷方案并尝试一些事情,因为您将拥有混合 OpenMP/MPI 并行化。
关于c++ - super 计算机上的 OpenMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32389410/
我是一名优秀的程序员,十分优秀!