OpenMP学习总结一

来源:互联网 发布:java图形界面设计 编辑:程序博客网 时间:2024/04/29 16:19

openMP主要适应共享内存体系结构多处理器(多核)。

MPI主要适用分布式体系结构多处理器(单核)。 

并行程序设计的三个要点:
       具体而微的执行任务、线程间的通信和线程间的同步。
 
另外开发并行程序设计语言不太现实,openMP 采用标记嵌入式方式来解决并行程序设计的需要。这样同一段代码既可以在单核机器上运行,也可以毫不修改的在多核机器上运行。
 
       在元素级上,openMP是为共享内存式多处理器机器进行并行计算而设计实现的一个标记集合。除此之外,openMP还是运行时事例和环境变量的一集合。第三,所有这些组合在一起形成了openMP API,它是独立于硬件与操作系统之外的。C、C++环境下只需要在工程文件中加入“omp.h”,就可以引用API了。
 
它包括:为实现并行而设计的控制构造体;为实现线程间通信而设计的数据环境构造体;为协调多线程而设计的同步构造体。
 
       编译标示(C、C++):#pragma omp … 由于openMP的语句被这样的一个前缀所指示,所以它很容易被openMP编译器识别,也很容易被non-openMP编译器所忽略。
       条件编译(C、C++):定义宏、外部共享变量初始化(避免不同的执行环境代码的一致性)。
 
       更高层面上看openMP:控制结构体、数据环境和同步。
       控制结构:一、通过一个标示创建多个线程,每个线程同时做同样的事情。
                     二、openMP构造体可以给不同的线程分配不同的任务。
原创粉丝点击