c语言并行程序设计之路(一)(初探多线程)

您所在的位置:网站首页 c语言多线程编程 c语言并行程序设计之路(一)(初探多线程)

c语言并行程序设计之路(一)(初探多线程)

2023-04-22 13:06| 来源: 网络整理| 查看: 265

0.前言

本系列文章记录笔者关于c语言多线程编程的学习过程

平台及相关环境:Windows;MinGW64;DevC++;cmd命令行;4 CPUs

(硬件原因,没有选择Linux,原理应该差不多)

参考书籍:《并行程序设计导论》Peter S.Pacheco 著 邓倩妮 等译

以下程序理解不难,大部分不作注释

1.问题描述

如果\(A=(a_{ij})\)是一个m*n的矩阵,\(x=(x_0,x_1,...,x_{n-1})^T\)是一个n维列向量,矩阵-向量的乘积\(Ax=y\) 是个m维的列向量。\(y=(y_0,y_1,...,y_{n-1})^T\)中的第i个元素\(y_i\)是矩阵A的第i行与x的点积:

\[y_i=\sum^{n-1}_{j=0}a_{ij}x_j \]

2.串行程序 2.1 生成数据

为了与后面并行程序产生对比,利用随机数生成大量数据进行计算。为了简便,矩阵中的元素为整型,范围为[0,9]。

//generate_data.c #include #include #include #define random(a,b) (rand()%(b-a+1)+a) //[a,b] const int m = 20; const int n = 20; const int NUM_OF_MATRIX = 1000; int main() { srand((unsigned)time(NULL)); FILE *mA = fopen("matrix_A","w"); for(int i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3