Implement a version of "select_resources":https://github.com/common-workflow-language/cwltool/blob/72e4ffb7814ec846c12ec15df82a4243654fe053/cwltool/executors.py#L286 for Arvados. You can get a dictionary of instance types with this: @api.config()["InstanceTypes"]@ The select_resources method should, at minimum, accept a range of range of CPU core values (e.g. coresMin: 4, coresMax: 16) and then check the available InstanceTypes and assign the greatest core count available. For example, if the system is only configured with 2, 4, and 8 core nodes, it should assign 8 cores since it is in the range (4 - 16). RAM and disk can also have a range. Just return the minimum value for now (this is the existing behavior). Tell cwltool to use your @select_resources@ method by setting the object field @runtimeContext.select_resources@.