linux系统下openmp多线程编程实例

发布时间:2022-04-29 11:33:55

这篇文章主要介绍了linux系统下openmp多线程编程示例,需要的朋友可以参考下

关键语法:

#inlcude

#pragmaompparallelfor

#pragmaompforreduction(+:变量)

#pragmaompcritical//锁

{

}

#pragmaompparallelforprivate(x,y)//每个线程都*拷贝x,y变量,互不干扰,如果不设默认是共享变量

#pragmaompparallelforschedule(static/dynamic/guided,k)//总工作量划分成n/k块,再多线程调度

#pragmaompparallelsections

{

#pragmaompsection//要保证几个section下的函数之间没有变量依赖

.........

#pragmaompsection

.........

}

#pragmaompparallel

{

.......();

#pragmaompmaster/single//保证只有主线程/某个线程能访问下面的函数,区别是使用master没有barrier珊障,single的话先完成的线程等待没完成的.线程

{

}

.......

}

#pragmaompbarrier/nowait//强制设置珊障/无需等待,如果后续函数对前面的多线程没有依赖,即可使用nowait

#pragmaompparallelforfirstprivate(变量)/lastprivate(变量)//为每个多线程赋初值/出多线程回到主线程时赋值供主线程使用

还有就是OpenMP的API:

intomp_get_num_threads();//获取当前使用的线程个数

intomp_get_num_threads(2/3/...)//设置要使用的线程个数

ntomp_get_thread_num(void);//返回当前线程号

intomp_get_num_procs(void);//返回可用的处理核个数

ubuntu下,无需加头文件,只需在编译的时候增添-fopenmp即可。

例如:emacs*作命令如下

emacsomp.c

#include

intmain()

{

intrank,size;

#pragmaompparallelnum_thread(3)private(rank)//num_threads用来控制线程数量

//或者使用omp_set_num_threads(3);

{

rank=omp_get_thread_num();

size=omp_get_num_threads();

printf("using%dof%dnow.n",rank,size);

}

return0;

}

ctrl+xs

alt+xpile

gcc-fopenmp-oompomp.c

alt+shift+1./omp

【linux系统下openmp多线程编程实例】相关文章:

1.Linux下要如何进行openmp多线程编程

2.Linux*作系统下串口设置及编程

3.PHP多线程编程之管道通信实例

4.在Linux系统下安装QQ的方法

5.Linux系统下基本命令

6.关于Linux下su命令的实例讲解

7.如何在Linux系统下正确使用tar命令

8.linux系统下sudo命令使用方法

看了linux系统下openmp多线程编程实例还看了:
  • Linux下要如何进行openmp多线程编程

    关键语法:代码如下:#inlcude《omp.h》#pragmaompparallelfor#pragmaompforreduction(+:变量)#pragmaompcritical//锁{}#pragmaompparallelforpr...

  • Linux系统如何查看进程的线程数

    Linux系统的进程是由线程组成的,当然Linux进程下的线程数是不固定的,可以是一个进程,也可以是多个进程。本文就来教大家Linux系统如何查看进程的线程数?一、使用命令查看Linux进程的线程数1、使用top命令,具体用法是top-H加...

  • Linux系统下的进程切换的解析

    Linux内核下进程切换Linux切换并没有使用X86CPU的切换方法,Linux切换的实质就是cr3切换(内存空间切换,在switch_mm函数中)+寄存器切换(包括EIP,ESP等,均在switch_to函数中)。这里我们讲述下swit...

  • 安装linux系统基本流程

    已经安装了windows系统,如何安装linux系统?网络上的教程不是太旧就是太乱,这里我说下基本流程:1.安装前,你必须知道你的硬盘里有没有末分区的空间供linux安装使用.如果有的话,可以直接安装,linux会自动认到那个空间.如果没有...

  • 用vmware安装linux系统的过程

    下载VMWare解压后根据提示正触安装VMWare到硬盘中(1)建立虚拟机A.用鼠标左建双击桌面中的"VMwareworkstation"图标,运行虚拟机B.建立一台虚拟机。点击“FILE(文件)”-“NEW(新建)”--“NewVirtu...