Hi Trey,

On 23/08/14 01:20, Trey Dockendorf wrote:
Kenneth,

Thanks for the response, see inline.
Do you have a full list of application, and which
compilers/MPI/BLAS/LAPACK you're aiming for?

Compilers:
   - gcc-4.8.x
   - intel-2013_SP1.3

MPI:
   - MVAPICH2-2.0
   - OpenMPI-1.8.1

BLAS/LAPACK:
   - ACML 6.0.x
   - OpenBLAS-0.2.10
   - LAPACK-3.5.x

I don't know what category these go under as it was my colleague, who 
understands these programs better than I, who built them:

* hdf5
* netcdf
* suitesparse-4.3.1
* octave-3.8.1
* petsc-3.5.1
EasyBuild supports all of these (although maybe not these recent versions, cfr. ACML), except for Octave which is in the works (and has been for a while), see https://github.com/hpcugent/easybuild-easyconfigs/pull/196 and https://github.com/hpcugent/easybuild-easyconfigs/pull/418.



Full list of what is currently in our Lmod instance: 
http://www.brazos.tamu.edu/docs/apps.php

I recognize a lot of these as being supported by EasyBuild already, while some others are new (e.g. towhee, tesseract, ior).

Are you using helper function to avoid having to copy-paste-adjust
largely similar blocks across Lua module files, or because some
functionality is missing in Lmod that you need?

What I'm really asking is: which helper functions would you still
need
if the (Lua) module files are generated automagically for you (e.g.
by
EasyBuild)?
It's both avoiding copy&paste as well as "missing" functionality.  The functionality 
isn't so much missing just that it's part of the "contrib" portion of Lmod and not part of 
the core functionality.

Here's my SitePackage.lua - 
https://gist.github.com/treydock/ca9db395f604f59c1ea5

All the functions could likely be replaced by EB's automagic except the 
following:

logUsage & load_hook - Not yet used but on TODO list , As long as Lua files 
were used and SitePackage loaded, these should work even with EB (if EB used Lua).  
But that's my guess.
Yes, these are triggered by Lmod on some subcommands, the module files are oblivious to them afaik.


setenv_ifunset - Useful as we set runtime variables like OMP_NUM_THREADS=1 
unless a user has already set them, and warn user about the default being set 
(so they can override if they wish).
That's a nice one. EasyBuild could be enhanced easily to support something like this as well, by basically checking a condition before doing a setenv.

That would be nice to have as a feature imho, and it's not specific to Lua module files either.


EasyBuild won't allow you to install stuff as root, since it's
generally
a bad idea (who knows what those crazy scientists have come up with
in
their code ;-)).
Yes, that is too true and a precaution I need to adopt.

The Lua module files are a blocker for now, yes, but we're on that,
as
I've already mentioned to you. I'll bug Petar some more to get our
hands
on his work w.r.t. adding support for generating Lua module files...

Depending on how heavily you would still need your custom helper
functions, we may need to provide hooks that you can tap into to get
your site-specific tweaks included as well, but that shouldn't be too
hard (we already support stuff like --modules-footer that
'modtclfooter'
easyconfig parameter).

Excellent.  By no means should you or Petar feel rushed to push anything 
through on my account.
The likelihood I'll be able to keep pace and make use of any new features is 
very low, which is no way a fault of EB.

Well, we want support for Lua modules files anyway, because of other goodies (properties, families, etc.). Although they are strictly speaking not tied to Lua module files, it makes a lot of sense to only use those with Lua modules, since only Lmod knows about them.


We've been using a dedicated user for building/installing software,
which we share with multiple people. Which is a bad idea, for
practical
purposes. :-)
The proper way to do it is what you're suggesting: give users the
required permissions, and maybe also make them act under a common
'easybuild' (POSIX) group.
Shared accounts I can handle, but our University has strict policies against it.  Of 
course things like "root" are technically shared and their are rules we have to 
follow for that too.  I like the idea of groups, but seems a lot of 'make install' 
scripts may set the permissions and override umask or I simply did not use the EB umask 
feature correctly.

Hmm, if you notice unexpected behavior here, open an issue for it. I don't think many people are actively using these settings, so maybe we got something wrong there.


Consider using `/dev/shm` here.
That is a good idea, and something I overlooked when translating "old" ways 
into EB.

There be dragons here with EasyBuild v1.14.0 (see
https://github.com/hpcugent/easybuild-framework/issues/1011). The
open
issues should hopefully be fixed by EasyBuild v1.15.0 (it's looking
promising, PRs are open for most of the issues, especially the most
important/tricky ones).

Excellent, I'll keep an eye out on that issue.

Check out --set-gid-bit, --sticky-bit and --group too.

Is there a way to make it so that everything I install is read/write by myself and my 
group?  I tried setting --group and that removed all permissions from "other".  
I have --set-gid-bit and --sticky-bit also set with --umask=002 and everything is still 
755 or 644.

If you use --group, you're specifying that the software should *only* be available to people in that group, so it'll remove permissions from 'other', yes.

The functionality required to make everything read/write for user/group is there, but there's no command line option yet to control that.

Right now, EasyBuild generally removes write permissions for group/other, to avoid that nasty mistakes result in disasters (e.g., when you install software for a group of users, you don't want to give them write permissions on the install dirs), see https://github.com/hpcugent/easybuild-framework/blob/master/easybuild/framework/easyblock.py#L1458 . I think you'd want something like --add-permissions=770, or something along those lines?


regards,

Kenneth

Reply via email to