我想问你的是:我有一个大源代码的几个步骤(每个步骤都有一个虚拟计算时间和虚拟通信数据,我只采用虚拟,因为我想对延迟进行建模并且我设法测量了它们贯穿整个源代码)。我需要通过使代码在计算时间内休眠并传输与通信数据等效的数据来测试这一点。你能推荐一些相同的配置模型吗?我的目标是最小化程序的整体执行时间,因此显然我想减少进程可能产生的开销。
我想到的最简单的是:
- 通过对根进程进行异步调用,对所有进程进行计算并发送虚拟数据
- 对 Synchronous call 执行相同的操作。
- 假设通信时间与通信数据成线性关系。使用某种算法将以前的任务划分给每个进程(受负载平衡启发)
- 从根进程的第一个任务开始并将数据发送到下一个进程,在该进程上睡眠并显示。
如果这个策略有很大的不同,你能给我一些想法或验证吗?