我正在对几个分布式系统(例如 Chord)进行一些研究,我希望能够仅用我的桌面编写算法并运行分布式系统的模拟。
在模拟中,我需要能够让每个节点独立执行并相互通信,同时手动诱导延迟、丢包、随机崩溃等元素。然后收集数据来估计系统的性能。
经过一番搜索,我发现 SimPy 非常适合我的目标。
SimPy会是适合这项任务的库吗?如果是,对于实施这样的系统有哪些建议/注意事项?
我正在对几个分布式系统(例如 Chord)进行一些研究,我希望能够仅用我的桌面编写算法并运行分布式系统的模拟。
在模拟中,我需要能够让每个节点独立执行并相互通信,同时手动诱导延迟、丢包、随机崩溃等元素。然后收集数据来估计系统的性能。
经过一番搜索,我发现 SimPy 非常适合我的目标。
SimPy会是适合这项任务的库吗?如果是,对于实施这样的系统有哪些建议/注意事项?
我会说是的。
作为我博士学位的一部分,我使用 SimPy(第 2 版)来模拟任意通信网络。你可以在这里看到代码:
https://github.com/IncidentNormal/CommNetSim
但是,它有点密集并且没有很好的记录。此外,它真的应该被翻译成 SimPy 版本 3,因为不再支持 2(并且 3 修复了我在 2 中发现的一系列限制)。
我发现一些有用的概念/想法: