c语言并行程序设计之路(一)(初探多线程) |
您所在的位置:网站首页 › c语言多线程编程 › c语言并行程序设计之路(一)(初探多线程) |
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 |