并发优化笔记

来源:互联网 发布:php培训机构排名 编辑:程序博客网 时间:2024/06/07 17:44

0. 前言

多核并发编程。
当前的计算环境通常是多核CPU、多台服务器,本文简单介绍常用的并发方案。

1. OpenMP

OpenMP适用于统一/共享的内存模型(unified/shared memory),比如多核CPU共享同一个内存,各个核心通过内存分享交换数据。

所以OpenMP通常用于多核处理器计算优化。
OpenMP:线程级(并行粒度);共享存储;隐式(数据分配方式);可扩展性差;

2. MPI

MPI比较复杂,需要程序员自己管理数据分发,并且手动实现各个进程之间的通信、同步。成本相对较大。
MPI通常用于分布式(多台机器)。
MPI:进程级;分布式存储;显式;可扩展性好。

3. OpenCL

OpenCL可能更为合适,虽然有一定的学习成本,但模型比MPI简单,扩展性比OpenMP更好,更关键的,是目前各个并行计算厂商都在支持的实际标准(de facto standard),适用于CPU和GPU平台,虽然转移平台仍需要人工去做一定修改,但OpenMP和MPI只支持CPU平台.特别的,如今一块顶级GPU的浮点数计算能力已经达到了我所在学校2004年建设的半个超级计算机集群的运算能力(50台).

作者:Laughing man
链接:https://www.zhihu.com/question/20188244/answer/24461742
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

4. OpenMP & MPI性能

原创粉丝点击