Posted On: Nov 9, 2021

Today AWS Batch introduced fair-share scheduling for AWS Batch job queues, making it easier to run different workloads in a single queue. Now, customers can determine whether to run jobs in first-in, first-out (FIFO) or determine a “fair-share” policy, which can allocate resources equally or based on admin-defined weights and priorities. With fair-share scheduling of jobs, AWS Batch will handle assigning compute among multiple users and workloads based on factors other than just whichever workload showed up first, resulting in enhanced processing efficiency and better respecting user or workload priority.

AWS Batch is a cloud-native batch scheduler that enables anyone - from enterprises, to scientists and developers - to efficiently run batch jobs on AWS. Whether you have a few jobs or hundreds of thousands, AWS Batch is designed to provision the optimal quantity and type of compute resources based on the volume and specific resource requirements of the work you submit. With AWS Batch, there is no need to install and manage batch computing software or server clusters that you use to run your jobs, allowing you to focus on analyzing results and solving problems.

Prior to today, AWS Batch used a FIFO scheduling mechanism for queues. In FIFO, jobs are scheduled when they reach the head of the queue, and there are enough available compute resources. While this works for many customers, FIFO can cause “unfair” situations where one user’s workloads become trapped behind another’s, such as a very large number of long-running jobs in front of a few short jobs. In these cases, customers want a way to provide fairness in compute allocation to users with short jobs. Particularly for larger organizations with many different workloads, fairness in computing is critical to giving users confidence that when they submit work, it will process in a timely manner while respecting priority.

Now, AWS Batch supports fair-share scheduling in addition to FIFO as a scheduling method, allowing customers to have many different users and workloads in a single queue, with AWS Batch assigning out compute resources according to the fair-share policy defined by the administrator. By default, this is roughly equal among each user/workload. AWS Batch assigns users or workloads a “share”, which defines how much that user or workload receives of compute resources. Customers can give special weight to certain users or workloads with a higher priority if needed. Customers simply submit the jobs to AWS Batch, which will automatically dispatch the jobs according to the specified shares, enabling customers to simply run workloads in a single, combined queue.

To learn more, visit our blog post.