Is there a Windows-based molecular dynamics simulation software which is easy to use?
9$\begingroup$ Although it's possible to run molecular dynamics on Windows, if you are serious about computational science it's best to get comfortable with Linux. It costs nothing monetarily. Most high-performance computing platforms (clusters and supercomputers) are Linux-based. Most molecular simulation software and ancillary codes (system building and analysis tools) are developed on Linux. Even where Windows compatibility exists, it is often incomplete (some features are missing) or poorly supported. $\endgroup$– WaterMoleculeJun 7, 2020 at 15:22
1$\begingroup$ Thank you for migrating this question here from Facebook. Now any one who has this question can find it via the internet! $\endgroup$– Cody AldazJun 7, 2020 at 18:57
LAMMPS provides pre-compiled Windows binaries. You can download them here.
Instructions for installing GROMACS on Windows (even if you don't want to use Cygwin!) are here.
- Free, and open-source.
- Long history: First released in 1991, based on an earlier program called GROMOS from 1978.
- Under very active development: For many codes, the majority of the development was done years or decades ago, but the development of GROMACS seems only to have grown, not waned. Last year (2019) seems to have been the most active year of development so far!
- Since the very beginning (decades ago), it was designed to run in parallel (i.e. fast). It now also supports GPUs.
- According to Steve Plimpton, a fator of 2x speed-up in GROMACS compared to LAMMPS is "not surprising" because GROMACS has pairwise interactions implemented in assembly code. Therefore GROMACS might be the fastest free MD code.
- It is primarily a classical MD code, so quantum effects are not the focus. QM/MM is possible, but seems to involve interfaces with other codes such as GAMESS, GAUSSIAN, or CPMD. Codes like DFTB+ and BigDFT might be better when quantum effects are important.
On their own website, they say:
"It is primarily designed for biochemical molecules like proteins, lipids and nucleic acids that have a lot of complicated bonded interactions, but [...] many groups are also using it for research on non-biological systems, e.g. polymers."
So it's certainly possible to run GROMACS for non-biological systems, but it's not their focus.
$\begingroup$ That's interesting they use assembly 😲. I do wonder how that compares to GPU accelerated molecular mechanics/molecular dynamics. Surely it must not be as fast or gpu acceleration wouldn't be as popular $\endgroup$ Jun 7, 2020 at 16:32
2$\begingroup$ @CodyAldaz Apples and Oranges. There's assembly for GPUs and assembly for CPUs. GPU/CPU is hardware and assembly is software. As for "non-assembly GPU acceleration" being popular: That's not because it's faster than assembly on a CPU. It's because you can code non-assembly on a GPU much easier than you can code assembly on a CPU. The popularity in this case is not because of speed but because very few people even know anything about assembly language. $\endgroup$ Jun 7, 2020 at 16:38
$\begingroup$ @NikeDattani actually, given the diversity of GPUs, it'd be too much work to try to write an assembly version for each generation of GPUs of each major vendor. Moreover, it's often not even documented, so while you could write in assembly for Intel HD Graphics, you'd have to use the reverse-engineering efforts of Nouveau to write in (real, not
NVfp) assembly for NVidia GPUs. $\endgroup$– RuslanJun 8, 2020 at 7:38
$\begingroup$ @Ruslan I admit I've never heard of anyone writing assembly for GPUs, but I wanted to make the point that it's possible, and comparing Software to Hardware is Apples to Oranges. $\endgroup$ Jun 9, 2020 at 0:54
1$\begingroup$ ASM code has been removed since GROMACS 4.6 released Jan 2013. Since then GROMACS uses a SIMD library for CPU with even better performance than the ASM version. And for GPUs OpenCL/CUDA is used. $\endgroup$ Jun 12, 2020 at 19:56
Run any Linux program on WSL (Windows Subsystem for Linux)
One interesting alternative is using the Windows Subsystem for Linux (more info at: https://docs.microsoft.com/en-us/windows/wsl/install-win10 ). I know of successful cases where this has been used to install GROMACS (recent versions). I don't have a reason to believe it wouldn't work for other MD software as well. It also has a way of using the GPU with CUDA as in https://developer.nvidia.com/cuda/wsl
Definitely something worth trying, it should be easy enough and we all know how Cygwin can be a pain to setup sometimes.
This would've been a comment if I had enough votes to comment :).
$\begingroup$ WSL is mentioned already in the first comment on the answer of I. Camps. Also, in my answer I provide a link to a page on the GROMACS website which is about installing GROMACS directly on Windows, so I wonder why your colleagues have used WSL for it? Is it faster when running on WSL than on Windows? Or just easier to install (maybe because the libraries like BLAS are easier to install on WSL than windows?)? Ok I see now your last sentence says you wanted to write a comment but didn't have enough rep. Just means you have to ask and answer some more questions!! :) $\endgroup$ Jun 9, 2020 at 6:28
$\begingroup$ As per the GROMACS on windows, it's just my experience that setting up a MS visual studio environment is not a delightful experience (and not even talking about the vendor lock-in that's involved). On the other hand you would also need to take into account some special configurations and limitations, for example as in manual.gromacs.org/documentation/current/install-guide/… I do think it's overall easier using WSL, but I'm far from being a frequent windows user. $\endgroup$– IvanPDec 2, 2020 at 16:38
$\begingroup$ Here is the lead developer of nwchem commenting on performance of the nwchem Windows build (via MinGW) vs just using WSL github.com/conda-forge/nwchem-feedstock/issues/… $\endgroup$ May 28, 2021 at 15:17
OpenMM is a highly efficient molecular dynamics package which can run via Python. Therefore, any way you normally run python can work. For example, via a Jupyter (Ipython) notebook, via a python GUI, Window's PowerShell, Window's subsystem for Linux, etc.
You can download OpenMM via the python manager Anaconda, which makes it very easy to install. For example,
conda install -c omnia openmm
OpenMM, however, is not an input/output type of program but is directed completely through python code. This is also known as an Application Programming Interface (API).
This is good because you know exactly what is going on and have more finer control. But that also does require you know what you're doing more. There are several code bases out there that attempt to create easier "wrappers" around the python. For example, see https://github.com/leeping/OpenMM-MD
$\begingroup$ +1. I see on their website that they have a python API and a C++ API. I was surprisingly unable to find a list of dependencies though. Does it rely on OpenBLAS? At least in 2016 I remember working with some people that were trying to install their in-house software on Windows and the OpenBLAS dependency was the toughest part for them. $\endgroup$ Jun 7, 2020 at 15:08
$\begingroup$ Idk much about the C++ version. But the magic of the python Anaconda install is that all of that is automatically taken care of. If working on a shared cluster it's normally required to create a virtual environment in conda like
conda create --name your_env_nameso that you can install stuff. But other than that it's trivial $\endgroup$ Jun 7, 2020 at 15:13
$\begingroup$ Things have certainly got better. In 2016 I no longer had my own laptop so Bob LeRoy gave me his 2011 MacBook Pro. I could not install python things like this, because to install NumPy(?) I needed "pip" but to install pip I needed at least Python 2.7.9(?), but OSX Lion came with an earlier Python and was also too early for "Homebrew". It was a nightmare and it turned me away from Python and Mac for a long time. Recently I installed my first Python program (MRChem) on a cluster thanks to your help with the virtual environment. It used Pipenv instead-of(?) Conda. $\endgroup$ Jun 7, 2020 at 15:25
$\begingroup$ @NikeDattani MD doesn't usually need BLAS or LAPACK. $\endgroup$ Aug 25, 2020 at 9:59
Run any Linux program from Windows using Cygwin
If you really need running Molecular Dynamics on Windows, you can use Cygwin and port your code from Linux to Windows. Using this, you can test some on them and select which one is easier for you (as it is a personal issue). Be aware that their performance will be drastically affected as Linux is more efficient running jobs (distributing among cores and using memory) than Windows.
4$\begingroup$ On Windows 10 there's also the full Ubuntu subsystem on there. Have you tried that? $\endgroup$ Jun 7, 2020 at 14:11
$\begingroup$ @NikeDattani It works great! Since WFH I've been working on windows subsystem for Linux (WSL). Although I typically use it to remote access Linux servers. $\endgroup$ Jun 7, 2020 at 14:17
1$\begingroup$ +1. As for my experience: I have managed to avoid Cygwin for pretty much all my life. I did have Windows10 with the Ubuntu subsystem until 2017, but one time I ran the LyX GUI from the Ubuntu (because at the time, the latest version of LyX was not compatible with Windows10 yet) and the computer overheated and turned off. Possibly it was the laptop's GPU that overheated. From then on, every day with that laptop was a struggle (fan would very often go crazy and computer would shut down spontaneously). I installed a REAL Ubuntu on the other partition and the laptop no works great even in 2020. $\endgroup$ Jun 7, 2020 at 15:13
1$\begingroup$ @DSVA I wasn't using the GPU for any calculations, the graphics card just had to do something to run the GUI. Anyway even if I stuck only to command line programs, the subsystem didn't seem the same as using pure Linux. It was a pain to access the files, and you're using Windows, so all the disadvantages (and advantages too!) with using Windows come with it. $\endgroup$ Jun 9, 2020 at 0:51
2$\begingroup$ @NikeDattani With both WSL and WSL 2 you can reach the files on Windows drive, and you can manipulate them. In WasL 2 you can safely reach the files on the Linux drive from Windows, too. $\endgroup$– GregJun 11, 2020 at 14:18
A MD simulation software which can run any system but has been particularly developed for the target audience that study biomolecular systems (proteins, lipid bilayers, etc.)
They have multiple pre-compiled versions for running in Windows machines, including versions that can be used in HPCs and GPU based accelaration using CUDA. (You can download CUDA toolkit for Windows from here)
- Win64 (Windows 7, 8, 10, etc.)
- Win64-CUDA (NVIDIA CUDA acceleration)
- Win64-MPI (Windows HPC Server, multi-copy algorithms)
- Win64-MPI-smp-CUDA (HPC Server with CUDA)
You can download these different binaries from here, they're free to use for academic users.
They also have a nice tutorial for starting and running simple MD simulation for their Windows version of NAMD.
The visualization software VMD is also developed by the same group and therefore NAMD has multiple functionalities that can be availed through VMD - like running a MD simulation, analysing MD trajectories from NAMD etc.