首页 > 其他分享 >OpenMP - 编译制导(二)

OpenMP - 编译制导(二)

时间:2024-03-11 13:57:09浏览次数:19  
标签:num thread get section 编译 omp pragma OpenMP 制导

section制导

OpenMP中的section子句是用于在sections子句内部将代码划分成几个不同的段。当与#pragma omp parallel sections结合使用时,这些代码段会并行处理。每个section由其中的一个线程执行一次,不同的section可以由不同的线程执行。当然,如果一个线程运行得足够快,它可能会执行多个section

#include <iostream>
#include <omp.h>
using namespace std;

int main(int argc, char* argv[]){
    int a[5];
    #pragma omp parallel sections
    {
        #pragma omp section
        {
            a[0] = omp_get_thread_num();
        }
        #pragma omp section
        {
            a[1] = omp_get_thread_num();
        }
        #pragma omp section
        {
            a[2] = omp_get_thread_num();
        }
        #pragma omp section
        {
            a[3] = omp_get_thread_num();
        }
        #pragma omp section
        {
            a[4] = omp_get_thread_num();
        }
    }

    for (int i = 0; i < 5; ++i) {
        cout << "section " << i << " -> " << "thread " << a[i] << endl;
    }
    return 0;
}
section
 section 0 -> thread 0
section 1 -> thread 0
section 2 -> thread 1
section 3 -> thread 2
section 4 -> thread 3
section 6 thread 4
 section 0 -> thread 0
section 1 -> thread 0
section 2 -> thread 1
section 3 -> thread 1
section 4 -> thread 2
section 5 -> thread 3
section 2 thread 4
 section 0 -> thread 0
section 1 -> thread 1

手动阀手动阀

标签:num,thread,get,section,编译,omp,pragma,OpenMP,制导
From: https://www.cnblogs.com/tao-gak567/p/18065919

相关文章

  • 在 Debian 12.5 上编译安装 Nginx
    1.更新系统软件包并安装必要的构建工具和依赖项:sudoaptupdatesudoaptupgradesudoaptinstallbuild-essentialzlib1g-devlibpcre3-devlibssl-devbash2.下载Nginx源码包:wgethttp://nginx.org/download/nginx-x.y.z.tar.gz#替换x.y.z为你要安装的Nginx版本号tar......
  • Linux系统安装程序---编译安装
    Linux系统安装程序---编译安装安装nginx安装编译软件*注:编译软件安装需使用网络yum源[root@localhost~]#yuminstall-ygccpcre-developenssl-develzlib-developensslopenssl-devel已加载插件:fastestmirror,langpacksLoadingmirrorspeedsfromcachedhostfile......
  • 用vcpkg 和vs2022,使用msvc编译器,怎么添加新的依赖库(包含头文件与dll)
    安装vcpkg:如果您还没有安装vcpkg,可以通过VisualStudioInstaller安装。在安装或修改VisualStudio时,选择“C++桌面开发”,然后勾选“vcpkg-C++库管理器”1。集成vcpkg到VisualStudio:在VisualStudio中,通过“工具”菜单选择“NuGet包管理器->程序包管......
  • OpenMP - 编译制导(1)
    编译制导是对程序设计语言的扩展。通过对串行程序添加制导语句实现并行化。编译制导语句由下列几部分组成:制导标识符(#pragmaomp)制导名称(parallel,for,section等)子句(private,shared,reduction,copyin等)并行域制导一个并行域就是一个能被多个线程并行执行的程序段。在......
  • Openwrt编译教程
    注意:不要用root用户进行编译国内用户编译前最好准备好梯子默认登陆IP192.168.1.1密码password编译命令:首先装好Linux系统,推荐Debian11或UbuntuLTS安装编译依赖sudoaptupdate-ysudoaptfull-upgrade-ysudoaptinstall-yackantlr3asciidocaut......
  • Ubuntu 22.04内核代码下载、编译、调试
    1下载Ubuntu Kernel参考《Kernel/Dev/KernelGitGuide-UbuntuWiki》,下载Ubuntu22.04代码:gitclonehttps://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy2修改、编译、安装UbuntuKernel参考《Kernel/BuildYourOwnKernel-UbuntuWiki》。......
  • 蓬莱enclave TEE编译和运行说明
    蓬莱enclave-spmp编译和运行说明蓬莱是一个RISC-VTEE系统,其设计具有安全性,高性能和可扩展性。基于PMP的OpenSBI版本的蓬莱Enclave使用可以参考下文,具体仓库地址为:https://github.com/Penglai-Enclave/Penglai-Enclave-sPMPpenglai编译环境准备创建~/dev目录,将sdk、penglai-e......
  • ubuntu 内核替换为自编译内核
    下载Linux内核源码安装编译时需要使用的工具,按照编译时做出的提示,灵活安装需要的工具链sudoapt-getupdatesudoapt-getinstalllibncurses5-devbuild-essentialkernel-packageopenssl-dev拷贝原内核中的配置文件做为Linux编译使用的默认配置cp/boot/config-x......
  • 编译实践学习 Part1
    本文采用CCBY协议发布。闲话开新坑辣!参考PKU的文档做的。为什么会做这个呢?之前看一位退役OIer的Blog然后发现了这个文档,想着自己退役之后也要做一个。主要是被文档最后的awesome-sysy吸引了。其实之前我在OI里也写过CYaRon!语的编译版本,所以算是有Bear来........
  • windows下体验quarkus原生编译打包
    基础本机是win10GraalVM21.0.2,用的社区版的最新版本,并配置其bin目录加入环境变量Maven3.96,用的最新版本IDEA,本机版本2023.2.5VisualStudio202217.9.2,用的社区版最新版本,quarkus官网提到过VisualStudio2017VisualC++BuildTools,可能2017或更高版本的这个也可以,但是......