问题

第一题,第二问一个4m×4m的方阵与一个4×1的列向量相乘,要求开4个线程运算。矩阵用随机数填充。

代码

四个线程要访问的数据没有重合,不需要加锁,加锁反而就不是并行处理了。
线程初始化后,要等待四个线程都运行结束,计算才全部结束。

#include <iostream>
#include <thread>
#include <mutex>
#include <random>
using namespace std;
constexpr auto m = 150;
int A[m * 4][ m * 4];
int x[m * 4];
int b[m * 4];
void cal(int i) {cout << i << "线程正在运行" << endl;for (int p = i*m; p < (i+1) * m; p++) {b[p] = 0;for (int q = 0; q < 4 * m; q++) {b[p] += A[p][q] * x[q];}}cout << i << "线程运行结束" << endl;
}
int main()
{for (int i = 0; i < 4 * m; i++) {for (int j = 0; j < 4 * m; j++) {A[i][j] = rand() % 21 - 10;}x[i]= rand() % 21 - 10;}thread ts[4];for(int i=0;i<4;i++){ts[i]=thread(cal,i);}for(int i=0;i<4;i++){ts[i].join();}cout << "部分矩阵如下" << endl << "A=" << endl;for (int i = 0; i < 10; i++) {for (int j = 0; j < 10; j++) {cout << A[i][j] << " ";}cout << endl;}cout << "x=" << endl;for (int i = 0; i < 10; i++) {cout << x[i] << endl;}cout << "b=" << endl;for (int i = 0; i < 10; i++) {cout << b[i] << endl;}
}

多线程矩阵乘法运算 c++相关推荐

  1. 哈佛、MIT学者联手,创下矩阵乘法运算最快纪录

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 作为一种基本数学运算,矩阵乘法的运算速度一直是一个重要的研究课题.哈佛 ...

  2. numpy中的*(矩阵对应位置元素相乘)和np.dot(矩阵执行矩阵乘法运算)

    注意矩阵乘法运算中的"*"和"np.dot()"是不一样的. "*"的意思是给定一个大小为(4,3)的矩阵A和一个大小为(4,3)的矩阵B, ...

  3. 关于pytorch中各种矩阵乘法运算的区别

    文章目录 前言 1.torch.mul(X,Y) 2.torch.mm().torch.bmm() 3.torch.matmul().@ 前言 提示:文章只是作为自己学习中的记录.总结,不喜勿喷:同时 ...

  4. python tensorflow学习笔记(五)矩阵乘法运算

    相关公式 [0.36424586843872840.6675075448915823]×[0.134750808390697090.5863696301031353]=[0.44048858] \be ...

  5. 【MatLab】矩阵for循环与矩阵乘法运算速度对比

    在使用matlab进行图像处理的相关操作时,由于图像的维度较大,在对图像中每个元素进行处理时,由于for循环维度较深,我们往往使用矩阵运算来代替for循环进行处理,为了验证for循环与矩阵运算的运算时 ...

  6. numpy 数组、矩阵乘法运算

    为了区分三种乘法运算的规则,具体分析如下: import numpy as np 1. np.multiply()函数 函数作用 数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致 1.1数组场景 ...

  7. 多矩阵乘法运算的动态规划法

    在这里我就不加上代码解释了,我就讲解一下这个公式 这个公式是改题目的核心所在,将该公式理解透彻就能理解矩阵的多矩阵相乘的动态规划的运算. 题目中已经简单介绍了公式,但是我想对没有接触过矩阵的人说这个公 ...

  8. 【Python】数据分析.numpy.矩阵乘法运算

    Python.numpy.矩阵乘法运算 声明:本文章转载于矩阵的乘法运算及Python实现 在讲矩阵相乘之前,我们先看一个生活中的例子. 假如猪肉.牛肉.鸡蛋的价格在一周内不发生变化,记录近三周内的价 ...

  9. 二维数组转置以及矩阵乘法运算问题

    问题一:二维数组转置问题: 代码如下: #include <stdio.h> #include <stdlib.h> /* run this program using the ...

最新文章

  1. 复习04统计学习方法(朴素贝叶斯算法Naive Bayes)---图片版
  2. 制作mac风格 例子(一)
  3. Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin详细步骤
  4. python扑克牌洗牌_python:面向对象基本知识(二)用类方法实现斗地主洗牌发牌...
  5. django-演练-添加老师-form表单方式添加
  6. EasyPR车牌识别学习总结
  7. python接口自动化(二十一)--unittest简介(详解)
  8. 《机器学习与数据科学(基于R的统计学习方法)》——2.8 读取JSON文件
  9. poj 1386 欧拉回路
  10. Class.isAssignableFrom instanceof 区别
  11. What Could Kill Testing?(什么可以终结测试)
  12. html5全景图微信查看,在微信上怎么展示全景图片?
  13. 忆夕阳下的光辉,给我的父亲
  14. 程序人生|五年java 含泪总结,建议小白看
  15. IntelliJ IDEA 2019,从入门到癫狂,图文教程
  16. Mac 搭建本地Apache服务器
  17. Goahead嵌入式linux移植资料整理
  18. 论文笔记:Very deep convolutional networks for large-scale image recognition(VGG)
  19. js 保留两位小数和截取两位小数
  20. 后端服务器网络编程之 IO 模型

热门文章

  1. 正宗PC Unix实验环境
  2. 基于php的织梦cms新闻发布,DedeCms
  3. SQL Server 查询性能优化——覆盖索引(一)
  4. Aspose-Cells结合Apache POI生成excel文件以及转换为pdf
  5. ArcGIS水文分析实战教程(13)流域提取流程
  6. ArcGIS水文分析实战教程(3)DEM数据准备
  7. Struts2中Action的搜素顺序
  8. PHP中include和require的区别详解
  9. Pixel Bender 浅尝
  10. 蛙蛙推荐:在c#使用IOCP(完成端口)的简单示例