oar.modules
oar.modules.almighty
This module is the OAR server. It decides what actions must be performed. It is divided into 3 processes:
One listens to a TCP/IP socket. It waits information or commands from OAR user program or from the other modules.
Another one deals with commands thanks to an automaton and launch right modules one after one.
The third one handles a pool of forked processes that are used to launch and stop the jobs.
- oar.modules.almighty.check_nodes()[source]
Start
oar.modules.finaud
- class oar.modules.almighty.Almighty[source]
Bases:
object
- start_companions()[source]
Start appendice
oar.modules.appendice_proxy
andoar.modules.bipbip_commander
commander processes
- add_command(command)[source]
as commands are just notifications that will handle all the modifications in the base up to now, we should avoid duplication in the command file
oar.modules.appendice_proxy
Proxy to help incremental transition toward ZMQ use between version 2.x OAR’s modules and version 3.x
oar.modules.bipbip
oar.modules.bipbip_commander
Process that launches and manages bipbip and leon processes.
- Commands:
OAREXEC
OARRUNJOB
LEONEXTERMINATE
TODO: jsonify ?
Example:
{
"job_id": 5,
"cmd": "LEONEXTERMINATE"
"args": [5]
}
- oar.modules.bipbip_commander.launch_command(command, logger)[source]
Launch the command line passed in parameter
- oar.modules.bipbip_commander.bipbip_leon_executor(command: dict[str, Any], leon_command: str, bipbip_command: str, logger)[source]
oar.modules.finaud
Check Alive and Suspected nodes.
oar.modules.greta
This module is responsible of the advanced management of the standby mode of the nodes. It’s related to the energy saving features of OAR. It is an optional module activated with the ENERGY_SAVING_INTERNAL=yes configuration variable.
It runs as a fourth oar.modules.almigthy
daemon and opens a pipe on which it receives commands
from the MetaScheduler. It also communicates with a library called “WindowForker”
that is responsible of forking shut-down/wake-up commands in a way that not too much
commands are started at a time.
This module is responsible of waking up / shutting down nodes when the scheduler decides it (writes it on a named pipe)
CHECK command is sent on the zmq PULL socket to oar.modules.greta
from different modules:
- By
oar.kao.meta_sched
if there is no node to wake up / shut down in order. to check timeout and check memorized nodes list <TODO>
to check booting nodes status
- By
TOFINISH: Greta will integrate window guarded launching processes
- By windowForker module:
to avoid zombie process
to messages received in queue (IPC)
Example of received message:
{
"cmd": "WAKEUP",
"nodes": ["node1", "node2" ]
}
- oar.modules.greta.fill_timeouts(str_timeouts)[source]
Timeout to consider a node broken (suspected) if it has not woken up The value can be an integer of seconds or a set of pairs. For example, “1:500 11:1000 21:2000” will produce a timeout of 500 seconds if 1 to 10 nodes have to wakeup, 1000 seconds if 11 t 20 nodes have to wake up and 2000 seconds otherwise. ENERGY_SAVING_NODE_MANAGER_WAKEUP_TIMEOUT=”900”
- class oar.modules.greta.GretaClient(config, logger)[source]
Bases:
object
Greta client part used by metascheduler to interact with Greta server