分子动力学模拟器的最佳语言,将在生产中运行。(Python+Numpy?)

2024-10-01 09:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要建造一个重型分子动力学模拟器。我想知道python+numpy是否是一个好的选择。这将用于生产,所以我想从一门好的语言开始。我想知道我是否应该从像例如斯卡拉. 我们有足够的库支持scala中的科学计算吗?或者其他任何你认为是好的语言/范式组合——以及为什么。如果你真的在过去建立了一些东西,并且是从经验谈的,请提及它,因为它将有助于我收集数据点。在

多谢了!在


Tags: 数据numpy语言模拟器动力学分子scala科学计算
3条回答

高性能的MD实现往往是绝对必要的(与功能相反),大数组的数据胜过面向对象的设计。我曾经和LAMMPS合作过,虽然它有缺点,但它确实能完成任务。一个可能更吸引人的选择是HOOMD,它从一开始就针对带有CUDA的Nvidia GPU进行了优化。HOOMD并没有LAMMPS的所有特性,但是它的接口似乎更好(可以从Python编写脚本),而且性能非常好。在

我实际上已经使用了一个高级面向对象的设计实现了自己的MD代码(java和斯卡拉),并且与流行C++和Cu+/CUDA的流行MD实现相比,发现了令人失望的性能。如今,似乎很少有科学家编写他们自己的MD实现,但是能够修改现有的MD实现是很有用的。在

我相信大多数高性能的MD代码都是用FORTRAN、C或C++等本地语言编写的。现代GPU编程技术也越来越受到青睐。在

像Python这样的语言将允许比本机代码更快的开发。另一方面,性能通常比编译的本机代码差。在

问你一个问题。你为什么要自己写MD代码?外面有很多图书馆。你找不到适合你需要的吗?在

  1. 你为什么要这么做?有许多好的,免费的,分子动力学软件包,你可以使用:LAMMPSGromacsNAMDHALMD所有这些都会立刻浮现在你的脑海中(还有一些不太容易获得的,比如CHARMM,AMBER等等)。修改这些软件以适应你的目的,比编写你自己的软件要容易得多,成千上万的用户和几十个贡献者,将会比你自己写的更好。在
  2. Python + NuMy对于原型来说是好的,但是它比C/C++ + FORTRAN大大慢(是的,即使是与快速链接库连接的NUMY),这也是所有其他人使用的。除非你使用GPU,否则,所有的辛苦工作都是用C/C++写的内核完成的。在

相关问题 更多 >