This shows you the differences between two versions of the page.
— | wiki:old:gsoc_proposal_scheduling [2013/07/10 22:55] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | The goal of this project is to extend the current scheduling capabilities of OAR Resource and Job Management System (RJMS). In more particular we want to have two new scheduling policies implemented: | ||
+ | |||
+ | ===== Background | ||
+ | |||
+ | The part of the RJMS which hides all the intelligence of the system is the scheduler. Its main role is to assign jobs according to the users needs and predefined rules and policies, upon available computational resources that match with the demands. A typical scheduler functions in cooperation with queues which are elements defined to organize jobs according to similar characteristics (for example priorities). | ||
+ | |||
+ | Different kind of scheduling policies have been defined and implemented upon the various production RJMS systems. | ||
+ | |||
+ | These are the most common ones: | ||
+ | |||
+ | * **FIFO**: jobs are treated with the order they arrive. | ||
+ | * **Multifactor**: | ||
+ | * **Backfill**: | ||
+ | * **Gang Scheduling**: | ||
+ | * **Time-sharing**: | ||
+ | * **Fair-sharing**: | ||
+ | * **Preemption**: | ||
+ | |||
+ | Backfill, has several versions like conservative or aggressive. In the first one, which is most commonly used, a smaller job is moved forward in the queue as long as it does not delay any previously queued job. The second also known as EASY backfilling a small job is allowed to leap forward as long as it does not delay the first job in the queue. | ||
+ | |||
+ | **OAR** currently supports: **FIFO**, **backfill** (conservative version), **Time-sharing** and **Fair-sharing.** | ||
+ | |||
+ | In this project we are interested to provide support of Gang Scheduling and preemption policies upon OAR. | ||
+ | |||
+ | **Gang Scheduling** policy is a stricter variant of TimeSharing which allows the actual concurrent execution of jobs upon the same esources. This policy temporarily preempts and then reschedules jobs upon specific time intervals. It provides an environment similar to a dedicated machine, in which all job’s processes are executed together and at the same time resources are time-shared among different jobs. | ||
+ | |||
+ | The **preemption** policy is defined by the stop and later restart of lower priority jobs in order to allow higher priority jobs perform urgent computations. Preemption can be implemented with stop/ | ||
+ | |||
+ | |||
+ | ===== Goals of this GSOC project | ||
+ | - Design and implementation of the **Preemption** scheduling policy for OAR | ||
+ | - Design and implementation of the **Gang Scheduling** policy for OAR | ||
+ | - Simulation and/or real experimentation to evaluate the newly defined policies or optimizations | ||
+ | |||
+ | ===== References | ||
+ | - https:// | ||
+ | - https:// | ||