High Performance Computing

High Performance Computing Group

Connect with HPC subject matter experts and discuss how hybrid cloud HPC Solutions from IBM meet today's business needs.

 View Only

What does multidimensional scheduling bring to Platform Symphony?

By Archive User posted Wed March 23, 2016 10:43 AM

  

Originally posted by: Leo Lin @Symphony


Enterpriimagese grid orchestrator (EGO) multidimensional scheduling, as the name suggests, can schedule multiple dimensions of resources. If you have experience with other resource schedulers, such as YARN or Mesos, you are familiar with multidimensional scheduling.  Multidimensional scheduling is available with Platform Symphony 7.1 and later.

 

Heterogeneous workload and slot-based resource scheduling

Before the introduction of multidimensional scheduling, resources were abstracted as slots. With slot-based scheduling, the administrator defines the number of slots for each host. Each slot is distributed to applications according to the resource plan, where one slot can run one task. To a host with N slots, each slot is considered to have 1/N of the power of the host and has access to 1/N of every resource available on the host.

With multidimensional scheduling, when an application requests resources from a resource manager, it can specify the quantity of resources in multidimensional ways, such as “cpu=2, mem=4G”. This type of scheduling is quite different from you may be accustomed to with Platform Symphony 6.1.1 or earlier.  

The simplicity of slots-based scheduling concept works perfectly when all tasks are equally demanding for CPU power, as well as for all kinds of other resources. However, this simplicity can become a limitation for advanced use cases, where some tasks demand more CPU than others, some tasks demand more memory than others, and so on. A user needs to define slots to be big enough to accommodate both types of tasks, resulting in defining slots with too many resources so that they cannot be fully utilized. For quite some time, users have been asking for a way to allow more efficient use of resources for heterogeneous workload.

The dynamic service feature is a solution for heterogeneous workload. With this feature, applications can be configured to use multiple slots to run one task or use one slot to run multiple tasks. This way, a task that demands more CPU can use more slots than a task that demands less CPU, assuming memory is always enough or irrelevant.

 

Heterogeneous workload and multidimensional scheduling

Starting from Platform Symphony 7.1, you can also use multidimensional scheduling, which is a superior solution since each task can be allocated with accurate resources, improving the overall resource utilization, and thus, increasing workload throughput. For example, when CPU-demanding tasks run together with memory-demanding tasks on the same host, more total tasks can be started simultaneously.

Multidimensional scheduling is highly customizable. It does not only support CPU, memory, it can also support up to five user-defined resources (such as network bandwidth, disk space, or just any resource, as long as user knows how to define it).

Multidimensional scheduling has been integrated with multiple third party resource or workload managers: YARN, Mesos, Spark, to name a few. Platform Symphony workload is now able to share resources with these third party workloads using resource sharing policies that guarantee SLA and by configuring resource plans that involve ownership, share ratio, and so on.

 


#SpectrumComputingGroup
0 comments
1 view

Permalink