openmp的g++并行执行

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
void Test(int n) {
    for(int i = 0; i < 10000; ++i) {
    //do nothing, just waste time
    }   
    printf("%d, ", n);
}

int main(int argc,char* argv[]) {
    #pragma omp parallel for
    for(int i = 0; i < 10; ++i)
    Test(i);
}
 g++ openmp.cpp -fopenmp
0, 3, 6, 4, 9, 1, 7, 5, 2, 8,

时间: 2024-12-15 00:29:58

openmp的g++并行执行的相关文章

OpenMP初步(英文)

Beginning OpenMP OpenMP provides a straight-forward interface to write software that can use multiple cores of a computer. Using OpenMP you can write code that uses all of the cores in a multicore computer, and that will run faster as more cores beco

应用OpenMP的一个简单的设计模式

小喵的唠叨话:最近很久没写博客了,一是因为之前写的LSoftmax后馈一直没有成功,所以在等作者的源码.二是最近没什么想写的东西.前两天,在预处理图片的时候,发现处理200w张图片,跑了一晚上也才处理完一半.早上的时候,出于无奈,花半小时改写了一个简单调用OpenMP的处理程序,用了30个核心,然后一小时不到就处理完了.感慨在多核的时代,即使是简单的程序,如果能支持多核,应该都能节省不少时间. 本文系原创,转载请注明出处~ 小喵的博客:http://www.miaoerduo.com 博客原文:

OpenMP for Android初学记录

1. 资料整理与收集 1.1 国外资料 (1). Wiki上的介绍:http://en.wikipedia.org/wiki/OpenMP (2). OpenMP教程: http://www.llnl.gov/computing/tutorials/openMP (3). 并行计算介绍:https://computing.llnl.gov/tutorials/parallel_comp/ (4). 官方指定参考书:<Using OpenMP>CSDN上的下载链接 1.2 国内资料 (1). O

OpenMP 并行化处理测试

OpenMP 并行化处理测试 #pragma omp parallel for 这条语句是用来指定后面的for循环语句变成并行执行的,将for循环里的语句变成并行执行后效率会不会提高呢?还是测试一 下吧,测试的时候,循环最好大一些,增加计算量,不然程序耗时太短,很难区分. 1 #include <omp.h> 2 #include <stdio.h> 3 #include <sys/time.h> 4 void test() { 5 int a = 0; 6 for(i

OpenMP用法大全

OpenMP基本概念OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计.编译器根据程序中添加的pragma指令,自动将程序并行处理,使用OpenMP降低了并行编程的难度和复杂度.当编译器不支持OpenMP时,程序会退化成普通(串行)程序.程序中已有的OpenMP指令不会影响程序的正常编译运行.在VS中启用OpenMP很简单,很多主流的编译环境都内置了Open

OpenMp多线程编程计时问题

在做矩阵乘法并行化测试的时候,在利用<time.h>的clock()计时时出现了一点问题. 首先看串行的程序: // matrix_cpu.c #include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM 2048 void matrixMul(float *A, float *B, float *C, int M, int K, int N) {     int i, j, k;

openMP的一点使用经验

最近在看多核编程.简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生.按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解多线程的底层知识,从而提高编程效率.这两天关注的多核编程的工具包括openMP和TBB.按照目前网上的讨论,TBB风头要盖过openMP,比如openCV过去是使用openMP的,但从2.3版本开始抛弃ope

【问底】陈焕生:深入理解Oracle 的并行执行

摘要:Oracle并行执行是一种分而治之的方法.执行一个sql 时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql 响应时间.并行执行是充分利用硬件资源,处理大量数据时的核心技术. Oracle并行执行是一种分而治之的方法.执行一个sql 时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql 响应时间.并行执行是充分利用硬件资源,处理大量数据时的核心技术. 在本文中,在一个简单的星型模型上,我会使用大量例子和sql m

OpenMp实现并行化

前言 昨天,往arm上移植opencv程序,发现运行速度很慢.观察资源监视器发现只有一个核处于高负荷(总共4核),遂考虑到需要多核计算.OpenMp和MPI是常用并行计算库,OpenMP相对简单适合单机多核多线程,MPI适合集群,但复杂. OpenMp是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多处理器程序设计的一套指导性的编译处理方案(Compiler Directive).OpenMP支持的编程语言包括C语言.C++