Skip to content

What's new in hpcman

On November 5, 2026, hqsub moved to the new version of hpcman. The new version is written in Go, and the old version was written in Python. hqstat, hqavail, hqinfo and hqacctinfo already used the new version.

Your existing commands work as before. This page lists what looks different, and the new options that you can use.

If something does not work as you expect, submit a support request.

Which commands use the new version

Command Version
hqsub, hqstat, hqavail, hqinfo, hqacctinfo New
hpcman queue error, hpcman queue launch New
hpcman user New
hpcman lab, hpcman cluster, hpcman conda, hpcman software New, which runs the Python version for you

You type the same commands for all of them.

hqsub

What hqsub prints

After a submission, hqsub shows what you chose, what it found, and the files of the run. That includes the job ID, the account, the partition, the possible nodes and the log paths. It also shows the scancel command for the job.

hqsub reads the job one time, just after the submission. A job that starts later can run on a different node of the list.

To see less, add --status simple, or set HQSUB_STATUS=simple.

--status Standard output Standard error
full (the default) Successfully submitted job N ... the report, warnings and notices
simple Successfully submitted job N ... warnings and notices
parsable the job ID warnings and notices

Scripts that read the output of hqsub

Add --parsable to each script that reads the output of hqsub. Then hqsub prints only the job ID.

--parsable overrides --status, and --status overrides HQSUB_STATUS.

The prompts

If you do not give -r or -q at a terminal, hqsub asks for them. At the queue prompt, press Tab to complete a queue name. Press Tab two times to list your queues.

Without a terminal, for example in a script, a missing -r or -q is an error. Use -r - to make hqsub generate a run name.

Check a job before you submit it

--check asks Slurm if it would accept the job. It submits nothing and writes no files. To submit the job, run the same command without --check.

--json now works with --check and with --dry-run.

Checks before the submission

  • hqsub makes sure that the host can reach Slurm before it writes the run directory. Most cluster hosts can submit a job. A web server cannot. If the host cannot reach Slurm, hqsub tells you to submit from shell.hpc.oregonstate.edu.
  • hqsub refuses a run name that contains %. Slurm replaces % patterns in the log names, so the logs can go outside the run directory.
  • --force replaces only an earlier run with the same run name. hqsub deletes the old directory only if it holds the <runname>.sh script that hqsub wrote. It refuses a different directory with the same name.

The account

Without -A, hqsub uses your default account when each queue you ask for allows it. If not, hqsub uses the first account you hold that the queues allow, in alphabetical order.

Array jobs

Log names

Each task of an array now writes its own logs, named with the array ID and the task number:

<runname>.o<arrayID>_<task>
<runname>.e<arrayID>_<task>

Task 3 runs line 3 of the .commands file, and its log is <runname>.o<arrayID>_3.

Task IDs

hqstat and hpcman queue error show a task as <arrayID>_<task>. That is the same ID that sacct and scancel accept.

hqstat shows the tasks that wait as a range, for example 12345_[1-4]. A range longer than 16 characters shows as 12345_[...].

Wait for one task

--hold <arrayID>_<task> makes a job wait for one task. hqsub refuses a task that does not exist, because Slurm would otherwise start the job at once.

--hold refuses a range such as 12345_[1-3]. To wait for all the tasks of an array, use --hold <arrayID>.

Plain job IDs

To see plain job IDs, add --array-id job to hqsub, hqstat or hpcman queue error, or set HPCMAN_ARRAY_ID=job. With hqsub, this option also changes the log names.

Arrays that were in the queue at the change

An array that was already in the queue on November 5, 2026 writes logs with the plain job ID until it finishes. Use hqstat --array-id job to see those IDs.

hqstat

  • hqstat shows each job state that Slurm reports. Jobs that ran out of memory (out_of_memory), ran out of time (timeout), or lost their node (node_fail) now show in the table.
  • An array that waits shows as type array, with the range of tasks that wait.
  • --sort age puts the jobs that waited longest first. --sort id sorts by job ID.
  • --top N shows only the first N jobs.
hqstat -u '*' -t pending --sort age --top 20

hpcman queue error

hpcman queue error is a new command. It lists your jobs that failed and your jobs that Slurm holds, and it explains each job state.

hpcman queue error          # your failed and held jobs
hpcman queue error --list   # every job state and what it means

This command reads the current queue. Slurm removes a finished job from the queue after a few minutes. For an older job, use sacct.

hqinfo

  • --sort puts the nodes in order: name, load, load-ratio (the load for each CPU), or unused (the allocated CPUs that the load does not use).
  • --top N shows only the first N nodes.
  • Each job state has a color. OUT_OF_MEMORY, TIMEOUT, PREEMPTED, DEADLINE and REVOKED now show in bold red.
  • A job that waits shows the reason after its state, for example STOPPED(JobHeldUser).
hqinfo --sort unused --top 10
hqinfo --sort load-ratio --warnings

hqavail

  • The GPU column shows the real number of GPUs in use. The old version showed 0 GPUs in use for each GPU type.
  • A node that is down or drained shows 0 free slots, because it cannot start a job.
  • Full and down queues stay hidden. Add --show-full to see them.

Output for all queue commands

The pager

Long output goes through a pager at a terminal. hqstat does not use a pager unless you add --pager.

  • Add --no-pager to stop the pager for one command.
  • Set HPCMAN_NO_PAGER=1 in your shell profile to stop the pager for all commands.
  • Set HPCMAN_PAGER to choose the pager. If it is not set, hpcman uses $PAGER, then less.

Color

Color follows your terminal. Add --color=always or --color=never to change it. Set NO_COLOR to any value to stop color in all commands.

JSON

hqsub, hqstat, hqavail, hqinfo, hqacctinfo and hpcman queue error accept --json. For array tasks, hqstat --json keeps the plain job ID in runid, and adds the fields array_job_id and array_task_id.

When the Slurm accounting database is down

If the Slurm accounting database does not answer, hqsub, hqacctinfo, hqavail and hqinfo read your accounts from the Slurm controller. They print one warning, and they continue. --parsable still prints only the job ID.

Removed

SGE is no longer supported. --sge and --queuetype sge stop with the message SGE is no longer supported.