我需要造一个重型分子动力学模拟器。我想知道python+numpy是不是一个好的选择。这将在生产中使用,所以我想从一种好的语言开始。我想知道我是否应该从像eg.scala这样的函数式语言开始。我们是否有足够的库支持scala中的科学计算?或者您认为好的任何其他语言/范例组合--以及原因。如果你确实在过去建立了一些东西,并从经验中谈论,请提及它,因为它将有助于我收集数据点。
非常感谢!
发布于 2011-08-05 05:20:14
高性能的MD实现往往是绝对势在必行的(而不是函数式的),大量的数据胜过面向对象的设计。我使用过LAMMPS,虽然它有它的缺点,但它确实完成了工作。也许更吸引人的选择是HOOMD,它从一开始就针对带有CUDA的Nvidia GPU进行了优化。HOOMD没有LAMMPS的所有功能,但界面看起来更好(它可以从Python编写脚本),而且它的性能非常高。
实际上,我已经使用面向对象的高级设计实现了几次自己的MD代码(Java和Scala),并且发现与经过大量调优并使用C++/CUDA的流行MD实现相比,性能令人失望。如今,似乎很少有科学家编写自己的MD实现,但能够修改现有的实现是有用的。
发布于 2011-08-05 05:16:01
发布于 2011-08-05 05:11:57
我相信大多数高性能的MD代码都是用本地语言编写的,比如Fortran、C或C++。现代GPU编程技术最近也受到青睐。
像Python这样的语言将允许比本机代码更快的开发。另一方面,它的性能通常比编译后的本机代码差。
有个问题要问你。为什么你要写你自己的MD代码?外面有很多很多的库。你就找不到一个适合你需要的吗?
https://stackoverflow.com/questions/6948483
复制相似问题