【发布时间】:2014-04-23 10:44:06
【问题描述】:
我正在尝试创建一个分布式应用程序,该应用程序需要网络中的所有计算机同时执行一个事件。
假设我们有两个长度相等的数组。
labels[] = ["label1", "label2", "label3", ...]
duration[] = [0.5, 1.2, 0.1, 0.1, 3.0, ...]
我在一个局域网中有一个主控和 N 个从属。假设数组已复制到所有从站。我现在想要的是在所有这些上运行以下代码。
for i in len(labels):
print labels[i]
sleep(duration[i])
我需要这段代码在客户端上同时启动。
如何同时在所有客户端触发“执行”事件?假设所有客户端都使用同一个 NTP 服务器同步,如果我要求它们在预定义的时间开始,准确性是否合理? duration[] 数组的时间元素可以小至 0.1 秒,我想要合理的同时性。
【问题讨论】:
-
您需要它们的同步程度如何? 0.1 秒? 1秒? 10 秒?
-
我希望它们同步到大约 0.1 秒。正如我所说,每个标签至少会出现 0.1 秒,所以如果您将每个标签视为在屏幕上闪烁的颜色,我想要一种错觉,即所有屏幕都以相同的颜色闪烁相同的持续时间。
-
为了让人类观察者认为事件是同时发生的,它们可能需要比flicker fusion rate 更快地发生;您可能希望在至少 15Hz 内触发它们,并且在良好照明下可能高达 60Hz;相隔 0.067 到 0.017 秒。仍然完全在 NTP 的能力范围内。
标签: python networking distributed distributed-computing