位置: 编程技术 - 正文
推荐整理分享linux系统下openmp多线程编程示例(linux open o_direct),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:openmp在linux系统用法,linux open,linux open,linux open,linux openat,linux openmp,openmp在linux系统用法,openmp在linux系统用法,内容如对您有帮助,希望把文章链接给更多的朋友!
关键语法:复制代码代码如下:#inlcude <omp.h>#pragma omp parallel for#pragma omp for reduction(+: 变量)#pragma omp critical//锁{}#pragma omp parallel for private(x,y)//每个线程都独立拷贝x, y变量,互不干扰,如果不设默认是共享变量#pragma omp parallel for schedule(static/dynamic/guided, k)//总工作量划分成n/k块,再多线程调度#pragma omp parallel sections{ #pragma omp section//要保证几个section下的函数之间没有变量依赖 ......... #pragma omp section ......... }#pragma omp parallel{ .......(); #pragma omp master/single //保证只有主线程/某个线程能访问下面的函数,区别是使用master没有barrier珊障,single的话先完成的线程等待没完成的线程 { } .......}</p><p>#pragma omp barrier/nowait //强制设置珊障/无需等待,如果后续函数对前面的多线程没有依赖,即可使用nowait#pragma omp parallel for firstprivate(变量)/lastprivate(变量) //为每个多线程赋初值/出多线程回到主线程时赋值供主线程使用
还有就是OpenMP的API:
复制代码代码如下:int omp_get_num_threads(); //获取当前使用的线程个数int omp_get_num_threads(2/3/...)//设置要使用的线程个数nt omp_get_thread_num(void);//返回当前线程号int omp_get_num_procs(void);//返回可用的处理核个数
ubuntu下,无需加<omp.h>头文件,只需在编译的时候增添-fopenmp即可。
例如:emacs操作命令如下
复制代码代码如下:emacs omp.c</p><p>#include <stdio.h>int main(){ int rank, size;#pragma omp parallel num_thread(3) private(rank) //num_threads用来控制线程数量//或者使用omp_set_num_threads(3);</p><p> { rank = omp_get_thread_num(); size = omp_get_num_threads(); printf("using %d of %d now.n", rank, size); } return 0;}</p><p>ctrl+x salt+x compilegcc -fopenmp -o omp omp.calt+shift+1 ./omp
中国大陆开源镜像站汇总 1.企业贡献:搜狐开源镜像站:
Linux下删除文件之彻底删除文件(shred) linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm-rf命令即可。直接rm就可以了,不过要加两个参数
在Linux系统下更改桌面分辨率的方法 今天我开始安装centos5.4版本的linux,桌面使用G。桌面---系统---管理----显示里面分辨率只有两个选项**我使用的是PHILIPS纯平
上一篇:linux用户空间获得ns纳秒级时间示例(linux用户空间获取TCP序号)
友情链接: 武汉网站建设