Add custom submission parameters to jobs

Hi,

as was asked in the context of another thread which focused more on other parts of the question (Improvements for clusters), it would be really useful if we could add custom parameters to job submissions, that would be relevant for the cluster scheduler.

E.g. in our system we have to specify the partition (controlling on which machines the job will run), the qos parameter controlling the maximum runtime) etc. It leads to us having to set up many different lanes for different combinations, and at some point it becomes not really feasible.

Having the freedom to add extra parameters that could be changed would be great. E.g. The interface could either have a custom set of futher parameters based on local setup, or if it is tricky for you to have a customized interface, it would be sufficient to have simply an “additional parameters” input table, where the user can fill in an arbitrary number of parameters, giving both the name and the value e.g.

parameter_name1 parameter_value1
parameter_name2 parameter_value2

which leads to every {{parameter_name1}} being replaced with parameter_value1 in the submission script

Could something like this be done?

Many thanks

J

1 Like

Hi @xeniorn,

Thanks for the feedback - we’re looking into how we can better add support for use cases like this. Would it be helpful to be able to edit the cluster submission script on a per-job basis within the interface (in the queue dialog where you select a lane) or just have an editable table of keys and values? Would you want to have different submission scripts and/or parameters on a per-project or per-job basis?

Regards,
Suhail

This would be a nice feature. I think per-job key/value pairs would be sufficient for our needs.

This would be similar to Relion’s ‘Running’ tab. In relion we currently have several submission scripts which hard-code some parameters (e.g. account information) but allow other data to be modified for each job. In addition to the built-in settings for partition name, number of threads, etc, we are using the RELION_QSUB_EXTRA* variables to add values for runtime, memory, and other less-frequent scheduler options.

Cryosparc is better than relion about requesting resources (except when it estimates wrong) and the cluster_script.sh templates are really nice. Exposing some template variables to the user would be very useful, and I could see it reducing the number of lanes we present in the interface.

I think one important feature will be having configurable defaults. For instance, there could be a system-wide default partition, which then can be overridden on a per-project or per-job basis.

Hi @sdawood

I see now I never replied to this.

The main thing would be just having the ability to add arbitrary fields to the submission script, which we could adapt for our submission needs in a “fixed” script for each lane. That would cover 90 % of the needs.

Comments by @sbliven I also stand behind.

But if there was also the ability to edit the cluster submission script on the fly at Queue time, that would be amazing and cover essentially 100 % of use cases for an advanced user, who could then do the “peculiar” submission without having to add new lanes just for this (or rather in our case, ask the IT to add the lane, quite unfeasible for “live” trials).

Best

J

1 Like