3

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

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

4

3 回答 3

1

我强烈建议你考虑坚持使用 Python。在您开始处理并行/分布式计算的同时学习一门新语言,很可能会在您的工作中扔出您不需要的扳手。我相信你的时间会更好地用于解决构建你想要的神经网络的问题,而不是学习一门新语言的特性。而且,就声誉而言,Python 非常适合您的计划。当然,它确实没有满足您应该编译为二进制的要求,但我不确定它来自哪里。

当您在没有集群的情况下在多台机器上编写并行编程时,我在想哦,他的意思是分布式编程。我倾向于认为并行计算是分布式计算中的一个利基,部分由所使用资源的同质性(从程序员的角度来看)定义。如果硬件的同质性支持这种明显的同质性,那么这种明显的同质性将得到极大的帮助,从而使愿景与现实之间几乎没有差距。

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

我只是不同意告诉你学习 C 和 MPI 的答案,我认为你会用 Python 更快地取得进步。

祝你学业顺利。

哦,如果你不接受我的建议而忘记一门新的编程语言,可以考虑 Haskell 和 Erlang。

于 2012-08-07T13:38:30.877 回答
0

听起来像是一个有趣的项目。然而,横向思考不会是基于 GPU 的系统(即大规模并行)更适合当头一棒吗?因此可能是 C + CUDA 之类的东西?

我不知道它是否仍然存在,但OCCAM(来自旧的 Transputers)被设计为一个并行系统,具有 PAR 和 SEQ 构造。我刚刚 在linux上读过这个

于 2012-07-28T10:45:28.807 回答
0

对我来说,这听起来像是C + MPI

于 2012-08-07T13:20:51.607 回答