欧拉-黎曼函数的K阶近似(OpenMP实现和MPI实现)

目录

  • 欧拉-黎曼函数的K阶近似(OpenMP实现和MPI实现)
    • 问题描述
    • OpenMP代码实现
    • MPI代码实现
  • 注意事项
  • 运行
  • 参考资料

欧拉-黎曼函数的K阶近似(OpenMP实现和MPI实现)

问题描述

在这里插入图片描述

OpenMP代码实现

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <omp.h>#include<time.h>
#include <windows.h>        //window环境下调用Sleep()函数包含此头文件double zeta_approximation(int s, int k)
{double result = 0.0;#pragma omp parallel for reduction(+:result)for (int i = 1; i <= k; i++) {for (int j = 1; j <= k; j++){//result += 1.0 / (pow(n, k) * pow(k, n));result += pow(-1, i+1) / pow(i+j, s);}}return result * pow(2, s);
}int main()
{int s = 20;int k = 3000;clock_t start = 0;clock_t end   = 0;double approximation = 0.0;start = clock();for (int i = 1; i <= k; i++) {for (int j = 1; j <= k; j++){//result += 1.0 / (pow(n, k) * pow(k, n));approximation += pow(-1, i + 1) / pow(i + j, s);}}approximation = approximation * pow(2, s);end = clock();printf("zeta(%d, %d) ≈ %f\n", s, k, approximation);printf("总的cpU时间 = %f\n", (end - start) / (double)CLOCKS_PER_SEC);omp_set_num_threads(4);  // 设置线程数量approximation = 0.0;start = 0;end = 0;start = clock();approximation = zeta_approximation(s, k);end = clock();printf("Zetaop(%d, %d) ≈ %f\n", s, k, approximation);printf("总的CPU时间 = %f\n", (end - start) / (double)CLOCKS_PER_SEC);return 0;
}

MPI代码实现

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <mpi.h>double zeta_approximation(int s, int k, int rank, int num_procs)
{double result = 0.0;int start = rank * (k / num_procs) + 1;int end = (rank + 1) * (k / num_procs);if (rank == num_procs - 1) {end = k;}for (int i = start; i <= end; i++) {for (int j = 1; j <= k; j++) {result += pow(-1, i + 1) / pow(i + j, s);}}return result;
}int main(int argc, char** argv)
{int s = 20;int k = 800;double approximation = 0.0;double total_approximation = 0.0;int rank, num_procs;MPI_Init(&argc, &argv);MPI_Comm_rank(MPI_COMM_WORLD, &rank);MPI_Comm_size(MPI_COMM_WORLD, &num_procs);double start_time = MPI_Wtime();approximation = zeta_approximation(s, k, rank, num_procs);MPI_Reduce(&approximation, &total_approximation, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);double end_time = MPI_Wtime();if (rank == 0) {printf("Zetaop(%d, %d) ≈ %f\n", s, k, total_approximation * pow(2, s));printf("总的CPU时间 = %f\n", end_time - start_time);}MPI_Finalize();return 0;
}

注意事项

关于运行多线程,因为vs2019中只能显示一个线程的程序,所以我们要到cmd中实现多线程程序。

保存一下你的代码,到项目中找到exe程序,如下图。(一定是项目目录x64下的Debug中)

在这里插入图片描述

在路径栏中输入cmd打开dos窗口,输入下面这句话

mpiexec -n 8 demo.exe

8代表8个线程,后面是我的文件名,需要替换为你自己的文件名,回车运行即可。

运行

win10 + vs2019

参考资料

[1] OpenMP和MPI环境配置
[2]
[3]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2821818.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

网站开发--Cookie 和 Session 的工作流程

&#x1f495;"Echo"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;网站开发–Cookie 和 Session 的工作流程 一.Cookie和Session的基本概念 前言:HTTP协议是无状态协议 无状态协议就是指HTTP协议在传输的过程中不会保存上一次交互的状态信息,但是…

CrossOver 24下载-CrossOver 24 for Mac下载 v24.0.0中文永久版

CrossOver 24是一款可以让mac用户能够自由运行和游戏windows游戏软件的虚拟机类应用&#xff0c;虽然能够虚拟windows但是却并不是一款虚拟机&#xff0c;也不需要重启系统或者启动虚拟机&#xff0c;类似于一种能够让mac系统直接运行windows软件的插件。它以其出色的跨平台兼容…

Qt应用软件【测试篇】vargrid内存检查工具

文章目录 vargrid介绍vargrid官网vargrid安装常用命令Valgrind的主要命令vargrid介绍 Valgrind是一个用于构建动态分析工具的框架,能自动检测许多内存管理和线程错误,并详细分析程序性能。Valgrind发行版包括七个成熟工具:内存错误检测器、两个线程错误检测器、缓存和分支预…

、JMETER与它的组件们

os进程取样器 这个取样器可以让jmeter直接调用python写的测试数据 这样就可以调用python写的测试数据给到jmeter进行调用 注意&#xff1a;1建议python返回转json格式dumps一下&#xff1b;2py文件中需要把结果打印出来&#xff0c;可以不用函数直接编写 传到jmeter之后可以用…

【前端素材】推荐优质在线电影院商城电商网页Hyper平台模板(附源码)

一、需求分析 1、系统定义 在线电影商城是指一个通过互联网提供电影服务的平台&#xff0c;用户可以在该平台上浏览电影资源、租借或购买电影&#xff0c;以及观看在线影片。 2、功能需求 在线电影商城是指一个通过互联网提供电影服务的平台&#xff0c;用户可以在该平台上…

作业1-224——P1331 海战

思路 深搜的方式&#xff0c;让它只遍历矩形块&#xff0c;然后在下面的遍历中判断是否出现矩形块交叉&#xff0c;但是很难实现&#xff0c;然后发现可以通过在遍历过程中判断是否合法。 参考代码 #include<iostream> #include<cstdio> using namespace std; …

【算法 - 动态规划】划分整数Ⅰ

在前面的动态规划系列文章中&#xff0c;关于如何对递归进行分析的四种基本模型都介绍完了&#xff0c;再来回顾一下&#xff1a; 从左到右模型 &#xff1a;arr[index ...]从index 之前的不用考虑&#xff0c;只考虑后面的该如何选择 。范围尝试模型 &#xff1a;思考 [L ,R]…

【Web】青少年CTF擂台挑战赛 2024 #Round 1 wp

好家伙&#xff0c;比赛结束了还有一道0解web题是吧( 随缘写点wp(简单过头&#xff0c;看个乐就好) 目录 EasyMD5 PHP的后门 PHP的XXE Easy_SQLi 雏形系统 EasyMD5 进来是个文件上传界面 说是只能上传pdf&#xff0c;那就改Content-Type为application/pdf&#xff0c;改…

【学习记录】Resnet

Resnet的残差块 BasicBlock模块&#xff1a; Resnet的作用 解决梯度消失。网络越深&#xff0c;会导致梯度消失。Resnet可以解决梯度消失的问题。 Resnet的原理 参考视频&#xff1a;https://www.bilibili.com/video/BV1cM4y117ob/?spm_id_from333.337.search-card.all.cl…

unity后期

unity|后处理篇 前言一、Post-Processing 1、 Post-Processing的使用2、Post-Processing后处理效果 抗锯齿①、Ambient Occlusion 环境光遮蔽②、Auto Exposure 自动曝光③、Bloom 辉光/泛光④、Chromatic Aberration | 色差⑤、Color Grading 色调/颜色分级⑥、Depth Of Fiel…

css5定位

css 一.定位1.概念&#xff08;定位定位模式边位移&#xff09;2.静态位移static&#xff08;不常用&#xff09;3.相对定位relative&#xff08;不脱标&#xff09;&#xff08;占位置&#xff09;4.绝对定位absolute&#xff08;脱标&#xff09;&#xff08;不占位置&#x…

内网搭建mysql8.0并搭建主从复制详细教程!!!

一、安装mysql 1.1 mysql下载链接&#xff1a; https://downloads.mysql.com/archives/community/ 1.2 解压包并创建相应的数据目录 tar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local cd /usr/local/ mv mysql-8.2.0-linux-glibc2.28-x86_64/ mysql mkdir…

模型选择与评估

&#x1f6a9; 机器学习的一般流程包括&#xff1a;数据集的准备与预处理、搭建模型、模型训练、模型评估与应用。 在现实任务中&#xff0c;我们往往有多种学习算法可供选择&#xff0c;甚至对同一个学习算法&#xff0c;当使用不同的参数配置时&#xff0c;也会产生不同的模型…

IPD MM流程之业务策略工具:安索夫矩阵

IPD市场管理流程&#xff0c;华为内部称为“MM流程”&#xff08;Market Management&#xff0c;MM&#xff09;。华为市场管理是通过对市场和细分市场的分析&#xff0c;制定细分市场的策略&#xff0c;形成商业计划&#xff0c;把商业计划落实在日常工作当中。MM流程其中一个…

bvh文件,人体骨骼重定向

关于两个bvh文件&#xff0c;人体骨骼重定向&#xff0c;小白记录 1、打开 Motionbuilder &#xff0c;选择 打开特定路径下的bvh文件。 绑定骨骼&#xff08;在绑定骨骼过程中&#xff0c;如果骨骼角度&#xff0c;大小之类的不方便&#xff0c;可以shift键加鼠标拖拽界面&…

Fabric V2.5 通用溯源系统——应用后端GIN框架部分设计

本节对Fabric V2.5 通用溯源系统的应用后端部分做一个简单的介绍,包括目录结构、文件作用、用户注册登录与农产品信息上链过程介绍。此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流…

仿牛客网项目---显示评论和添加评论功能的实现

这篇文章&#xff0c;我来介绍一下我的项目中的另外一个功能&#xff1a;显示评论和添加评论。 其实这两个功能都不怎么重要&#xff0c;我感觉最重要的应该是用户注册登录功能&#xff0c;这个也了解一下&#xff0c;知道这么一回事儿就好。 首先设计DAO层。 Mapper public …

【一】【算法分析与设计】基础测试

排列式 题目描述 7254是一个不寻常的数&#xff0c;因为它可以表示为7254 39 x 186&#xff0c;这个式子中1~9每个数字正好出现一次 输出所有这样的不同的式子&#xff08;乘数交换被认为是相同的式子&#xff09; 结果小的先输出&#xff1b;结果相同的&#xff0c;较小的乘…

Hgame题解(第二星期)

Hgame题解&#xff08;第二星期&#xff09; Web Select More Courses 打开靶机发现是一个登陆页面&#xff0c;根据题目提示下载弱密码字典&#xff0c;通过BP爆破获得用户密码为qwert123 登陆后进入下一个页面&#xff0c;由于学分已满无法选课&#xff0c;所以需要先进行…

AI也来打掼蛋,难道人工智能也能当领导?

引言&#xff1a;探索AI在复杂卡牌游戏中的决策能力 在人工智能&#xff08;AI&#xff09;的研究领域中&#xff0c;游戏被视为现实世界的简化模型&#xff0c;常常是研究的首选平台。这些研究主要关注游戏代理的决策过程。例如&#xff0c;中国的传统卡牌游戏“掼蛋”&#…