I think we can have nice implementation of guessing proper number of cpus, and required memory specifically for each job. It requires some benchmarking on different machines to get information on the correlation between number of atoms, number k-points, plane waves, and other possible parameters.
Once we have the info, we have a smart choice of resources within workchain that can be changed in different stages rather fixing them.
It also can goes to selection of proper parallelization parameters such as NPAR, NCORE, KPAR, and etc.
I think we can have nice implementation of guessing proper number of cpus, and required memory specifically for each job. It requires some benchmarking on different machines to get information on the correlation between number of atoms, number k-points, plane waves, and other possible parameters. Once we have the info, we have a smart choice of resources within workchain that can be changed in different stages rather fixing them. It also can goes to selection of proper parallelization parameters such as NPAR, NCORE, KPAR, and etc.