关于Java和Scala以及并行化的问题

the*_*x0r 3 java scala cluster-computing

所以,我有几个关于scala的问题.

1)在scala中编写一个新项目会更快(在性能方面)还是我应该坚持常规java?我要继承的项目已经用java编写,但它可以大规模并行化.此外,这个项目是出于学术目的,所以我有点担心这不是一个好主意.我知道我必须先由我的主管来管理它,但这只是一个想法.

2)为了确保,我可以在我的计算机上编译我的scala代码并在安装了JVM的集群上执行"二进制文件"(编译的字节代码)?

3)如果我要编译继承的java程序,它应该工作吗?它应该更快吗?

(群集使用SGE)

Rex*_*err 6

  1. 这完全取决于您希望将多少工作用于并行化代码(以及算法的并行化程度).Scala使它更容易,但它只在JVM上运行,Java可以使用编译器已知的每个线程技巧.因此,如果您想将精力投入到Java中,它将至少与Scala一样快.(再说一次,如果你像Java一样编写Scala,那么很少有Java会更快的实例,所以基本上它是一个平局.)

  2. 是的,只要您提供scala-library.jar文件(以及任何其他需要的文件,例如,如果您使用Swing,这对于大规模并行化系统来说是一件奇怪的事情).

  3. 编译java字节码几乎从不比在JVM上运行字节码快.JVM比大多数静态编译器更聪明.

  4. 您没有问,但Scala没有内置的Sun Grid Engine支持.例如,您可以使用远程演员设置某些内容,但是您需要做大量的工作.