LAMMPS package for Windows with Plumed2 support included

After the plumed developers made some effort to improve the portability of their software to Windows and a bit of experimentation and trickery using the Linux-to-Windows cross-compilers on Fedora, I’ve finally managed to put together a LAMMPS binary package for Windows that includes the PLUMED package (in addition to everything else that the released installers have) and the “plumed” executable (for post-processing of data).

I am calling out to folks that have some experience with Plumed and have access to a Windows machine, that are willing to make some tests and can give me some feedback on the functionality and potential issues, so I can address them before committing any changes to be included in the next LAMMPS feature release.

The package installer is at: https://rpm.lammps.org/windows/lammps-testing/LAMMPS-64bit-2023-04-09.exe and you should note that it does not support parallel execution with MPI (but multi-threading using either the KOKKOS or the OPENMP package).

Any feedback, positive or negative, is very welcome.
Thanks in advance for helping out,
Axel.

Thanks for the efforts to make this happen.

However I’m running into an issue with the Windows version. The input file attached below provides an example. It works for LAMMPS on Linux compiled from source code (8 Feb 2023 and plumed 2.8.1, which is the default version downloaded by LAMMPS I think). However, plumed throws an error when running on the Windows version (I cannot understand line: Q6 LABEL=q SPECIES=@mdatoms SWITCH=RATIONAL D_0=25 R_0=0.55 NN=12 D_MAX=27 TIMINGS).

I checked plumed changelog (PLUMED: Version 2.8) and I don’t think anything changed from 2.8.1 to 2.8.2 should break this input script.

Input files:
test.zip (3.9 KB)

The difference between Linux and Windows, however, is that the Plumed lib for Windows was compiled with minimal support for external feature and modules, while the Linux version (when compiled through LAMMPS) will contain more external features and all compatible optional modules.

I guess that explains, since Q6 is part of the crystallization module in plumed.

Yes, and according to the documentation, that module is considered experimental and thus not included by default.

I have tried to enable some more modules and updated the package installer accordingly at:
https://rpm.lammps.org/windows/lammps-testing/LAMMPS-64bit-2023-04-09.exe
This now can run the provided test example without error.

I have been going over the list of modules and empirically checked which can be enabled and ended up with the following module configuration:

module adjmat off (default-off)                                                                                                                                         
module analysis on (default-on)                                                                                                                                         
module annfunc off (default-off)                                                                                                                                        
module asmjit on (always)                                                                                                                                               
module bias on (default-on)                                                                                                                                             
module blas on (always)                                                                                                                                                 
module cltools on (default-on)                                                                                                                                          
module colvar on (default-on)                                                                                                                                           
module core on (always)                                                                                                                                                 
module crystallization on (default-off)                                                                                                                                 
module dimred off (default-off)                                                                                                                                         
module drr on (default-off)                                                         
module eds on (default-off)
module fisst off (default-off)                                                      
module function on (default-on)
module funnel on (default-off)
module generic on (default-on)                                                                                                                                          
module gridtools on (always)                                                                                                                                            
module isdb on (default-on)                                                         
module lapack on (always)     
module lepton on (always)                                                           
module logmfd on (default-off)                                                      
module manyrestraints on (default-off)                                              
module mapping on (default-on)                                                                                                                                          
module maze on (default-off) 
module molfile on (default-on)                                                      
module multicolvar on (default-on)
module opes on (default-off)                                                        
module pamm off (default-off)     
module piv off (default-off)    
module reference on (always)
module s2cm on (default-off)
module sasa off (default-off)       
module secondarystructure on (default-on)                                                                                                                               
module setup on (default-on)                                                                                                                                            
module tools on (always)                                                            
module vatom on (default-on)                                                        
module ves off (default-off)                                                        
module vesselbase on (always)                                                       
module xdrfile on (default-on) 

Enabling any of the remaining modules causes a compilation failure either due to portability issues or due to missing libraries.

Below is the options configuration:

has asmjit on                                                                                                                                                           
has boost_graph off                                                                                                                                                     
has boost_serialization off                                                                                                                                             
has chdir on                                                                                                                                                            
has cregex off                                                                                                                                                          
has dlopen off                                                                                                                                                          
has execinfo off                                                                                                                                                        
has external_blas off                                                                                                                                                   
has external_lapack off                                                                                                                                                 
has external_molfile_plugins off                                                                                                                                        
has fftw on                                                                                                                                                             
has getcwd on                                                                                                                                                           
has gsl off                                                                                                                                                             
has molfile_plugins on                                                                                                                                                  
has mpi off                                                                                                                                                             
has popen on                                                                                                                                                            
has python off                                                                                                                                                          
has readdir_r off                                                                                                                                                       
has rtld_default off                                                                                                                                                    
has subprocess off                                                                                                                                                      
has zlib on            
1 Like

The next step of adding PLUMED support to the Windows packages has been reached. Now we also have packages supporting either the old MPICH or the newer MSMPI MPI libraries.

https://rpm.lammps.org/windows/lammps-testing/

Unless there are any problems reported, this new setup will be used for future release packages.
I will try to backport it to the stable version now.