Dear LAMMPS developers,
Recently, I became curious about how portable LAMMPS is and on how many different operating systems it can be compiled and run. Primary development platform is Linux, and - by now - an overwhelming percentage of HPC clusters runs some form of Linux. So Linux support is a given and with RedHat/Fedora and Ubuntu we are testing on the most popular Linux flavors for clusters and desktops/laptops respectively. Beyond that we have:
- macOS
- Microsoft Windows
- FreeBSD (this is silently assuming that other *BSD flavors are compatible as well)
For those we have people inquiring about or submitting issues on GitHub, so we know that those operating systems are also in use.
Within the last couple of weeks I’ve also tested (in an x86_64 virtual machine):
- Haiku OS (an Open Source clone of BeOS): compilation and running is possible for the base code, but OpenMP and some advanced features lead to “illegal instruction” errors.
- OpenIndiana (an Open Source version of Solaris): porting is in progress as it requires to remove ambiguities when arguments to math functions are integer. Also some variable names clash with predefined macros.
Does anybody know/use some other operating system where LAMMPS is or could be compiled and run?
The biggest challenge that I have come across so far is to a) find an installable ISO image or a ready-to-use virtual machine that are available at no cost, b) boot that operating system in a virtual machine on my desktop and c) install a compiler that supports C++11. On the following two operating systems I have failed:
- Plan9 (could not get it to boot after installation)
- OS/2 Warp (could not find a suitable compiler to install)
I am curious, if I overlooked anything.
P.S.: Perhaps I should have used “How geeky are LAMMPS developers?” as title to get the attention of people who would know.
Update:
The 8 February 2023 release of LAMMPS contains the collected portability updates, specifically:
- Compatibility with Solaris/OpenIndiana
- Compatibility with BeOS/Haiku
- Compatibility for Arch or Gentoo Linux using musl-libc instead of GNU libc