How portable is LAMMPS?

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. :wink:

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
2 Likes

Thank you for the hard work, I am just curious about if anyone who does research will use other operating systems.
I have seen some students using MentOS, but I think LAMMPS should work fine.
I remember finding a good website which has many virtual machines(I dont remember the name now).
But here some websites for virtual machine

That seems to be an operating system for teaching how to program an operating system.

Thanks for the links to the VM repositories, most of those seem to be some Linux variants or OSes for “embedded systems”. The rest is mostly already what I had tried and either succeeded with or not.

I was motivated to take a closer look by this commentary article: Unix is dead. Long live Unix! • The Register

It is a bit of a trip down memory lane for me, since over the years I have been running MD simulations and other computations on AIX, Irix, HP-UX, SunOS, Solaris, OSF/1, OS/2, and VMS
and was curious about how many of those are still around and can be run on an x86 system (and then of course the next question is to get everything to work and there are always little details that do need some work, when going to a different operating system, especially with a package as large and diverse as LAMMPS).

From a little more exotic OSes, I was able to compile LAMMPS on Android using an app called Termux. A serial and OpenMP version works, but I wasn’t able to use it with openMPI. However, this appears to be more a openMPI issue than LAMMPS.

2 Likes