具体思路为创建矩阵,给每个进程分配矩阵的不同部分,每个进程根据进程号的不同处理矩阵的不同部分,计算完成后将每个进程的数组发送给一个特定的进程,由该进程合成一个完整的矩阵输出出来。问题是不一定每个进程都能分配到等长的矩阵行数。

首先是创建一个矩阵,这里在创建时使用行数和列数的自定义关系作为随机数种子生成随机数

每个进程根据自己的进程号去取矩阵的不同部分进行计算,不过这里需要考虑不同进程可能取得的行数不相等的情况,所以预留了一个进程用来处理分配给其他进程后剩下的行数,但是这里的预留会有一些问题,但是不影响计算结果,先看计算代码

这里的sta用来判断所有的进程是否可以分配等长的行数,如果等长就会有一个进程什么都不做,如果不等长每个进程都会参与计算,当等长时,输出如下

可以看到出现了stack溢出 ** stack smashing detected ***,这里应该是由于进程size-1并没有进行任何计算,但是scatter也把该进程的内容拷贝到最后的进程里面了,所以将一个什么都没有的数组赋给一个数组会出现问题,但是当每个进程的行数不等长时,最后一个进程用上了,输出则没有问题了,不会出现stack溢出 ** stack smashing detected ***

c语言mpi矩阵乘法,【MPI并行程序】矩阵乘法相关推荐

  1. MPI并行程序-矩阵分块乘法( Matrix multiplication : Two-Demension Method)

    问题引入: 主体思路:(为了尽可能使计算简便,所有的实验矩阵均是方阵) 1.    对于A,B矩阵,首先根据子进程数p将其划分成p块形式相同的小矩阵块,其中每个矩阵块只要求是方阵即可,具体可以是1阶的 ...

  2. MPI并行编程: 矩阵乘法,积分计算,PSPR排序

    简介 MPI(Message-Passing-Interface 消息传递接口)实现并行是进程级别的,通过通信在进程之间进行消息传递.MPI并不是一种新的开发语言,它是一个定义了可以被C.C++和Fo ...

  3. c语言mpi并行程序,高性能计算之并行编程技术MPI并行程序设计(完整版).pdf

    高性能计算之并行编程技术MPI并行程序设计(完整版) 高性能计算之并行编程技术 -- MPI并行程序设计 都志辉 编著 李三立 审阅 陈渝 刘鹏 校对 I 内容提要 本书介绍目前最常见的并行程序- M ...

  4. c语言mpi并行程序,[转]MPI并行程序的调试技巧

    debug一个并行程序(parallel program)向来是件很麻烦的事情(Erlang等functional programming language另当别论),对于像MPI这种非shared ...

  5. MPI并行程序的调试技巧

    原文地址:http://galoisplusplus.gitcafe.com/blog/2013/06/08/mpi-debug-tips/ debug一个并行程序(parallel program) ...

  6. Linux下用eclipse调试C++并行程序(MPI)

    Linux下用eclipse调试C/C++并行程序(单机MPI) 并行调试工具 很多人调试MPI程序都是用print的,这里有一篇介绍的文章:https://segmentfault.com/a/11 ...

  7. MPI并行程序编写与调试(奇偶变换排序)

    MPI并行程序编写与调试(奇偶变换排序) 一.编写MPI并行计算程序 奇偶排序在多线程进行计算代码如下: 关于奇偶排序这里不做过多描述. /** File: mpi_odd_even.c* Purpo ...

  8. MPI并行程序开发设计----------------------------------并行编程模型和算法等介绍

    ---------------------------------------------------------------------------------------------------- ...

  9. 基于MPI的H.264并行编码代码移植与优化

    2010 03 25 基于MPI的H.264并行编码代码移植与优化 范 文 洛阳理工学院计算机信息工程系 洛阳 471023 摘 要 H.264获得出色压缩效果和质量的代价是压缩编码算法复杂度的增加. ...

  10. 串行并行程序在效率上的简单比较

    串行&并行程序在效率上的简单比较 分类: Multi-X 2010-10-15 10:33 1198人阅读 评论(0) 收藏 举报 parallel工作程序开发作业语言测试 开头:     这 ...

最新文章

  1. Exchange 2010正式发布了
  2. BiLSTM+CRF的损失由发射矩阵和转移矩阵计算而得 BiLSTM+CRF命名实体识别:达观杯败走记(下篇
  3. @TransactionalEventListener与@Async实现事务提交后异步处理事件
  4. Some Fiori offline screenshot in Mac
  5. (JAVA)基本数据类型 对象包装类
  6. VMware ESXi 嵌套虚拟化 部署问题总结
  7. color2gray 的实现
  8. 评分卡模型开发(一)--用户数据缺失值处理
  9. C++ Simple Message/Logging Class
  10. Atitit sumdoc index 2019 v6 t56 .docx Atitit sumdoc index s99 目录 1. Zip ver 1 1.1. C:\Users\Adminis
  11. 从技术起源看TD-SCDMA的演进
  12. 2022-2027年中国苹果树种植行业市场全景评估及发展战略规划报告
  13. 日志收集系统Flume笔记(基础版)
  14. 计算机开机硬盘扫描,win7系统开机自动扫描硬盘的原因及解决方法
  15. 【python-02】
  16. Python实现气象天气数据采集与分析【定时邮件发送最新天气提醒+基于时间轴制作Gif天气演变图】
  17. clickhouse-backup 备份恢复测试
  18. Android studio Build时,Download maven-metadata.xml卡住不动的问题
  19. AtCoder Beginner Contest 281 (A-F,口胡G)青大acmer 日常vp
  20. (专升本)Excel(函数)

热门文章

  1. 8.1.4 CSS3文字(1)( 文字阴影和描边、文字排版、自定义文字 )
  2. STC51几种简单的延时函数
  3. VBA Mysql 类
  4. Java面向对象 网络编程 上
  5. Test SRM Level Two: CountExpressions, Brute Force
  6. HDU2024 C语言合法标识符【文本处理】
  7. CCF201512-1 数位之和(100分)【进制+文本】
  8. UVA11428 Cubes【数学+二分】
  9. 电压、电流 —— 常用设备的电压电流
  10. SELinux 初探