示例要求:在整数A和B之间找到符合条件的值X,使f(X)=C。

示例代码(需要在VS中开启OpenMP支持):

 #include<iostream>
#include<time.h>
#include"omp.h" int f(int i) {
int i4_huge = ;
int j;
int k;
int value;
value = i;
for (j = ; j <= ; j++)
{
k = value / ;
value = * (value - k * ) - k * ;
if (value <= )
{
value = value + i4_huge;
}
}
return value;
} int search(int a, int b, int c)
{
int fi;
int i;
int j; j = -; #pragma omp parallel for num_threads(6)
for (i = a; i <= b; i++)
{
fi = f(i);
if (fi == c)
{
j = i;
break;
}
} return j;
} int main()
{
int j;
int a = ;
int b = ;
int c = ;
double wtime; clock_t start, finish;
double totaltime;
start = clock(); j = search(a, b, c); finish = clock();
totaltime = (double)(finish - start) / CLOCKS_PER_SEC;
std::cout << "\n search运行时间为" << totaltime << "秒!" << std::endl;
system("pause");
return ;
}

并行算法的加速情况:

加速前:

加速后:

基于OpenMP的C++并行编程简单示例的更多相关文章

  1. OpenMP共享内存并行编程详解

    实验平台:win7, VS2010 1. 介绍 平行计算机可以简单分为共享内存和分布式内存,共享内存就是多个核心共享一个内存,目前的PC就是这类(不管是只有一个多核CPU还是可以插多个CPU,它们都有 ...

  2. Linux网络编程简单示例

    linux 网络编程是通过socket(套接字)接口实现,Socket是一种文件描述符,socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭& ...

  3. 【java】网络socket编程简单示例

    package 网络编程; import java.io.IOException; import java.io.PrintStream; import java.net.ServerSocket; ...

  4. Linux 编程简单示例代码

    Linux进程管理 编辑a.c 文件 #include <stdio.h> #include <unistd.h> int main() { printf( "Mes ...

  5. 并行编程OpenMP基础及简单示例

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

  6. 【并行计算】基于OpenMP的并行编程

    我们目前的计算机都是基于冯偌伊曼结构的,在MIMD作为主要研究对象的系统中,分为两种类型:共享内存系统和分布式内存系统,之前我们介绍的基于MPI方式的并行计算编程是属于分布式内存系统的方式,现在我们研 ...

  7. OpenMP并行编程

    什么是OpenMP?“OpenMP (Open Multi-Processing) is an application programming interface (API) that support ...

  8. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  9. C++ OpenMp的并行编程

    基于OpenMp的并行编程 功能:并行处理比较耗时的for循环 在OpenMP中,对for循环并行化的任务调度使用schedule子句来实现: 使用格式:schedule(type[,size]) t ...

随机推荐

  1. python3和pip3安装和问题解决

    python3安装前,最好先安装下依赖包: yum install -y openssl-devel yum install -y openssl yum install -y zlib-devel ...

  2. J06-Java IO流总结六 《 BufferedReader和BufferedWriter 》

    1. 概念简介 与字节缓冲流BufferedInputStream和BufferedOutputStream对应的,我们还有字符缓冲流BufferedReader和BufferedWriter,顾名思 ...

  3. AsyncTask的前世今生

    先看下Java Threading Framework的类图:        Callable与Runnable类似,差别在Callable具有返回值,共同点是两个都是执行体,一般都抽象为任务处理. ...

  4. zookeeper知识点学习

    单机模式配置: Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是 zkServer.sh 在你执行启动脚本之前,还有几个基本的配置项需要配置一 下,Zookeeper 的配 ...

  5. Netty核心概念(10)之内存管理

    1.前言 之前的章节已经将启动demo中能看见的内容都分析完了,Netty的一个整体样貌都在第8节线程模型最后给的图画出来了.这些内容解释了Netty为什么是一个异步事件驱动的程序,也解释了Netty ...

  6. Spring Boot 日志配置

    Spring Boot 日志配置 默认日志 Logback: 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很 ...

  7. spring boot日志管理配置

    spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback.每种L ...

  8. ES6-let、const和块级作用域

    1.介绍 总的来说,ES6是在ES2015的基础上改变了一些书写方式,开放了更多API,这样做的目的最终还是为了贴合实际开发的需要.如果说一门编程语言的诞生是天才的构思和实现,那它的发展无疑就是不断填 ...

  9. filebeat+ELK日志系统

    架构图 filebat logstash elasticsearch 基于elasticsearch6.3.2 elasticsearch(一) 之 elasticsearch初识 elasticse ...

  10. T-SQL 片段收藏

    存储过程 CREATE PROCEDURE spInsertOrUpdateProduct --有则更新,否则插入 ) , ) , @StdCost MONEY AS IF EXISTS ( SELE ...