Optimal parameters for workflow

Hey!

I’ve been running a relatively small workflow over 227,334 ligands in in 401 collections. I’m using 20 nodes (c4.xlarge on AWS, with 4 CPUs) and my projection is that it will run for about 15 days in total. My question to the community is what the best parameters setup for the all.ctrl file would be for this workflow. I see there are a couple of threads related to this question such as this one: What are the optimal parameters for the all.ctrl file in the O2(Orchestra2) cluster? but none are very helpful.
Would be great to get a thread going where people post their past setups and the parameters they used to have some references.

These are my parameters in the all.ctrl file:

steps_per_job=1
# Not (yet) available for LSF and SGE (is always set to 1)
# Should not be changed during runtime, and be the same for all joblines
# Settable via range control files: Yes

cpus_per_step=1
# Sets the slurm cpus-per-task variable (task = step) in SLURM
# In LSF this corresponds to the number of slots per node
# Should not be changed during runtime, and be the same for all joblines
# Not yet available for SGE (always set to 1)
# Settable via range control files: Yes

queues_per_step=1
# Sets the number of queues/processes per step
# Should not be changed during runtime, and be the same for all joblines
# Not yet available for SGE (always set to 1)
# Settable via range control files: Yes

cpus_per_queue=1
# Should be equal or higher than <cpus-per-step/queues-per-step>
# Should not be changed during runtime, and be the same for all joblines
# Not yet available for SGE (always set to 1)
# Settable via range control files: Yes

...

central_todo_list_splitting_size=1000
# When the folders are initially prepared the first time, the central todo list will be split into pieces of size <central_todo_list_splitting_size>. One task corresponds to one collection.
# Recommended value: < 100000, e.g. 10000
# Possible values: Positive integer
# The smaller the value, the faster the ligand collections can be distributed.
# For many types of clusters it is recommended if the total number of splitted todo lists stays below 10000.
# Settable via range control files: Yes

ligands_todo_per_queue=100
# Used as a limit of ligands for the to-do lists
# This value should be divisible by the next setting "ligands_todo_per_refilling_step"
# Settable via range control files: Yes

ligands_per_refilling_step=10
# The to-do files of the queues are filled with <ligands_per_refilling_step> ligands per refill step
# A number roughly equal to the average of number of ligands per collection is recommended
# Settable via range control files: Yes

Hi Rico,

Welcome to the forum.

To share setup/config files by the community is a great idea.

Regarding your config, if you use c4.xlarge, you can use

cpus_per_step=4
queues_per_step=4

since there are 4 vCPUs per node.

Which ligand library are you using, a custom one or one of the libraries we provide?