开始学习openMP遇到的问题
来源:互联网 发布:僵尸新娘知乎 编辑:程序博客网 时间:2024/06/08 02:48
最近开始学习openMP,OpenMP提供对于并行描述的高层抽象降低了并行编程的难度和复杂度,这样程序员可以把更多的精力投入到并行算法本身,而非其具体实现细节。
openMP经常与MPI同时提到,这两个的区别在于openMP针对单机上的多核环境,而MPI主要目的是协调主机间的并行运算,两者抽象的粒度不同。
初次写openMP程序,会遇到很多问题,现在我慢慢的整理汇总自己遇到的问题,给自己做个笔记也可以帮助其他入门人员尽早解决问题。
开发环境linux ubuntu,编译环境gcc
1. openMP自带一些库函数,常用的有omp_get_num_threads, omp_get_thread_num, 这些库函数存在于 omp.h中
在代码开始处添加 #include<omp.h> 即可使用这些库函数
2.使用gcc编译openMP文件
gcc -o XXX YYY.c -fopenmp
gcc -o 选项 将输入的文件yyy.c编译成一个名为xxx的二进制可执行程序
-fopen 参数用来识别openmp文件
3.运行生成的可执行程序 使用命令 ./ ,跟运行shell脚本一样
4.使用#pragma omp parall sections 可以指定不同的部分运行于不同的核,每套sections占用全部的核去分配
eg.
#pragma omp parallel sections
{
#pragma omp section
{printf("1 threadID=%d\n", omp_get_thread_num());}
#pragma omp section
{printf("2 threadID=%d\n", omp_get_thread_num());}
#pragma omp section
{printf("3 threadID=%d\n", omp_get_thread_num());}
#pragma omp section
{printf("4 threadID=%d\n", omp_get_thread_num());}
}
- 开始学习openMP遇到的问题
- 开始Dojo学习以及遇到的问题
- linux+fortran+openmp使用中遇到的一些问题
- 刚开始玩openMP,总结一下遇到的一点小问题。
- 开始学习linux遇到的各种问题,初学者可以看看
- 开始学习《自己动手写操作系统》遇到的小问题.
- 开始学习Hibernate框架遇到的空指针问题
- 自己开始学习到遇到问题及解决方法的记录
- 开始录制&&遇到的问题
- OpenMP: OpenMP学习的几个例子
- OpenMP的学习初步
- OpenMP的学习
- 开始 Power Architecture 设计所遇到的问题
- 开始使用时GWT遇到的问题
- 今天开始使用这个blog来记录我的学习中遇到的问题吧
- 2014年5月5日开始的一周学习中遇到的问题与解答
- openmp并行的计时问题
- 刚学习遇到的问题
- 去掉iframe横向滚动条_iframe滚动条
- STL-multimap用法
- "推技术"与"拉技术"的区别
- 即插即用(plug and play pnp)
- 回家偶记
- 开始学习openMP遇到的问题
- js日期时间函数
- HTML5 HelloWorld
- asp.net控件之间的区别
- dbartisan8.6连接sybase15.0.3错误
- 超过表格宽度用“...”代替的CSS代码
- Linux下Socket编程
- 向表中插入一条记录并返回这条记录的id
- Microsoft .NET Pet Shop 4 介绍和下载