openhpc / ohpc

OpenHPC Integration, Packaging, and Test Repo
http://openhpc.community
Apache License 2.0
854 stars 186 forks source link

EasyBuild and Modules support #110

Open azet opened 8 years ago

azet commented 8 years ago

Hi,

First off; excellent initiative.

I've quite some experience in setting up HPC related compiler and library toolchains and creating packages for various distros. I've been involved in creating so-called 'blocks' for EasyBuild [0] - an excellent Python framework that automatically installs and maintains scientific software packages and toolchains for HPC environments. We've used it in production on multiple systems (SuSE, RHEL and CentOS based) with great success and a lot of man-hours saved on our end.

EasyBuild also has support for 'modules' which are very common on HPC systems, they support the classical Tcl modules as well as Lmod (by TACC, written in Lua, well maintained and a lot of nice features like searching and hooks). EasyBuild automatically generates module-files based on toolchain and version.

It should be fairly easy to produce CentOS packages directly using optimized EasyBuild toolchains. One idea would be to pipeline this via FPM [2] or use Python libraries to create RPMs. What do you think about that idea? I figure this will also save a lot of work that would be duplicated.

By the way, if you guys are currently at SC15: the EasyBuild people will be at the HUST workshop on friday. /cc @boegel @rtmclay

Thanks, Aaron

[0] - https://hpcugent.github.io/easybuild/ [1] - https://github.com/TACC/Lmod [2] - https://github.com/jordansissel/fpm

boegel commented 8 years ago

+1 on this, I wanted to catch @koomie here at SC15 to discuss this, and I will, either at the Intel booth, or at the BoF session planned this Thursday

JohnWestlund commented 8 years ago

Excellent point. We've included EasyBuild and lmod already, but definitely hope to improve the integration of EasyBuld with the rest of the project.

Right now we're using a pretty traditional source+specfile -> build farm(obs) to produce RPMs. But I can see the advantages of the process you described. Definitely gives, at least myself, some things to think about.

boegel commented 8 years ago

@JohnWestlund: I'm the EasyBuild lead dev, and am very familiar with Lmod too, I'll be happy to help out or answer questions

scroogie commented 6 years ago

Hi all,

I'm wondering if this discussion led to some plan for further integration? It seems, for example, that compilers and libraries are not considered for easybuild toolchains or dependencies, so a typical EasyBuild site will probably have all packages that OpenHPC delivers built and installed a second time? Or is there some standard way of integrating the two that we somehow missed?

Greetings André

boegel commented 6 years ago

@scroogie EasyBuild has good support for picking up existing installations, in particular if modules are available for them already, see http://easybuild.readthedocs.io/en/latest/Using_external_modules.html .

It would be nice to include that with OpenHPC releases though, since it may be a bit of puzzle work to make it fit well, and maybe EasyBuild should include ohpc- toolchains out of the box to make the integration even easier.

I wish I had time to dive into this myself... But I'm certainly up for helping out anyone who is willing & able to spend time on this.

boegel commented 6 years ago

@crbaird picked up on this, see https://github.com/easybuilders/easybuild-framework/pull/2392 ...

scroogie commented 6 years ago

Hello Kenneth,

thanks a lot for your feedback.

EasyBuild has good support for picking up existing installations, in particular if modules are available for them already,

Okay, while I knew that there was this possibility, I thought the problem would be in the dependency resolution. It would mean quiet a lot of work modifying all of the easyconfigs for these new external modules, right? It would be much easier then to just uninstall the ohpc packages and build everything based on EasyBuild. I'm wondering what the real idea of OHPC is here. Obviously the packages that OHPC ships are just a very foundation, and as OHPC already ships EasyBuild, I thought it was meant to be used.

@crbaird picked up on this, see easybuilders/easybuild-framework#2392 ...

That is great news, thanks a lot, I will surely follow this!

Greetings Andre

github-actions[bot] commented 1 month ago

A friendly reminder that this issue had no activity for 30 days.