2

我有一个项目,我需要尽量减少通过网络发送/接收计算数据的影响。

在我的配置中,一个(小)计算机网格将计算大量值(matrix_i^n,每台机器都分配了一大组 i)。然后,这些值将根据计算值的属性通过网络发送到另一台计算机(平均而言,每台计算机接收相同数量的值)。

我想优化计算这些值所需的时间(最大功率 m,预先确定)。为此,我需要选择传输中间结果的最佳方式:

  • 预先计算所有内容,然后将所有值交换到正确的计算机
  • 一旦可用,就将每个值发送到正确的计算机
  • 在计算过程中交换小数据包的混合解决方案

由于网络传输非常慢,我觉得我应该尽快开始传输数据,但我不确定 CPU 上的开销(处理更多异常,因此调度程序需要更多工作)不会影响计算性能.

您是否知道我可以依赖的文档或我可以用来自己进行一些测试的良好基准套件(用 C 编写)?

谢谢

4

1 回答 1

0

网络的 CPU 使用率通常取决于您进行的 I/O 调用量。如果可以的话,设计你的应用程序的方式可以让你轻松调整缓冲区大小,以便进行测试。使用足够的缓冲,10gb/s 毫不费力。

您使用的是什么操作系统?我怀疑你是否会需要它,但 Windows 8 具有注册 I/O,它旨在实现极低的延迟和 CPU 使用率。

于 2012-12-03T16:33:13.253 回答