【发布时间】:2013-03-12 23:30:27
【问题描述】:
我想通过 fork 使用多个进程进行矩阵乘法,并使用共享内存,每个进程为小型矩阵计算一行,但对于较大的矩阵,不可能为每一行创建一个进程。所以它应该计算一个由大小决定的行块。例如,最多 10 行它应该计算每个进程的一行,然后说对于 20 行,一个进程应该计算每个进程 4 行。我无法对其进行编程,因为我可以将行号作为进程数。假设我将进程数设为 8,那么每个块将有 N/8 行。但是矩阵的大小应该是 8 的倍数,进程数应该是可变的。假设它有 6 个 CPU,我可以采用进程数吗保持不变,即 6。什么是正确的方法?应该怎么写?
【问题讨论】:
-
我觉得在这里用谷歌搜索一下会有很长的路要走,因为这已经做过很多次了。
-
我在 C 中找不到任何示例矩阵乘法程序,它可以描述使用进程和共享内存进行矩阵乘法以及优化它的方法
标签: c multiprocessing matrix-multiplication