Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel3
outlinefalse
stylenone
typelist
printabletrue

...

0. Define local module command (only once)

To utilize local modules, we suggest creating a bash command such as localmod that contains essential setup within your $HOME/.bashrc. The provided set of commands below will create a local module directory based on LOCALMOD_DIR and then define the localmod command in your $HOME/.bashrc.

...

  • Enable local module by executing the command defined in Step 0localmod

  • Load EasyBuild → module load EasyBuild

  • Check your current EasyBuild configuration → eb --show-config.
    The Note: the installpath should be set to a local directory that you have write permission.

...

  • Execute eb -D --robot-paths=$(pwd) <the-eb-file>.eb to do a short dry run and check for dependencies.

    • If the command run successfully, it will display build status of the software’s dependencies.
      (You could ignore warning like WARNING: Failed to determine toolchain hierarchy for ...)

    • On the other hand, if you get ERROR: Missing dependencies: xxx/yyy-zzz, this means that the EasyConfig file of the library/software name xxx with version yyy using toolchain zzz is missing. You need to get the EasyConfig file for the dependency xxx/yyy-zzz by doing Step 2 and 3 again. That is, you also need to repeatedly do Step 2 and 3 for all unavailable dependencies required by the target software, and put them in the same directory.

  • To install the software, execute

    Code Block
    languagebash
    eb -r --robot-paths=$(pwd) --parallel=1 --trace --tmpdir=$(pwd) <the-eb-file>.eb
Expand
titleMore explanation
  • -D :
    Do a short dry run to check EasyConfig hierarchy. No modules will be installed.

  • --robot-paths=$(pwd):
    Add all EasyConfig files in the current directory to EasyBuild search path

  • -r:
    Robot. Recursively install dependencies prior to the target software.
    Note: You you may use -r $(pwd) instead of -r --robot-paths=$(pwd).

  • --parallel=N:
    Build the software using N CPU cores, e.g., make -j N

  • --trace --tmpdir=$(pwd): (Optional)
    Provide more information on progress (--trace) and save logs to the current path (--tmpdir=$(pwd)). Recommend using them together.

  • For more information, execute eb --help, eb -a and others in eb --help | grep 'avail'If you need further assistance, contact ThaiSC support service.

Note

--parallel=N where N<8 is essential since the default 128 would put a burden on the frontend node, prompting admins to kill your process.

Some software may not support parallel build; therefore, --parallel=1 is recommended.

...