【发布时间】:2012-09-16 04:38:31
【问题描述】:
我需要使用多个进程在 C 中实现并发矩阵乘法。我知道因为每个进程都有自己的私有地址空间,所以我将不得不使用某种形式的进程间通信 (IPC)。我环顾四周,找不到许多不使用线程的实现。我想知道是否有人知道解决此问题的最佳方法,无论是使用共享内存、消息传递还是管道?我不是在寻求解决方案,而是如果有人知道,这些方法中的哪一种对矩阵乘法更有效。或者,如果有一个通用的标准方法可以通过多个进程执行此操作?
【问题讨论】:
-
共享内存的优点是可以避免额外的复制操作,而管道则需要复制。
-
你为什么要避免线程?
-
我并没有真正回避它们。我正在编写两个做同样事情的程序。一个 fork 子进程,另一个使用 pthread,以查看效率差异。
标签: c concurrency ipc fork matrix-multiplication