A computer system for managing workflow comprising one or more processors, one or more computer-readable memories, one or more computer readable storage devices, and program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, the stored program instructions comprising:
- program instructions to schedule, by a scheduler, use of a computing environment comprising a plurality of consumable resources comprising at least one machine resource and at least one floating resource;
- program instructions to receive at least one flexible reservation request for scheduling in the computing environment, wherein the at least one flexible reservation request specifies a duration and at least one required resource;
- program instructions to create a flexible job for the at least one flexible reservation request and placing the flexible job in a prioritized job queue for scheduling;
- program instructions to add a reservation set to a waiting state for the at least one flexible reservation request;
- program instructions to receive at least one regular job not bound to a reservation, wherein the at least one regular job is a job ready to be dispatched for running when the job reaches the highest priority position in the prioritized job queue when the resources required for executing the job becomes available;
- program instructions to monitor, for each of the at least one regular job and the flexible job, whether each separate selection of resources required for each of the at least one regular job and the flexible job are available;
- program instructions, responsive to detecting the flexible job positioned in the prioritized job queue for scheduling next and detecting a selection of the plurality of consumable resources available to match the at least one required resource for the duration, to remove the flexible job from the prioritized job queue without sending the flexible job to the resource manager to run, transfer the selection of the plurality of consumable resources to the reservation, and setting the reservation to an active state, wherein the reservation is activated as the selection of the plurality of consumable resources become available and has uninterrupted use of the selection of the plurality of consumable resources for the duration for at least one bound job to the reservation;
- and
- program instructions, responsive to receiving the at least one bound job for the at least one flexible reservation request and the reservation set to the active state, to dispatch the at least one bound job directly to the reservation for running on the selection of the plurality of consumable resources without placement in the prioritized job queue.