我目前正在研究计算机科学研究生学习的主题,我发现了一个相对较大的感兴趣的领域,分布式计算,我想获得更多的信息。在StackOverflow上还有其他几个问题[1,2,3]也解决了类似的问题,但不一定是我要问的问题,特别是与我正在寻找的语言相关的问题。
我在网上搜索过,找到了大量的论文、文章甚至课程,比如罗格斯大学的this课程,描述了分布式计算背后的理论和机制。不幸的是,我发现的大多数这些论文和课程都相当局限于用代码描述分布式计算的实际概念。我正在寻找可以给我介绍分布式计算编程部分的网站。(最好使用C或Python。)
顺便说一句,我想提到的是,这甚至可能更具体地说明并行计算如何适用于分布式计算领域。(我还没上过这门课呢!)
发布于 2012-08-31 10:00:55
我有过在一台机器上使用python内置包的良好体验。我的朋友在一台有128个内核的机器上使用ipython取得了巨大的成功。
现在有不同种类的分布式计算,比如集群、云或互联网上的任何机器,比如folding@home (包括PS3s!)别忘了还有GPU!
一些Python链接:
Various Python libraries
Ipython
Python and Parallel Computing presentation
发布于 2012-08-31 10:13:10
我是一个独家新闻的开发者。
这真的取决于你的个性。如果您更喜欢在前进之前获取理论信息,那么您应该先阅读一些书籍或熟悉相关技术。涵盖该主题大部分内容的书籍列表如下:
用于多核和集群系统的并行编程,Gudula Rünger (Springer-Verlag).
你可能想要熟悉的基于数据的技术是MPI标准(用于多台计算机)和OpenMP (用于单台计算机),以及Python语言中内置的非常好的多处理模块。
如果你喜欢先动手,你应该从基于任务的框架开始,它提供了简单和用户友好的用法。这两个都是创建SCOOP时的最大关注点。您可以使用pip -U scoop进行尝试。在Windows上,你可能希望先使用他们的executable installers安装PyZMQ。您可以查看提供的示例并尝试各种参数,以了解是什么原因导致性能下降或轻松提高。我鼓励您将其与其替代方案进行比较,例如用于类似工作的Celery或用于协程框架的Gevent。如果您喜欢冒险,请不要害羞地测试Python的builtin coroutines functionnalities,并使用各种网络堆栈将它们插入其中。
使用基于任务的框架将减轻理论分析的负担,例如负载平衡实现细节、序列化等,这些都不是微不足道的,并且可能需要很长时间才能调试和工作。它提供了对分布式系统所需的所有层次的理解。开源软件的好处:检查代码以了解底层的机械细节。
https://stackoverflow.com/questions/12207865
复制相似问题