我将在40岁时成为一名大学生。我将学习IT并计划完成学士学位项目。基本思想是尝试使用神经网络来评估媒体中的偏见。培训数据将是具有众所周知的偏见的政治博客。
我需要的是一种编程语言,它可以在多台联网的机器上并行运行,但不是群集的。我有2台Linux机器和3台运行OS X.我希望如果语言编译成二进制而不是字节码或VM,但我会采取我能得到的。我不需要任何GUI库,因此这不是约束。我在python中编写了大部分编程,但是如果它能使并行执行更容易,我愿意学习另一种语言。有什么建议吗?
答案 0 :(得分:1)
我强烈建议您考虑坚持使用Python。学习一门新语言,在开始处理并行/分布式计算的同时,可能会在你的作品中抛出一个你不需要的扳手。我相信你的时间会更好地用于解决构建你想要的神经网络的问题,而不是学习新语言的特殊性。而且,凭借声誉,Python非常适合您的计划。当然,它确实没有要求它应该编译成二进制文件,但我不确定它来自何处。
当您在没有群集的情况下在多台计算机上编写并行编程时我在想哦,他的意思是分布式编程。我倾向于认为并行计算是分布式计算中的一个利基,部分地由所使用资源的同质性(从程序员的角度来看)来定义。如果硬件的同质性支持这种明显的同质性,那么在视觉和现实之间几乎没有差距。
如果您真正拥有的是各种规格和不同操作系统的各种计算机,并通过非专用网络进行通信,那么我担心您会发现很难为程序员(即为您自己)建立同质性的错觉。最好从开始构建分布式系统。
我完全不同意答案,告诉你选择C和MPI,我认为你可以用Python更快地取得进展。
祝你学习顺利。
哦,如果你不接受我的建议忘记一种新的编程语言,请考虑Haskell和Erlang。
答案 1 :(得分:0)
听起来像一个有趣的项目。然而,横向思考不是基于GPU的系统(即大规模并行)不是更多的原因吗?那么也许像C + CUDA?
我不知道它是否还在,但OCCAM(来自旧的Transputers)被设计成一个并行系统,它的PAR和SEQ结构。我刚读过linux上的this one
答案 2 :(得分:0)
对我来说听起来像 C + MPI 。