Cleo batch system
If you want to use it, please fill the registration form. It is absolutelly free.
What is it.
Cleo batch system is purposed to control parallel tasks on computer clusters.
It controls one or more task queues.
- tasks sceduling (all MPI implemetations are supported, most other parallel environments are supported too)
- task processes terminating on compute nodes
- automatic dead nodes blocking
- programmable free nodes distribution between tasks
- cluster using policy control
- controllable user limits (max used cpus, task work time, etc.)
- customizable graphical or text queue and tasks info (via qs-web package)
- Extensions: custom cpu distriburors and scedulers
Cleo requires: perl 5.6 or higher, and modules Storable, Fcntl, Time, POSIX and IO; Linux 2.4 or better.
Cleo consists of:
- server (controls queues)
- agets (runs on nodes, are optional)
- client software
You mustn't create task file for every new task. You simply can use mpirun programm. This programm is a wrapper,
which emulates standard mpirun and understand some additional options. For example:
mpirun -np 4 my_program arg1 arg2
You can view queues by tasks command or via web-interface.
Running: 1; Queued: 0; Pre-runned: 0; Free: 8 of 9+1 (0 blocked)
ID : User: NP: Time : Timelimit: Task
1635 : user1: 2: 20:07:41 :Mar 25 15:25:39: my_task
Tasks deleting is repformed by tasks command with -d key:
Administrative cleo commands:
- cleo-priority - change task priority. Is available for users too (only for own tasks)
- cleo-blocktask - tasks (un)blocking. Available for users too
- cleo-autoblock - set autoblock policy for one, all users or users group
- cleo-blockcpu - (un)block cpu(s)
- cleo-mode - check or set operation mode
- cleo-stat - generate statistics report
Task queues can be independet or hierarchical. For example:
|cpu1 ||cpu2 ||cpu3 ||cpu4 ||cpu5
||cpu6 ||cpu7 ||cpu8 ||cpu9 ||cpu10
Here long and short are independent - all tasks from one do not influence to other. But both are daughter to main.
Any task in main will be queued to daughter queues if there aren't enough free own cpus (not shared with daughters).
When daughter queues will get enough cpus for this task, it will be runned in main.
There is special featire in standatd sceduler. All "short" tasks will be runned before its order, if there are enough
free cpus and no new cpus are planned to be freed while "short" task will run.
You can read about more features (such as autoblocking, profiles, etc.) in the Cleo documentation.
Here the last Cleo version is available for download.