ext-job: generalized run to accept variable processes per node