Hi Alan, great, many thanks! It works as described now.

Cheers,

-Frank

 

From: [email protected] <[email protected]> On 
Behalf Of Alan O'Cais
Sent: Tuesday, 15 November 2022 13:49
To: [email protected]
Subject: Re: [easybuild] CategorizedHMNS: easybuild installation method

 

Hi Frank,

 

I had a copy/paste typo in line 142, fixed now in the gist.

 

Alan

 

On Sun, 13 Nov 2022 at 21:37, Heckes, Frank <[email protected] 
<mailto:[email protected]> > wrote:

Hello Alan,

I added the SitePackage.lua to my environment (see below), but always get the 
following error:

heckes:~/lmodhooks> module cat

/usr/bin/lua5.3: error loading module 'SitePackage' from file 
'/home/heckes/lmodhooks/SitePackage.lua':

        /home/heckes/lmodhooks/SitePackage.lua:142: syntax error near '='

stack traceback:

        [C]: in ?

        [C]: in function 'require'

        /usr/local/lmod/lmod/libexec/utils.lua:1051: in function 
'initialize_lmod'

        /usr/local/lmod/lmod/libexec/lmod:357: in function 'main'

        /usr/local/lmod/lmod/libexec/lmod:582: in main chunk

        [C]: in ?

 

I don’t see an error in the SitePackage.lua file (Also tried different option 
to download and store the file)
The installed ‘OS’ RPM for lua version 5.3. seems to work without the 
SitePackage.lua file. Do you have any idea?

Cheers,

-Frank

 

LMOD RTE:

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

Installation done from the cloned TACC git repo using ./configure 
--prefix=/usr/local --with-lua_include=ans

heckes:~/lmodhooks> module --version

 

Modules based on Lua: Version 8.7.14 (8.7.14-6-ge594a373) 2022-11-01 10:59 
-05:00

    by Robert McLay [email protected] <mailto:[email protected]> 

 

heckes:~/lmodhooks> echo $LMOD_PACKAGE_PATH 

/home/heckes/lmodhooks

heckes:~/lmodhooks> mv hurz SitePackage.lua

heckes:~/lmodhooks> module --version

/usr/bin/lua5.3: error loading module 'SitePackage' from file 
'/home/heckes/lmodhooks/SitePackage.lua':

        /home/heckes/lmodhooks/SitePackage.lua:142: syntax error near '='

stack traceback:

        [C]: in ?

        [C]: in function 'require'

        /usr/local/lmod/lmod/libexec/utils.lua:1051: in function 
'initialize_lmod'

        /usr/local/lmod/lmod/libexec/lmod:357: in function 'main'

        /usr/local/lmod/lmod/libexec/lmod:582: in main chunk

        [C]: in ?

 

From: [email protected] 
<mailto:[email protected]>  <[email protected] 
<mailto:[email protected]> > On Behalf Of Alan O'Cais
Sent: Thursday, 10 November 2022 12:34
To: [email protected] <mailto:[email protected]> 
Subject: Re: [easybuild] CategorizedHMNS: easybuild installation method

 

Here's what some output looks like from using that hook:

 

[ocaisa@gpunode1 hier]$ module cat

To get a list of every module in a category execute:
   $ module category Foo
      
------------------------------------------------------------- List of 
Categories --------------------------------------------------------------
Catchall: This is everything
│  ├──Develop: This is develop
│  │  ├──Tools: This is tools
│  │  │  ├──MPI: This is MPI
│  ├──Math: This is math
│  │  ├──Eigen: This is eigen

[ocaisa@gpunode1 hier]$ module cat develop tools

To learn more about a package and how to load it execute:
   $ module spider Bar
      
------------------------------------------------------------------- Develop 
-------------------------------------------------------------------
scikit-build (1)   └─MPI/OpenMPI (1)   └─Tools/FFTW (1)   └─Tools/scikit-build 
(1)

