FYI: Easybuild block for OpenKIM

Dear all,

I have contributed an EasyBuild configuration for OpenKIM to the Easybuild project. I hope that is OK with you all.

The EasyBuild project is a way to install scientific software in particular in an HPC setting, this should make it easier to install OpenKIM and simulators depending on OpenKIM. Of course the real reason for doing this is that our new cluster installation uses EasyBuild, and I want to make my simulator Asap available with OpenKIM support :slight_smile:

You can see more about EasyBuild here: http://hpcugent.github.io/easybuild/

My merge requests (may change when the EasyBuild guys have had a chance to look them over):
https://github.com/hpcugent/easybuild-easyconfigs/pull/4411
https://github.com/hpcugent/easybuild-easyblocks/pull/1155

If things go as expected, this should make it into the next release of EasyBuild.

Best regards

Jakob

Hi Jakob,

This seems great! Keep in touch and let us know if there is any way we can provide support.

Thanks,

Ryan

Hi Ryan,

My work on the Easybuild block has stalled a bit, but now I am returning to it. The EasyBuild guys have some quite reasonable issues with my suggested EasyBuild block. There are two problems.

First, it queries your database at install time to get a list of all models. This means that installation is not reproducible, since your database may have changed. I can fix that by including a list of models and model drivers in the EasyBuild configuration file.

Second, the models are downloaded by the makefile with “make add-XXX” commands. This means that offline installation will break. Normally, an EasyBuild configuration can separate the download and the installation. Is there some way to download a single tar.gz file with all models and all model drivers? If not, I guess I can generate the URL of an archive to download for each model and each driver, but it will be a lot of tar files to list in the config file.

Best regards

Jakob

PS. I will of course also need to update my block to KIM 1.8.1 :slight_smile:

Hi Jacob,

Great to hear from you.

Hi Ryan,

My work on the Easybuild block has stalled a bit, but now I am returning to it. The EasyBuild guys have some quite reasonable issues with my suggested EasyBuild block. There are two problems.

First, it queries your database at install time to get a list of all models. This means that installation is not reproducible, since your database may have changed. I can fix that by including a list of models and model drivers in the EasyBuild configuration file.

Yes, that sounds reasonable.

Second, the models are downloaded by the makefile with “make add-XXX” commands. This means that offline installation will break. Normally, an EasyBuild configuration can separate the download and the installation. Is there some way to download a single tar.gz file with all models and all model drivers? If not, I guess I can generate the URL of an archive to download for each model and each driver, but it will be a lot of tar files to list in the config file.

For licensing reasons, we do not distribute a single all-inclusive tarball of models and model drivers. If you have a list of the items a simple script should be easy to put together that will grab them all via wget or curl...

The cononical purl we have defined for kim items is

https://openkim.org/download/KIM_ID.ext

where KIM_ID is of the form CC_DDDDDDDDDDDDD_VVV (CC is "MO", "MD" for model and model driver, respectively) See here for more details: https://openkim.org/about-kim-ids/

and ext is the archive extension (one of: txz, tgz, zip)

The api makefile uses the command

wget -q --content-disposition ‘https://openkim.org/download/KIM_ID.ext

to download the items....

Best regards

Jakob

PS. I will of course also need to update my block to KIM 1.8.1 :slight_smile:

The latest is actually 1.8.2 :slight_smile:

Let me know if anything is not clear or you have further questions.

Cheers,

Ryan

For licensing reasons, we do not distribute a single all-inclusive tarball of models and model drivers. If you have a list of the items a simple script should be easy to put together that will grab them all via wget or curl…

I can see the challenge here. You cannot distribute GPL code and CDDL code in the same tarball. Actually, I am not even sure I am allowed to use OpenKIM in Asap, since Asap is LGPL and the CDDL was designed to prevent Sun’s Solaris code from making it into the GPL Linux Kernel.

I handle it by making OpenKIM support optional, and something the user has to enable at compile time. So there is no CDDL code in Asap, I do not distribute any OpenKIM code, and it is the user who links the two. Both licenses allow users to do whatever they want as long as they do not redistribute. I am sure any license lawyer will shoot this argument down in 25 milliseconds, since there are #ifdef’ed OpenKIM calls in at least one Asap module. But I expect that you guys are not going to sue me :slight_smile:

But this could be a serious obstacle for OpenKIM adoption. Large projects may be reluctant to take the risk. For such an infrastructure project, the MIT license or some other very permissive license would probably have been a better choice.

The cononical purl we have defined for kim items is

https://openkim.org/download/KIM_ID.ext

I will make a list of such files and include in the EasyBuild. I will let you know how it goes.

Jakob