GithubHelp home page GithubHelp logo

lsuhpchelp / simple-mod Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 0.0 1.06 MB

SIMPLE-MOD is a QT-based GUI tool to automatically generate module keys for easy access of container-based software packages.

Home Page: https://github.com/lsuhpchelp/SIMPLE-MOD

License: MIT License

Roff 46.86% Python 34.59% Tcl 18.54%

simple-mod's Introduction

SIMPLE-MOD (Singularity Integrated Module-key Producer for Loadable Environment MODules)

1. Introduction

1.1 About SIMPLE-MOD

SIMPLE-MOD (Singularity Integrated Module-key Producer for Loadable Environment MODules) is a QT-based GUI tool to automatically generate module keys for easy access of container-based software packages.

Currently, SIMPLE-MOD supports two commonly used module systems through pre-written templates:

Other support can be added by adding customized templates.

1.2 Who is SIMPLE-MOD for

SIMPLE-MOD is designed for HPC administrators who oversee software installation and deployment. Its purpose is to help administrators conveniently create module keys from software in Singularity/Apptainer container images, taking advantage of the installation-free portability. If your HPC systems use a module system (Environment Modules or Lmod) and Singularity/Apptainer, this may be your simple solution to deploy container-based software. This allows users to activate software with a simple module load command and use the executables as if they were installed natively, without needing to know they are using containers.

SIMPLE-MOD is most suitable for software accessible via a handful of executables. However, it is not suitable for all software or use cases. For example, it is not suitable for pure libraries, and may be not suitable for software that would be used as dependencies. It is at the administrators' discretion to determine which software packages can be deployed with SIMPLE-MOD. Administrators are also responsible for testing the deployed module keys on the clusters. The databases and templates provided with the code are for reference only, and the LSU HPC group shall not be held responsible for the installation, deployment, testing, and validation of the software.

SIMPLE-MOD is primarily designed for HPC administrators; however, interested users can also use it to generate customized module keys. Knowledge and permissions to set up customized module keys are required.

2. Installation

2.1 Running with Python (Recommended)

As a QT-based Python program, SIMPLE-MOD is installation-free. To run SIMPLE-MOD, simply run it with Python:

python simple-mod.py

It is tested with Python 3 and PyQt5 module as dependency. If PyQt5 is not installed on your system, please install it with pip:

pip install pyqt5

2.2 Running in a Singularity image

If for any reason you cannot run it with Python on your system (e.g., lack of dependencies and you do not have the permission to install), you may also build a SIMPLE-MOD container image and run it with Singularity/Apptainer. The recipe is provided in singularity.def. To build it with Singularity/Appatainer, please run the below command in terminal:

singularity build simple-mod.sif recipe.def

Once the image is build, you may run it with:

singularity run simple-mod.sif

Additional path binding may be required to save module databases and generate module keys in the desired paths.

3. User Interface

The usage of SIMPLE-MOD shoul be straightforward and self-explanatory. Below is the GUI of SIMPLE-MOD:

README

3.1 Menu Bar

Menu Bar contains 3 menus:

  • File: Create, open, and save module database (.json format).
  • Settings: Change preferences.
  • Help: About information.

3.2 Module List

  • Select module name & version to edit.
  • Create a new module or copy current module.
  • Delete selected module.

3.3 Module Details

  • Conflicts: Conflicted modules that cannot be loaded together. (Itself is already added by default)
  • Software description: Software description.
  • Singularity image path: Path to Singularity image. Can use remote path if the host system supports.
  • Singularity binding paths: Binding paths ("-B"). Bound by default (can be changed in Settings): /home,/tmp,/work,/project,/usr/local/packages,/var/scratch.
  • Additional Singularity flags: Additional flags to add (e.g., "--nv").
  • Commands to map: Executables inside the container that need to be mapped as wrappers outside of the container.
  • Set up environmental variable: Set up additional environmental variable for the module, if needed.
  • Module key template: Template to generate module keys. Default: ./template/template.tcl

3.4 Generate Module Key(s)

  • Generate current module key: Generate one module key from the current open module.
  • Generate all module keys from current database: Generate all module keys from the current open database. Database needs to be saved first.

4. Contributors

Main author: Dr. Jason Li ( [email protected] )

simple-mod's People

Contributors

jasonleekungfu avatar lsuhpchelp avatar dbxmcf avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.