Skip to content

Building lammps over time, 2016 until 2024 (testing, and under development)

License

Notifications You must be signed in to change notification settings

converged-computing/lammps-time

Repository files navigation

LAMMPS over Time

Let's try to build LAMMPS, specifically the reax app, over time, and see how it changes. We will use the same Dockerfile with different versions to clone. This top level directory will build lammps base containers, and fuse will provide logic to install fuse and proot for recording.

Building Containers

Let's get the tags. I exported my GitHub token to the environment here. I could just write a Python script, but I'm being lazy.

mkdir -p ./releases
for page in $(seq 1 4)
 do
  curl -L \
    -H "Accept: application/vnd.github+json" \
    -H "Authorization: Bearer ${GITHUB_TOKEN}" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    https://api.github.com/repos/lammps/lammps/releases?page=${page} > releases/${page}.json
    sleep 2
done

Now do builds from the tags. We are first going to try and build as many as we can with cmake. Note that we have added the USER-REAXC and it is needed started at patch_27May2021.

for filename in $(ls ./releases)
  do
  for tag in $(cat ./releases/$filename | jq -r .[].tag_name)
    do
     echo "Building tag $tag"
     docker build -f Dockerfile.cmake --build-arg LAMMPS_VERSION=${tag} -t ghcr.io/converged-computing/lammps-time:${tag} .
     retval=$?
     if [[ "${retval}" != "0" ]]; then
         echo "Tag ${tag} was not successful"     
     else
      docker push ghcr.io/converged-computing/lammps-time:${tag}
     fi
  done
done

Now we need an older cmake (and ubuntu) for this next set (I tried focal and it didn't work).

for tag in $(cat cmake-older-version.txt)
  do
  docker build -f Dockerfile.cmake --build-arg LAMMPS_VERSION=${tag} --build-arg tag=bionic -t ghcr.io/converged-computing/lammps-time:${tag} .
   if [[ "${retval}" != "0" ]]; then
    echo "Tag ${tag} was not successful"     
  else
    docker push ghcr.io/converged-computing/lammps-time:${tag}
  fi
done

Next fall back to building from source method.

for tag in $(cat non-cmake-tags.txt)
  do
  docker build --build-arg LAMMPS_VERSION=${tag} --build-arg tag=bionic -t ghcr.io/converged-computing/lammps-time:${tag} .
   if [[ "${retval}" != "0" ]]; then
    echo "Tag ${tag} was not successful"     
  else
    docker push ghcr.io/converged-computing/lammps-time:${tag}
  fi
done

License

HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.

See LICENSE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614

About

Building lammps over time, 2016 until 2024 (testing, and under development)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages