Parallel processing 无集群的多机并行编程

Parallel processing 无集群的多机并行编程,parallel-processing,neural-network,Parallel Processing,Neural Network,我将在40岁时成为一名大学生。我将学习它,并计划做一个学士学位项目。其基本思想是尝试使用神经网络来评估媒体中的偏见。培训数据将是带有众所周知偏见的政治博客 我需要的是一种编程语言,它可以在联网但不群集的多台机器上并行运行。我有2台Linux机器和3台运行OS X的机器。我更喜欢这种语言是否编译成二进制而不是字节码或VM,但我会尽我所能。我不需要任何GUI库,所以这不是一个约束。我大部分编程都是用python编写的,但如果能让并行执行更容易,我愿意学习另一种语言。有什么建议吗?听起来是个有趣的项目

我将在40岁时成为一名大学生。我将学习它,并计划做一个学士学位项目。其基本思想是尝试使用神经网络来评估媒体中的偏见。培训数据将是带有众所周知偏见的政治博客


我需要的是一种编程语言,它可以在联网但不群集的多台机器上并行运行。我有2台Linux机器和3台运行OS X的机器。我更喜欢这种语言是否编译成二进制而不是字节码或VM,但我会尽我所能。我不需要任何GUI库,所以这不是一个约束。我大部分编程都是用python编写的,但如果能让并行执行更容易,我愿意学习另一种语言。有什么建议吗?

听起来是个有趣的项目。然而,从侧面考虑,基于GPU的系统(大规模并行)难道不是更像是一个大杂烩吗?因此可能会有类似于C+CUDA的东西


我不知道它是否还存在,但是从旧的传输器被设计成一个并行系统,它的PAR和SEQ结构。我刚刚读到关于Linux

< p>这听起来像C+MPI给我。

我强烈建议你考虑用Python粘贴。在你开始处理并行/分布式计算的同时,学习一门新的语言,可能会给你的工作带来你不需要的麻烦。我相信你最好把时间花在解决构建你想要的神经网络的问题上,而不是学习一门新语言的特性。而且,众所周知,Python非常适合您的计划。当然,它确实没有满足您的要求,即它应该编译成二进制,但我不确定这是从哪里来的

当你在没有集群的情况下编写多台机器上的并行编程时,我想哦,他指的是分布式编程。我倾向于认为并行计算是分布式计算中的一个利基,部分是由程序员对所使用资源的观点的同质性定义的。如果硬件的同质性能够支持这种明显的同质性,那么视觉和现实之间的差距就会很小

如果你真正拥有的是各种不同规格和不同操作系统的计算机,并通过非专用网络进行通信,那么我担心你会发现很难为程序员(即你自己)建立同质化的幻觉,最好从一开始就着手构建一个分布式系统

我完全不同意答案告诉您学习C和MPI,我认为使用Python您将取得更快的进步

祝你学习顺利


哦,如果你不采纳我的建议去忘记一种新的编程语言,考虑Haskell和Erlang。

我考虑过这个问题,但我不确定我的GPU是否能胜任这项任务。如果可以避免的话,我宁愿不投资更多的硬件。尤其是因为我不能升级我所有的机器。我必须买一个新的或从头开始建造一个。我想这不是完全不可能的。而且看起来奥卡姆仍然存在。当前版本是OCCAM pi。这让我在维基百科上找到了一系列并发编程语言。我去看看。谢谢你的帮助!谢谢我实际上在看Erlang。我可能会接受你的建议,继续使用Python。我已经使用它很多年了,它的运行速度可能已经足够满足我的需要了。为什么你认为处理会成为瓶颈?您确定磁盘或网络I/O对您来说并不重要吗?在投入所有的时间和精力之前,我会确保我需要额外的能量。我并不特别认为处理是瓶颈。到目前为止,我用神经网络做的实验需要大量的计算时间。我想把时间缩短一点。但我同意磁盘I/O是一个严重的瓶颈。我的网络速度足够快。我问的原因是实现分布式算法很难。对于您来说,在一台机器上加速程序可能比正确实现分布式版本更容易。您可能还需要考虑使用现有的神经网络实现。对我来说,实施和应用一个非琐碎的项目似乎是一个大的学士学位项目。谢谢约根。你可能是对的。下次我见到我的导师时,我会和他接手的。