环境:Ubuntu16.04 LTS 64位机 4核 5300集显
参考:Ubuntu 下 openMP 多核编程学习 的八个实例
背景:课程需要
第一个任务需要实现使用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。
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,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 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常用快捷键1. Ctrl+D: 集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面粘贴出来,如果没有选中的部分,就复制光标所在的行,并在此行的下面粘贴出来。2. Ctrl+空格: 输入代码时按此组合键会列出与之相匹配的类、方法名、成员变量等,起智能提示的作用。在编辑XML文件一样有用。3. Ctrl+向下箭头 或Ctr_alt 63371
[python] view plain copyimport numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy----------------------- arr = np.array([1,2,3], dtype
在游戏关卡选择,道具店之中经常会用到类似于ScrollView的控件,之前用AndEngine引擎的时候简单的实现了一个,(AndEngine滑动菜单传送门),考虑到手头的游戏以后也会用到,就先用cocos2d-x简单的实现了一下!原理非常类似,android中的app(比如微博,qq)也是类似的原理!1.设计思路自定义ScrollView继承于CCLayer,固定其每
LatinIME源码地址:https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/android-5.1.1_r6一、大写模式:Android中字母大写有三种模式:textCapCharacters、textCapWords、textCapSentences,分别对应全大写、单词首字母大写、句子首字母大写..._latinime
大家好,我是连人,本期分享线性时间选择问题。线性时间选择是基于快速排序的一种延申,本质上和快排具有类似的地方。它的目的是找出这个数组中第k小的值。既然只需找出1个值,我们就不必将整个数组排序。通过分治法和分区(partition)可以只将k所在范围内的值进行查找即可。当然可以使用二分法去确立k的范围,但是我的课本上没有所以我们今天不讨论。下面介绍两种算法:随机选择和中位数选择。随机选择随机选择是在..._python 线性时间选择 分治
一、下载最新的软件版本: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...
一、整体介绍UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView。通过简单的测试即可发现UIWebView占用过多内存,且内存峰值更是夸张。WKWebView网页加载速度也有提升,但是并不像内存那样提升那么多。下面列举一些其它的优势:更多的支持HTML5的特性官方宣称的高达60fps的滚动刷新率...
java 类加载 反射 动态代理类加载类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。连接验证 : 是否有正确的内部结构,并和其他类协调一致准备 : 负责为类的静态成员分配内存,并..._类加载 动态代理
今天把opencv自带的几个frontface检测器做了一个效果比较frontface检测器如下:haarcascade_frontalface_alt.xmlhaarcascade_frontalface_alt_tree.xmlhaarcascade_frontalface_alt2.xmlhaarcascade_frontalface_defa_haarcascade_frontalface_alt2.xml和haarcascade_frontalface_default.xml有什么
idea工具,debug模式小技巧,调试正确姿势_idea debug复制对象