我对系统的两个主机和链接存在简单配置。
<link id="1" bandwidth="1Bps" latency="0"/>
任务从一个主机发送到另一个主机:
msg_task_t task = MSG_task_create("name", 1, 1, NULL);
MSG_task_send(task, "worker");
后一个主机在接收任务时计算时间:
XBT_INFO("time %g", MSG_get_clock());
MSG_task_receive(&task, "worker");
XBT_INFO("time %g", MSG_get_clock());
我希望发送任务持续1秒,但我有1.08247:
[worker:worker:(2) 0.000000] [example/INFO] time 0
[worker:worker:(2) 1.082474] [example/INFO] time 1.08247
为什么?
这是因为默认网络模型通过欺骗用户提供的BW和延迟值来考虑在现实中观察到的内容。
检查http://hal.inria.fr/hal-00646896/pdf/rr-vality.pdf合理(也在Tomacs出版)。
在代码中,您要阅读https://github.com/simgrid/simgrid/simgrid/simgrid/blob/master/src/surf/network_cm02.cppp#l23您会看到,如果您想要一个可能不是那样的型号代表大型系统,但更易于理解,您应该通过添加-CFG =网络/模型:命令行上的CM02切换到CM02。