并行计算

OpenMP并行编程:threadprivate指令

用OpenMP进行并行编程很有段日子了,一直以为放在common域或者module中的全局变量不能被各进程私有化。最近在和一位叫“嘘嘘”的网友的讨论中,得知common域中的变量是可以私有的。在教程中其实也写的很清楚。

要将全局变量私有话,用threadprivate指令即可实现。格式:

!$O...

Read more



编译和运行内存超过2GB的Fortran程序的解决方法

最近W同学遇到了一个问题,他的程序在分配小数组的时候编译、运行都安然无恙,而一旦数组足够大之后编译就会出现含有

relocation truncated to fit

这种字样的错误信息。最后W和S同学一起调研发现是程序占用内存大于2GB所导致的问题。现在的程序的内存都大于2GB了,不得不感叹下新生…

Read more



OpenMP+MPI混合(Hybrid)并行编程

之前已经分别对openmp共享内存并行编程mpi分布式存储并行编程做了简要介绍。在了解了这两种并行方式之后可以很容易将两种并行方式结合起来进行所谓的混合并行:即多台机器间采用mpi分布式内存并行且每台机器上只分配一个mpi进程,而各台机器又利用openmp进行多线程共享内存并行。这样做的好处是:可…

Read more



MPI并行编程

之前曾简要介绍过openmp共享内存的并行编程。这种并行方式适合在大内存、多核心(cpu)的机器上应用。还有一种并行方式是分布式内存的并行,即利用多台机器(或一台机器上的多个线程,实际意义不大)分工合作,各个机器使用自己的内存存储数据并完成不同的任务。当然不同机器间还需要数据通信。MPI提供了这种分…

Read more



OpenMP并行编程

距离上次写并行计算概述很有段日子了,后续的可能至少有三篇文章需要写。今天花了点时间针对Openmp共享内存的并行编程写了点东西。这里只能提供一点概念和感觉(甚至有可能会误导),需要系统学习Openmp并行计算的朋友可以到文章末尾下载推荐的教材。个人觉得把那书翻翻就足够用啦~

  • 什么是OpenMP?…

Read more



并行计算概述

这篇日志介绍并行计算的极为基础的一部分,为那些准备接触熟悉并行计算的人准备。 其中的描述和理解,大部分是根据我个人非常有限的经验和研究。 所以,可能存在失误。欢迎所有的意见和更正。

  • 什么是传统的串行计算?
    通常,串行计算程序是运行在具有一个核心(或CPU)的单机上。 这种程序被编译和解释成一…

Read more