我目前正在研究计算机科学研究生的主题,我发现了一个相对较大的兴趣领域,分布式计算,我想获得更多信息。 StackOverflow 上还有一些其他问题 [ 1 , 2 , 3 ] 解决了类似的问题,但不一定是我要问的问题,特别是与我正在寻找的语言相关。
我在网上搜索了很多论文、文章甚至类(class),例如罗格斯大学的 this 类(class),描述了分布式计算背后的理论和机制。不幸的是,我发现的这些论文和类(class)中的大多数都非常局限于用代码描述分布式计算的实际概念。我正在寻找可以介绍分布式计算的编程部分的网站。 (最好使用 C 或 Python。)
作为旁注,我想提一下,这甚至可能更具体地针对并行计算如何适应分布式计算领域。 (我还没有参加任何类(class)!)
免责声明:我是 SCOOP 的开发者。
这真的取决于你的个性。如果你更喜欢在继续之前获得理论信息,你应该先阅读一些书籍或与技术相处。涵盖该主题大部分内容的书籍 list 如下:
- 多核和集群系统的并行编程,作者:Thomas Rauber 和 Gudula Rünger (Springer-Verlag)。
- 并行编程原理,作者:Calvin Lin 和 Lawrence Snyder (Addison-Wesley)
- 并行编程模式 作者:Timothy G. Mattson 等。 (艾迪生 - 卫斯理)
您可能想要熟悉的基于数据的技术是 MPI 标准(适用于多台计算机)和 OpenMP(适用于单台计算机),以及 Python 中内置的相当不错的多处理模块。
如果您喜欢先动手,您应该从基于任务的框架开始,它提供了简单且用户友好的用法。在创建 SCOOP 时,这两个都是最大的焦点。 .您可以使用 pip -U scoop
进行尝试。在 Windows 上,您可能希望首先使用其 executable installers 安装 PyZMQ .您可以查看提供的示例并使用各种参数来轻松了解导致性能下降或提高的原因。我鼓励您将它与它的替代品进行比较,例如 Celery对于类似的工作或Gevent对于协程框架。如果您喜欢冒险,请不要害羞地测试 builtin coroutines functionnalities Python 并为它们插入各种网络堆栈。
使用基于任务的框架将减轻您进行理论分析的负担,例如负载平衡实现细节、序列化等,这些都是非常重要的,可能需要很长时间才能调试和开始工作。它提供了对分布式系统的所有期望级别的理解。开源软件的好处:检查代码以了解引擎盖下的机械细节。