erdc / pyuit

Python module for creating PBS scripts and interacting with the UIT Plus web service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

processes_per_node should default to ncpus

kcpevey opened this issue · comments

To max out processes_per_node requires users to know how many ncpus are on each node for each machine. To prevent that, it makes sense to automatically default to ncpus (using all of them) instead of making it a requirement for PbsScript

I would also be good to have access to the total number of nodes. The necessary logic is inside of PbsScript.get_num_nodes_process_str() but that only writes the pbs header and doesn't store the ncpus data.

An example submit script for adh would be:

#!/bin/bash
#PBS -A ****
#PBS -q debug
#PBS -l select=10:ncpus=44:mpiprocs=44
#PBS -l walltime=1:00:00
#PBS -l application=adh
#PBS -N Lake_Washington

cd $PBS_O_WORKDIR
aprun -n 1 $PROJECTS_HOME/AdH_SW/pre_adh_V4.6  CTR1_PWOP |tee PWOP_pre_adh.out
aprun -n 440 $PROJECTS_HOME/AdH_SW/adh_V4.6 CTR1_PWOP |tee PWOP_adh.out

Where aprun -n 440 refers to the total number of nodes (select * ncpus).

I'd like to have access to the complex ncpus structure in a separate function.