首页 > 其他分享 >openmp 并行计算

openmp 并行计算

时间:2023-01-16 11:00:12浏览次数:59  
标签:std set cout CXX auto 并行计算 openmp example


​代码在git​

example.cpp

#include <iostream>
#include <omp.h>
#include <string>

int main(int argc, char *argv[]) {
std::cout << "number of available processors: " << omp_get_num_procs()
<< std::endl;
std::cout << "number of threads: " << omp_get_max_threads() << std::endl;

auto n = std::stol(argv[1]);
std::cout << "we will form sum of numbers from 1 to " << n << std::endl;

// start timer
auto t0 = omp_get_wtime();

auto s = 0LL;
#pragma omp parallel for reduction(+ : s)
for (auto i = 1; i <= n; i++) {
s += i;
}

// stop timer
auto t1 = omp_get_wtime();

std::cout << "sum: " << s << std::endl;
std::cout << "elapsed wall clock time: " << t1 - t0 << " seconds" << std::endl;

return 0;
}

CMakeLists.txt

# set minimum cmake version
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)

# project name and language
project(recipe-05 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(OpenMP REQUIRED)

add_executable(example example.cpp)

target_link_libraries(example
PUBLIC
OpenMP::OpenMP_CXX
)


标签:std,set,cout,CXX,auto,并行计算,openmp,example
From: https://blog.51cto.com/u_15202985/6010211

相关文章

  • Openmp Runtime 库函数汇总(上)
    OpenmpRuntime库函数汇总(上)omp_in_parallel,如果当前线程正在并行域内部,则此函数返回true,否则返回false。#include<stdio.h>#include<omp.h>intmain(){pri......
  • 使用OpenMP与AVX优化矩阵乘法
    使用OpenMP与AVX优化矩阵乘法由于课设内容做的太过简(mo)单(yu),于是在去年12月初的时候就计划写三篇博客随笔作为实验报告,前两篇简单介绍了OpenMP和SIMD指令进行铺垫,本篇将会......
  • 使用 QuTrunk+Amazon ParallelCluster3 进行并行计算
    1.丘秉宜;2.邵伟;3.黄文;4.郭梦杰;5.刘利;6.刘波1.亚马逊云科技Hero;2.启科开发者生态负责人;3.启科DEVOPS工程师;4.启科量子资深研发工程师;5和;6.C++高级开发工程师1、概述Qu......
  • openmp在图像处理上面的运用
    //openmptest的测试程序//#include"stdafx.h"voidTest(intn){for(inti=0;i<10000;i++){intj=0;......
  • 【笔记】并行计算和MPI
    并行计算有三个层次。进程级并行:通过网络连接在不同计算节点之间传送数据,内存不共享。线程级并行:共享内存。线程内并行:向量化指令级并行。并行编程的基本方法就是分解和协......
  • Java线程篇(十一):Fork/Join-Java并行计算框架
    并行是指系统内有多个任务同时执行,而并发是指系统内有多个任务同时存在,不同的任务按时间分片的方式切换执行,由于切换的时间很短,给人的感觉好像是在同时执行。 Java在JDK7......
  • OpenMP优化for循环的基础运用
    OpenMP优化for循环的基础运用OpenMP作为多线程并行优化API,其使用方式与C++自带的多线程使用方式有很大的不同。在使用OpenMP时,我们是通过#pragmaomp+字句所组成的命令......
  • 查询openmp的版本
    vimtest.cpp#include<unordered_map>#include<cstdio>#include<omp.h>intmain(intargc,char*argv[]){std::unordered_map<unsigned,std::string>map{{200......
  • OpenMP 入门
    OpenMP入门简介OpenMP一个非常易用的共享内存的并行编程框架,它提供了一些非常简单易用的API,让编程人员从复杂的并发编程当中释放出来,专注于具体功能的实现。openmp主......
  • 4、OpenMP的临界区critical、atomic、omp_lock_t
    基本思想:OpenMP和多线程的互斥锁很像#pragmaompparallelforfor(inti=0;i<num;i++){#pragmaompcritical//#pragmaompcritical(sum)//#pragmaompcritical(i......