Skip to content

hpcman

Usage:

$ hpcman [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • cluster: Get cluster information
  • conda: Manage cluster, lab, and user conda setups
  • lab: Get information about lab configuration
  • queue: Manage queuing system jobs, and get queue...
  • software: Manage and monitor software installs.
  • user: Get and/or set user env variables,...
  • version: Print version number and exit.

hpcman cluster

Get cluster information

Usage:

$ hpcman cluster [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • disk: Get cluster disk-free usage
  • paths: Get cluster paths for standard...
  • software: Look for installed software that may not...

hpcman cluster disk

Get cluster disk-free usage

Usage:

$ hpcman cluster disk [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman cluster paths

Get cluster paths for standard software/database installs

Usage:

$ hpcman cluster paths [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman cluster software

Look for installed software that may not be in $PATH

Usage:

$ hpcman cluster software [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman conda

Manage cluster, lab, and user conda setups

Usage:

$ hpcman conda [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • status: Check status of user conda setup

hpcman conda status

Check status of user conda setup

Usage:

$ hpcman conda status [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman lab

Get information about lab configuration

Usage:

$ hpcman lab [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • info: Get path of potential nfs drives for your lab
  • manager: Get lab manager information

hpcman lab info

Get path of potential nfs drives for your lab

Usage:

$ hpcman lab info [OPTIONS] [USER]

Arguments:

  • [USER]: User name to check. [default: davised]

Options:

  • -g, --group TEXT: Group(s) to check for. Overrides auto-detection from provided USER.
  • -v, --verbose: Increase verbosity. Can specify more than once.
  • --help: Show this message and exit.

hpcman lab manager

Get lab manager information

Usage:

$ hpcman lab manager [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman queue

Manage queuing system jobs, and get queue status

Usage:

$ hpcman queue [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • avail: Alias: hqavail.
  • error: Get error queues, and explain state
  • launch: Launch interactive browser job type on a node
  • stat: Alias: hqstat.
  • submit: Alias: hqsub.
  • usage: Get past queue usage information

hpcman queue avail

Alias: hqavail. Get available queues

Usage:

$ hpcman queue avail [OPTIONS]

Options:

  • -u, --user TEXT: User name to check. Use '*' to check all users. [default: davised]
  • -q, --queue TEXT: Queue to check. By default, all queues are checked.
  • --slurm / --no-slurm: Check slurm queues. [default: slurm]
  • --sge / --no-sge: Check sge queues. [default: sge]
  • --gpu: Hides non gpu queues.
  • --hide-full / --no-hide-full: Hide full queues. [default: hide-full]
  • --help: Show this message and exit.

Produces a table similar to the qstat output.

hpcman queue error

Get error queues, and explain state

Usage:

$ hpcman queue error [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman queue launch

Launch interactive browser job type on a node

Usage:

$ hpcman queue launch [OPTIONS] COMMAND:{serve|jupyter}

Arguments:

  • COMMAND:{serve|jupyter}: Command to launch. [required]

Options:

  • --force: Force the submission of the job even if run is already present.
  • -q, --queue TEXT: The queue to use. Provide '*' to explicitly select any available queue. [required]
  • -p, -P, --procs INTEGER: Number of processors to request. [default: 1]
  • -f, --free TEXT: Free memory to request on the machine to run this job. (100M, 1G, 4G, 32G etc.) [default: 4G]
  • -m, --max TEXT: Maximum memory this job may use (kill if exceeded). (100M, 1G, 4G, 32G etc.)
  • -F, --filesize TEXT: Kill the job if any created file exceeds this size. (100M, 1G, 4G, 32G etc.) [default: 500G]
  • --path TEXT: The $PATH to use for the submitted commands. [default: ($PATH environment variable of current shell)]
  • -r, --runname TEXT: The run name and log output directory name. [default: (sge.{command})]
  • --help: Show this message and exit.

hpcman queue stat

Alias: hqstat. Get job status

Usage:

$ hpcman queue stat [OPTIONS]

Options:

  • -u, --user TEXT: User name to check. Use '*' to check all users. [default: davised]
  • -q, --queue TEXT: Queue to check. By default, all queues are checked.
  • --slurm / --no-slurm: Check slurm jobs. [default: slurm]
  • --sge / --no-sge: Check sge queues. [default: sge]
  • -w, --watch: Watch for changes to the queue status
  • --help: Show this message and exit.

Produces a table similar to the qstat output.

hpcman queue submit

Alias: hqsub. Submit queueing job "COMMAND". Multiple lines of commands supported using piped input from STDIN. If providing as argument and there are spaces in the command, use quotes to provide the command, either '' or "" will work! Do not use -c '', just provide the command as argument.

Usage:

$ hpcman queue submit [OPTIONS] "COMMAND"

Arguments:

  • "COMMAND": Command to submit. Reading from stdin assumed. Provide '-' to explicitly use stdin.

Options:

  • -r, --runname TEXT: The run name and log output directory name. Provide '-' for automatic name generation. [required]
  • -q, --queue TEXT: The queue to use. Provide '*' to explicitly select any available queue. [required]
  • -A, --account TEXT: The account to use. Automatically determined if a partition is supplied.
  • -w, --nodelist TEXT: Nodes to target. Slurm may use more if these nodes do not meet job specifications (CPUs, mem, etc). Also populated from queues specified '-q queue@node'. Can specify multiple times.
  • -x, --excludelist TEXT: Nodes to exclude. Also populated from queues specified '-q !queue@node'. Can specify multiple times.
  • --opts TEXT: Specify custom options to pass to Slurm. Use the --opts='--option=value' syntax for best results. Can specify multiple times.
  • -t, --type [batch|array]: Type of job to submit. Note: Default depends on inputs. batch is default except when reading from stdin, then array is default. [default: (batch; array when reading stdin)]
  • -p, -P, --procs INTEGER: Number of processors to request. Match with threads/cores used in command. Exposed as $NPROCS in the submit script. [default: 1]
  • -f, --free TEXT: Free memory to request on the machine to run this job. (100M, 1G, 4G, 32G etc.) [default: 4G]
  • -m, --max TEXT: Maximum memory this job may use (kill if exceeded). (100M, 1G, 4G, 32G etc.)
  • -F, --filesize TEXT: Kill the job if any created file exceeds this size. (100M, 1G, 4G, 32G etc.) [default: 500G]
  • --force: Force the submission of the job even if --runname is already present. (as SGE_Array default)
  • --path TEXT: The $PATH to use for the submitted commands. [default: ($PATH environment variable of current shell)]
  • --hold TEXT: Hold the job until specified jobs (either job name or job ID) are completed. Can be specified multiple times.
  • --hold-auto: Hold the execution of the job until all other jobs in dir have finished. (Uses .hpcman_jobnums file)
  • -b, --concurrency INTEGER: Array job maximum task concurrency. ('batch size'; unused in batch mode) [default: 50]
  • --queuetype [SGE|SLURM]: Type of queuing system. [default: (SLURM)]
  • --validate-path / --no-validate-path: Validate the provided $PATH value. Turn off at own risk. You may need to disable if you want to use the default $PATH of your bash shell, or if you want to do some testing. [default: validate-path]
  • --local-drive [pertask|shared]: Use the local drive for the submitted job. If set to pertask, uses $TMPDIR (/tmp) as the prefix for the tempdir (mktemp -d -p). If set to shared, uses $TMPDIR/$USER/$DIRNAME ($TMPDIR/davised/hpcman) as the tempdir, where $DIRNAME is the name of the current directory.
  • --local-prefix TEXT: Override the default prefix of the tempdir. See the help for --local-drive.
  • --mirror-type [link|copy]: Type of mirroring to local drive. Only used if --local-drive is set. [default: (link)]
  • --copy-results / --no-copy-results: Copy final results back to submission directory. Defaults to True if --local-drive pertask and False if --local-drive shared.
  • / --no-autotmp: By default, hqsub will attempt to find a writeable directory on the compute node, preferring /scratch, /data, and then /tmp, in that order. To disable, specify --no-autotmp, or set the env-var HQSUB_AUTOTMP to False or 0. [env var: HQSUB_AUTOTMP]
  • --dry-run: Do not actually submit the job, but set up the submit directory.
  • --parsable: Output only the job ID upon successful submission.
  • --watch: Run hpcman queue stat --watch to monitor the status of the jobs.
  • --conda: Enable use of conda (e.g. conda activate ...).
  • --conda-exe FILE: Path to conda executable to enable. [default: /local/cluster/miniconda3_base/bin/conda]
  • --help: Show this message and exit.

Emulates some functions of SGE_Batch and SGE_Array. Functions have been intentionally removed and/or modified in some cases to enable new features and improve reliability. Please submit a support ticket request at https://shell.cqls.oregonstate.edu/support to provide feedback on this software.

[magenta bold]-= Examples =-[/magenta bold]

• Batch job:

 hqsub -q '*' -r - 'blastp -db nr -query ...'

• Batch job, watching for job submission:

 hqsub -q '*' -r - 'blastp -db nr -query ...' --watch

• Batch job with multiple processors (use $NPROCS in command):

 hqsub -q '*' -r - -p 8 'blastp -db nr -num_threads $NPROCS -query ...'

• Array job with multiple processors, reading commands from stdin:

 bash submit_jobs.sh | hqsub -q '*' -r - -p 8 -t array -

• Using conda activate:

 hqsub --conda -q '*' -r - 'conda activate bakta; which bakta'

• Using /data drive:

 hqsub --local-drive pertask -q '*' -r - ...

hpcman queue usage

Get past queue usage information

Usage:

$ hpcman queue usage [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman software

Manage and monitor software installs.

Usage:

$ hpcman software [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • export-schema: Exports model schema.
  • info: Get Information about a specific piece of...
  • install: Alias: hsi.
  • list: Show installed software.
  • list-recipes: Get list of recipes

hpcman software export-schema

Exports model schema.

Usage:

$ hpcman software export-schema [OPTIONS] METHOD:{conda|compile|pipx|pixi}

Arguments:

  • METHOD:{conda|compile|pipx|pixi}: Install method schema to dump. [required]

Options:

  • --help: Show this message and exit.

hpcman software info

Get Information about a specific piece of installed software.

Usage:

$ hpcman software info [OPTIONS] NAME

Arguments:

  • NAME: Show information for this installed software. [required]

Options:

  • --db-path PATH: Path to sqlite database. [default: /local/cqls/software/hpcman-dbs/hpcman_install_info.db]
  • --help: Show this message and exit.

hpcman software install

Alias: hsi. Install software recipe or generate a new recipe from command-line options.

Usage:

$ hpcman software install [OPTIONS] RECIPE_NAME VERSION

Arguments:

  • RECIPE_NAME: Name of recipe to use for installation. [required]
  • VERSION: Version of software to install. [required]

Options:

  • --debug / --no-debug: Enable debug mode.
  • -n, --name TEXT: Name of the software to install. Same as 'recipe_name' by default.
  • -m, --method [conda|compile|pipx|pixi]: Install method to use.
  • -t, --tags TEXT: Tags associated with software. Multiple can be specified.
  • --category [computer sciences|engineering|environmental sciences|languages|python package|life sciences|statistics|utilities|web]: Category of software. e.g. life sciences, statistics, utilities
  • --docs TEXT: URL to documentation for software. Multiple can be specified.
  • --refs TEXT: URL to scientific literature for software. Multiple can be specified.
  • --hook FILE: Path to bash script for post-install hook/modification. Exports 'HPCMAN_POST_INSTALL_PREFIX' to dir where the software is installed.
  • --patch FILE: Path to patches to apply during post-install hook/modification. Runs in --patch-dir. Can supply multiple.
  • --patch-dir TEXT: Dir to run the patches in. 'None' means they run in HPCMAN_POST_INSTALL_PREFIX.
  • --patch-opts TEXT: Option for the patches. 'None' means '-bup0'
  • --patch-order [before|after]: Option for the patches. 'None' means 'before'
  • --export TEXT: Extra information (e.g. metadata) to include in the recipe and to export to the post install script.
  • --help-check [empty|help|-h|-help|--help]: Method to check for the help of the software.
  • --version-check [version|-v|-V|-version|--version]: Method to check for the version of the software.
  • --msgtype [stderr|stdout]: Output stream where help message is found.
  • --recipe-dir DIRECTORY: Path to recipe directory. [default: /local/cqls/software/hpcman-recipes/recipes]
  • / --no-save: Save recipe to directory in --recipe-dir upon successful install. [default: True]
  • --update: Update recipe if command-line options are supplied and it is loaded from file.
  • -p, --pkgs TEXT: Conda/Pixi packages to install. Can specify multiple, and give version restrictions. To use the version specified in this install command, use 'package={ver}'
  • -e, --exes TEXT: Executables to generate shell scripts for after install or to link into the --bindir.
  • -l, --libs TEXT: Conda packages to install that do not provide binaries. Can specify multiple, and give version restrictions. To use the version specified in this install command, use 'package={ver}'
  • --fix-perl: Unset Perl env vars in conda env to eliminate issues with perl libs.
  • --fix-python: Exclude python user site-packages from the conda env.
  • --fix-r, --fix-R: Exclude R_LIBS from being found in the conda env.
  • -c, --channel TEXT: Conda channels to use. Overrides config file -> /local/cqls/software/x86_64/pixi/config.toml
  • --priority [strict|disabled]: Channel priority to use for conda environment.
  • --yaml FILENAME: Conda yaml file with channels and dependencies.
  • --global-install / --no-global-install: Install in global pixi/uv environment
  • --python-ver [3.9|3.10|3.11|3.12]: Python version to use for pypi isolated executable.
  • --pipx-backend [pixi|uv]: Backend to use for pipx installs.
  • --linkexe / --no-linkexe: Link the executables to [bold cyan]bindir[/bold cyan] upon install. [default: no-linkexe]
  • / --no-linkdir: Link the target 'software-ver' dir to 'software' in the --install_prefix [default: True]
  • --prefix PATH: Install prefix for software. [default: /local/cqls/software]
  • --bindir PATH: Prefix for final location for linked software. 'x86_64/bin' will be appended to this path. [default: /local/cqls/opt]
  • --logfile FILE: Path to file to write log messages. [default: /local/cqls/software/logs/hpcman_install.log]
  • --dry-run: Do not install, just print commands.
  • --force: Force install even when directory is present.
  • --skip [target|install|patch-before|hook|patch-after]: Skip steps up to and including this step.
  • --update-db / --no-update-db: Update sqlite database with install information. [default: update-db]
  • --db-path PATH: Path to sqlite database. [default: /local/cqls/software/hpcman-dbs/hpcman_install_info.db]
  • -v, --verbose: Increase verbosity. Can specify more than once. [x<=6]
  • -q, --quiet: Decrease verbosity. Can specify more than once. [x<=9]
  • --help: Show this message and exit.

hpcman software install RECIPE VER -m pixi -t foo -t bar --category 'life sciences' --docs URL --refs URL --hook PATH --help-check='--help' --version-check='--version' -p 'pkg={ver}' -e exe --linkexe

hpcman software list

Show installed software.

Usage:

$ hpcman software list [OPTIONS]

Options:

  • --db-path PATH: Path to sqlite database. [default: /local/cqls/software/hpcman-dbs/hpcman_install_info.db]
  • --markdown: Output table with Markdown format.
  • --help: Show this message and exit.

hpcman software list-recipes

Get list of recipes

Usage:

$ hpcman software list-recipes [OPTIONS] [RECIPE_DIR]

Arguments:

  • [RECIPE_DIR]: Path to recipe directory. [default: /local/cqls/software/hpcman-recipes/recipes]

Options:

  • --help: Show this message and exit.

hpcman user

Get and/or set user env variables, preferred program versions, and quota

Usage:

$ hpcman user [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • check: Compare settings to system defaults
  • enable: Enable configuration of environment...
  • info: Get configuration info for user
  • quota: Check user disk quota
  • setup: Setup specific software and/or other...
  • setvar: Set configuration info for user
  • ssh: Check sshkey setup and provide help
  • update-dotfiles: Update dotfile paths to the latest version.

hpcman user check

Compare settings to system defaults

Usage:

$ hpcman user check [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman user enable

Enable configuration of environment variables using hpcman

Usage:

$ hpcman user enable [OPTIONS] [CONFIG]

Arguments:

  • [CONFIG]: Path to config location. [default: /home/cqls/davised/.config/hpcman]

Options:

  • -v, --verbose: Increase verbosity. Can specify more than once.
  • --help: Show this message and exit.

hpcman user info

Get configuration info for user

Usage:

$ hpcman user info [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman user quota

Check user disk quota

Usage:

$ hpcman user quota [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman user setup

Setup specific software and/or other settings.

Usage:

$ hpcman user setup [OPTIONS] SETUPTYPE:{prefix|R_LIBS_USER|R|pixi|uv|augustus|conda} [DIR]

Arguments:

  • SETUPTYPE:{prefix|R_LIBS_USER|R|pixi|uv|augustus|conda}: Choose a type of software/setting to setup. [required]

Options:

  • --arch [x86_64|ppc64le|aarch64]: CPU Architecture to target for setup. [default: (Current machine 'web1.hpc.oregonstate.edu' CPU arch)]
  • -v, --verbose: Increase verbosity. Can specify more than once.
  • --help: Show this message and exit.

-= Recommended order for setup =-

• prefix: Sets $HPCMAN_USER_PREFIX so hpcman can manage user install/settings. [bold red]Must be run first![/bold red]

• R_LIBS_USER: Sets $R_LIBS_USER to automatically manage versioning for different R major versions.

• R: Helps selection of R versions from installed versions and updates $PATH. Generates $R_LIBS_USER dir if set.

• pixi: Sets $PIXI_HOME and $PIXI_CACHE_DIR so you can manage conda installs using pixi.

hpcman user setvar

Set configuration info for user

Usage:

$ hpcman user setvar [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman user ssh

Check sshkey setup and provide help

Usage:

$ hpcman user ssh [OPTIONS]

Options:

  • --help: Show this message and exit.

hpcman user update-dotfiles

Update dotfile paths to the latest version.

Usage:

$ hpcman user update-dotfiles [OPTIONS] [ETCPATH]

Arguments:

  • [ETCPATH]: Path to dotfile directory. [default: /local/cqls/etc]

Options:

  • --oldetc TEXT: Old etc path to replace. [default: /local/cluster/etc]
  • -c, --config [.bashrc|.cshrc|.zshrc|all]: Choose dotfiles to update.
  • -v, --verbose: Increase verbosity. Can specify more than once. [x<=6]
  • -q, --quiet: Decrease verbosity. Can specify more than once. [x<=9]
  • --help: Show this message and exit.

hpcman version

Print version number and exit.

Uses the get_version() function specified in the __init__.py file.

Instead of using a --version flag, this command will print the version.

Returns: None

Usage:

$ hpcman version [OPTIONS]

Options:

  • --help: Show this message and exit.