Ubuntu安装OpenMP及案例

这篇具有很好参考价值的文章主要介绍了Ubuntu安装OpenMP及案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装

  1. 进入官网OpenMP,下载稳定版本。
  2. 解压后进入文件夹,运行./configure --prefix=/home/jame/Public/openmp(自定义路径)
  3. 编译运行
make -j4
sudo make install
  1. 路径配置
sudo vim ~/.bashrc

添加

export PATH="$PATH:/home/jame/Public/openmp/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/jame/Public/openmp/lib"
  1. 案例测试
    进入/home/jame/Downloads/openmpi-4.1.5/examples
    运行(使用四个线程运行)
mpirun -np 4 hello_c

指令教程

直接参考指令教程。
个人测试代码:

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

long long get_microseconds(void){
    // 微秒单位
    struct timespec now;
    clock_gettime(CLOCK_MONOTONIC, &now);
    return now.tv_sec * 1000000 + now.tv_nsec / 1000;
}

int main()
{

	omp_set_num_threads(5);

// ********************************* section test *******************************

#pragma omp parallel sections
{
		
#pragma omp section
{
    for(int i=0;i<2;i++){
        double temp = sin(i*0.01) * cos(i*0.01);
        cout << "1 " << omp_get_thread_num() << endl;
        usleep(1000000);
    }
}
            
#pragma omp section
{
    for(int i=0;i<2;i++){
        double temp = sin(i*0.01) * cos(i*0.01);
        cout << "2 " <<omp_get_thread_num() << endl;
        usleep(1000000);
    }
}

}

// ********************************* static test *******************************

auto start_time = get_microseconds();

#pragma omp parallel for schedule(static)
    for(int i=0;i<8;i++){
        for(int i=0;i<250*250;i++){
            double temp = sin(i*0.01) * cos(i*0.01);
        }
        cout << omp_get_thread_num() << endl;
    }

auto end_time = get_microseconds();
cout << "time: "<< (- start_time + end_time) * 0.000001 << endl;
}

CMakeLists关键配置:文章来源地址https://www.toymoban.com/news/detail-788722.html

set(CMAKE_CXX_FLAGS "-Wall -fopenmp")

find_package(OpenMP REQUIRED)
if(OpenMP_FOUND)
    message(STATUS "########## Found openmp ##########") 
    set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} ${OPENMP_C_FLAGS})
    set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${OPENMP_CXX_FLAGS})
else()
    message(FATAL_ERROR "Openmp not found!")
endif()

到了这里,关于Ubuntu安装OpenMP及案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】OpenMP简介

    1、program作用 #pragma 是 C 和 C++ 语言中的一个预处理指令。它主要用于向编译器发送特定的信息或者指示,以便控制编译过程。#pragma 通常与编译器特定的选项或功能一起使用,因此它的具体行为和实现可能因不同的编译器而有所不同。 #pragma 的语法如下: 其中,directive_name

    2024年02月05日
    浏览(33)
  • 性能优化-OpenMP基础教程(一)

    本文主要介绍OpenMP并行编程技术,编程模型、指令和函数的介绍、以及OpenMP实战的几个例子。希望给OpenMP并行编程者提供指导。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致

    2024年02月03日
    浏览(48)
  • 性能优化-OpenMP基础教程(三)

    本文主要介绍OpenMP并行编程的环境变量和实战、主要对比理解嵌套并行的效果。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 目录 一、OpenMP是什么? 1 OpenMP的主要特点

    2024年02月03日
    浏览(40)
  • MPI和OpenMP实现蒙特卡罗算法

    基本思想 当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。 数学应用: 通常蒙特·卡罗方法通过构造符合

    2024年02月05日
    浏览(39)
  • 高性能计算的矩阵乘法优化 - Python + OpenMP实现

    关于上一节读者某些疑问 :为什么你用进程并行不是线程并行? 回答 :由于Python解释器有GIL(全局解释器锁),在单进程的解释器上有线程安全锁,也就是说每次只能一个线程访问解释器,因此Python在语法上的多线程(multithreads)实现是不会提高并行性能的。 这一点和C

    2024年02月15日
    浏览(69)
  • Windows 中使用 VS Code 编译 MPI 和 OpenMP 程序

    Win10下Microsoft MPI(MSMPI)的下载安装 - 知乎 (zhihu.com) (34条消息) Dev配置MPI运行环境(msmpi)和OpenMP环境(运行通过)_devc++ mpi配置_一点年羊的博客-CSDN博客 (39条消息) ubuntu下mpich的安装与使用_乌班图 可执行程序cpi_Wu_uuuu的博客-CSDN博客 检查gcc版本:gcc --version (GCC从4.2.0版本开始

    2024年02月06日
    浏览(47)
  • 2023在Ubuntu上安装并行版LAMMPS(详细)

    2020 最详细安装 Ubuntu 指南 - 知乎 (zhihu.com) 如何安装 Ubuntu 22.04 LTS 桌面版 (图文教程) ? - 知乎 (zhihu.com) 注意,制作的时候 ubuntu 的 iso 文件不能在 U 盘内 2023 年 5 月份最新版本安装方法指南 准备三个安装包:(下载当前最新版 fftw-3.3.10.tar.gz lammps-stable.tar.gz mpich-4.1.1.tar.gz 在/h

    2024年02月05日
    浏览(39)
  • MacOS M1芯片openmp库出现mach-o file, but is an incompatible architecture (have ‘arm64‘, need ‘x86_64‘问题解决

    报错如下所示: ImportError: dlopen(/Users/Xuan/Developer/DLTools/GPRModule/gprMax/fields_updates_ext.cpython-310-darwin.so, 0x0002): tried: ‘/Users/Xuan/Developer/DLTools/GPRModule/gprMax/fields_updates_ext.cpython-310-darwin.so’ (mach-o file, but is an incompatible architecture (have ‘arm64’, need ‘x86_64’)), ‘/System/Volumes/Preboot/Cr

    2024年02月16日
    浏览(51)
  • 安装windows+两个ubuntu(三系统)成功案例

    在已有的win10+ubuntu18.04双系统基础上,再安装一个ubuntu20.04 1T固态硬盘 + 2T机械硬盘; 固态硬盘上已经安装了win10,机械硬盘上一个分区已经安装了ubuntu18.04。ubuntu18.04开机引导grub安装在固态硬盘,开机会让选择系统。 在固态硬盘上划一块分区再装一个ubuntu20.04; ubuntu的grub启动

    2024年02月02日
    浏览(42)
  • Linux ubuntu安装RStudio

    如果你的实例镜像没有安装Rstudio,可以按照下面的教程进行安装。 确认你的实例的Ubuntu版本 查看实例镜像 Wiki

    2024年02月06日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包