我的作业问题指出,我要将矩阵A的一部分和整个B发送给每个工作进程,但是我(以及班上的很多人)不确定这是否需要使用fork()创建进程或者是否可以使用pthreads。问题如下:
编写一个并行程序,使用主进程和p个工作进程计算两个n×n稠密矩阵C = A×B的乘积。
主进程将矩阵A水平划分为p个相等的切片(我们假设p 除n)并将整个矩阵B和A的一个切片发送给每个工作进程 (A分区与工作进程之间存在一对一的映射。)
要使用套接字和SOCK_STREAM
我的作业目前这样运行:
程序将使用两个矩阵并将它们填充为随机值,然后使用套接字将A和B发送到另一个程序。我创建了一个pthread数组,并将A的一部分和B的整个部分发送到每个线程,最后将乘积矩阵返回到第一个程序。
矩阵的维数在命令行中指定。