C中的矩阵乘法多进程

时间:2013-03-12 23:30:28

标签: c multiprocessing matrix-multiplication

我想通过fork使用多个进程进行矩阵乘法,并使用共享内存,每个进程计算一行用于小尺寸矩阵,但是对于更大尺寸的矩阵,不可能为每一行创建进程。所以它应该计算由大小决定的行块。例如,最多10行,它应该为每个进程计算一行,之后说20行,一个进程应该每行计算4行。我无法编程,因为我可以将行号作为进程数。假设我将进程数量保持为8,那么每个块将有N / 8行。但是矩阵的大小应该是8的倍数,并且进程数应该是可变的。假设它有6个CPU,我可以采用多个进程保持不变,即6。什么是正确的方法?我该怎么写呢?

1 个答案:

答案 0 :(得分:0)

这是一些演示矩阵多的示例代码。在pthreads。我几乎立即在搜索引擎中发现了它。它显示了一种执行所描述内容的方法 http://www.cs.arizona.edu/classes/cs422/spring13/examples/matmult-dyn.c

您可能需要对其进行微调以确定最佳方法。

您可能还应该阅读这篇文章: http://aristeia.com/TalkNotes/PDXCodeCamp2010.pdf