LOMARC-Lookahead Matchmaking for Multiresource Coscheduling

Job scheduling typically focuses on the CPU with little work existing to include I/O or memory. Time-shared execution provides the chance to hide I/O and long-communication latencies though potentially creating a memory conflict. Hyperthreaded CPUs support coscheduling without any context switches and provide additional options for CPU-internal resource sharing. We present an approach that includes all possible resources into the schedule optimization and improves utilization by coscheduling two jobs if feasible.

Our LOMARC approach partially reorders the queue by lookahead to increase the potential to find good matches. we have obtained improvements between 30 percent and 50 percent in both response times and relative bounded response times on hyperthreaded CPUs.

Existing System:

Standard single-job scheduling. Always coscheduling two adjacent jobs from the queue. Gang scheduling applies a globally coordinated form of time sharing with the effect that all processes of a job are scheduled at the same time. Loosely coordinated coscheduling and relaxed combinations of gang and local CPU scheduling provide alternatives.

The standard approach to job scheduling is so called space sharing which allocates the individual compute nodes per job in a dedicated manner. Gang scheduling has shortcomings regarding latency hiding for I/O and for long-latency communication. Loosely coordinated coscheduling requires modifications of the communication software.

Proposed System:

LOMARC: Lookahead Matchmaking for Multiresource Coscheduling

Coscheduling two jobs that are adjacent in the queue if they are a match according to the LOMARC definition.

Our LOMARC approach partially reorders the queue by lookahead to increase the potential to find good matches. we have obtained improvements between 30 percent and 50 percent in both response times and relative bounded response times on hyperthreaded CPUs.

Module Description:

  • Parallel Computing
  • Threads and Multithreading
  • Working with Threads
  • Hyperthreading
  • Defining Lomarc Algorithm