-------------------------------------------------------------------- Tools 
--------------------------------------------------------------------
FFTW (1)   scikit-build (1)   └─MPI/OpenMPI (1)

 

On Thu, 10 Nov 2022 at 12:30, Alan O'Cais <[email protected] 
<mailto:[email protected]> > wrote:

Hi Frank,

 

On Thu, 10 Nov 2022 at 11:42, Heckes, Frank <[email protected] 
<mailto:[email protected]> > wrote:

The EB hook injecting categories into lmod would be really great thing to have.

 

To be clear, the EasyBuild hook would be a parser hook that would inject 
something like `categories=['Tools','Develop']` into the easyconfig instance. 
With support for `categories` in EasyBuild, this would result in 
`whatis("Category: Tools, Develop")` being injected into the final module file 
(which is something that _only_ Lmod understands right now).

 

Sorry, if I might have overlooked it, but I would be very interested to have a 
look at the lmod – hook you implemented for the lmod subcategories. Could you 
please share a link, if it’s ‘git-able’?

I sent a link to the Lmod hook already, but just in case 
https://gist.github.com/ocaisa/3a72804123923fbd753c1cae12261d9c (requires Lmod 
8.7.14, and modules that already include some `Category`ies).

 

One thing about the EB installation for plain HMNS. The module method to 
install EB instead of utilizing pip is perfectly fine? (as long as the 
environment is set-up correctly)

 

Yes, that's fine. There's no link between how EB was installed and what module 
naming scheme you want to use.

 

Alan

 

Cheers,

-Frank

 

From: [email protected] 
<mailto:[email protected]>  <[email protected] 
<mailto:[email protected]> > On Behalf Of Alan O'Cais
Sent: Wednesday, 9 November 2022 17:27
To: [email protected] <mailto:[email protected]> 
Subject: Re: [easybuild] CategorizedHMNS: easybuild installation method

 

Hi Frank,

 

CategorizedHMNS is not widely used (as far as I know) so you there may be some 
issues lurking there. Plain HMNS is much more widely used and I'd say a better 
choice. Additionally there's a new feature in Lmod that just got released that 
allows us to define multiple categories inside a module file (EasyBuild 
currently only allows one "moduleclass"). I haven't added support for it yet in 
EB but it's something I want to look at really soon.

 

The plan would be that you use an EB hook to inject the categories that you 
want for a piece of software (based off some mapping that you store). This 
would add the categories to the module file and then you use Lmod to search for 
software based on categories. You use `module cat` to see available categories, 
`module cat <category name>` to show software in a category and then `module 
spider <software name>` to see how to load (versions of) that software 
(including any gateway modules). 

 

You can also use Lmod hooks with categories, for example I can imagine wanting 
to hide modules of a certain category for users in certain groups. Personally, 
I've implemented an Lmod hook that allows me to have subcategories so I can 
implement a complete taxonomy.

 

Hope that helps,

 

Alan

 

 

On Wed, 9 Nov 2022 at 16:37, Heckes, Frank <[email protected] 
<mailto:[email protected]> > wrote:

Hi all,

The latest and also the previous tutorials recommends upon using HMNS:

 

‘. . . We strongly recommend using an EasyBuild installation that was  
<https://easybuilders.github.io/easybuild-tutorial/2022-isc22/installation/#method-1-using-pip-recommended>
 installed via "pip install" or "pip3 install" in this part of the tutorial. . 
. .’

(in  
<https://easybuilders.github.io/easybuild-tutorial/2022-isc22/module_naming_schemes/>
 
https://easybuilders.github.io/easybuild-tutorial/2022-isc22/module_naming_schemes/)

 

Does the recommendation also apply to ‘production’ environments or is this only 
a didactical safety set-up to avoid the clashes resulting from eventually 
existing installation with flat namespace or other modules? My question is, can 
I use the module installation procedure for CategorizedHMNS builds without 
running into problems, as long as I follow the donts described in the page 
above ? Many thanks in advance.

Cheers,

-Frank Heckes

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to