Ubuntu环境下大数据学习之OpenMP_ubuntu openmp_Murthy的博客-程序员宅基地

技术标签: OpenMP  个人  

环境:Ubuntu16.04 LTS 64位机 4核 5300集显

参考:Ubuntu 下 openMP 多核编程学习 的八个实例

          omp的一个不错的文章

背景:课程需要

第一个任务需要实现使用openMP完成PI计算

首先要了解一下OpenMP是什么,以及为什么要使用OpenMP----为了获得更好的性能,更大程度上利用计算机潜能

(共享内存:多个核心一个内存)

如何使用OpenMP?还是从hello,world程序开始

实验一:Hello,world!

#include <stdio.h>
#include <omp.h>
int main(){
	#pragma omp parallel      //多线程起点
	    printf("Hello,world. With Thread NO.%d\n",omp_get_thread_num());
	return 0;
}

编译运行一下

gcc -fopenmp hello.c -o hello
./hello

输出结果是

Hello,world. With Thread NO.2
Hello,world. With Thread NO.1
Hello,world. With Thread NO.0
Hello,world. With Thread NO.3

代码说明:

即 #pragma omp parallel句是告诉程序接下来要使用多线程了,然后启动线程的数量等于你处理器个数,我这是4核的所以有四个线程启动,那并行语句就执行了四次。

如果想查看电脑有几个线程可以使用

omp_get_num_procs();//获得处理器个数

上面这个hello,world给了个最基础的东西,我们这次的目的是要做一个并行程序计算PI的值,除了要会使用OpenMP以外还要知道PI是怎么计算出来的。这里贴个官方的指导手册:OpenMP 4.5 API C/C++ Syntax Reference Guide

 

 

 

 

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40007997/article/details/101872784

智能推荐

奔驰绿色制造-程序员宅基地

Author’s Note: This is the Completion report for my appliedaicourse[1] Capstone Project. All work is original and feel free to use/expand upon/disseminate. [Numbers in brackets are citations to the so...

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。-程序员宅基地

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] ==9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6 输出:[1,2]

Android Studio常用快捷键_alt 63371-程序员宅基地

Android Studio常用快捷键1. Ctrl+D: 集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面粘贴出来,如果没有选中的部分,就复制光标所在的行,并在此行的下面粘贴出来。2. Ctrl+空格: 输入代码时按此组合键会列出与之相匹配的类、方法名、成员变量等,起智能提示的作用。在编辑XML文件一样有用。3. Ctrl+向下箭头 或Ctr_alt 63371

pandas常用函数-程序员宅基地

[python] view plain copyimport numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy----------------------- arr = np.array([1,2,3], dtype

Cocos2d-x学习(七):cocos2d-x中ScrollView的简单实现-程序员宅基地

在游戏关卡选择,道具店之中经常会用到类似于ScrollView的控件,之前用AndEngine引擎的时候简单的实现了一个,(AndEngine滑动菜单传送门),考虑到手头的游戏以后也会用到,就先用cocos2d-x简单的实现了一下!原理非常类似,android中的app(比如微博,qq)也是类似的原理!1.设计思路自定义ScrollView继承于CCLayer,固定其每

android latinime分析,Android AOSP输入法(LatinIME)大写判断分析-程序员宅基地

LatinIME源码地址:https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/android-5.1.1_r6一、大写模式:Android中字母大写有三种模式:textCapCharacters、textCapWords、textCapSentences,分别对应全大写、单词首字母大写、句子首字母大写..._latinime

随便推点

c语言 线性时间选择 分治法,分治法:线性时间选择 python_沈冬冬的博客-程序员宅基地

大家好,我是连人,本期分享线性时间选择问题。线性时间选择是基于快速排序的一种延申,本质上和快排具有类似的地方。它的目的是找出这个数组中第k小的值。既然只需找出1个值,我们就不必将整个数组排序。通过分治法和分区(partition)可以只将k所在范围内的值进行查找即可。当然可以使用二分法去确立k的范围,但是我的课本上没有所以我们今天不讨论。下面介绍两种算法:随机选择和中位数选择。随机选择随机选择是在..._python 线性时间选择 分治

linux访问ssl加密ftp,在LINUX系统上创建FTP加密传输SSL(proftpd和vsftpd)_沈冬冬的博客-程序员宅基地

一、下载最新的软件版本:node# wget [url]ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0rc3.tar.gz[/url]安全二、建立FTP组和用户服务器首先建立ROFTPD运行的用户和组:session# groupadd nogroupapp# useradd –g nogroup –d /dev/null –s /sbin/n...

iOS网络3—UIWebView与WKWebView使用详解-程序员宅基地

一、整体介绍UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView。通过简单的测试即可发现UIWebView占用过多内存,且内存峰值更是夸张。WKWebView网页加载速度也有提升,但是并不像内存那样提升那么多。下面列举一些其它的优势:更多的支持HTML5的特性官方宣称的高达60fps的滚动刷新率...

java 类加载 反射 动态代理_类加载 动态代理-程序员宅基地

java 类加载 反射 动态代理类加载类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。连接验证 : 是否有正确的内部结构,并和其他类协调一致准备 : 负责为类的静态成员分配内存,并..._类加载 动态代理

opencv自带人脸检测算法对比_haarcascade_frontalface_alt2.xml和haarcascade_front-程序员宅基地

今天把opencv自带的几个frontface检测器做了一个效果比较frontface检测器如下:haarcascade_frontalface_alt.xmlhaarcascade_frontalface_alt_tree.xmlhaarcascade_frontalface_alt2.xmlhaarcascade_frontalface_defa_haarcascade_frontalface_alt2.xml和haarcascade_frontalface_default.xml有什么