Timelessprod/algorep

Step 3 - Jobs execution (5 pts)

Closed this issue · 1 comments

Rather than simply producing a possible schedule, we will now actually execute the jobs. Each job will contain a single C++ file, which will be compiled and then executed on a compute node (we will assume that g++ is available on the compute nodes). The standard output of the executed program will be the result of the job, which can be retrieved by the client who submitted it.
If jobs are placed on hold at the beginning, because not enough compute nodes are available, they will be scheduled via a consensus and then executed when a previous job finishes, freeing a compute node. We must therefore set up a multi-step consensus.
We also want to make things more complex by adding to the clients the possibility to submit more than one job at a time or over time. Typically these requests are read from a file. The addition of this feature should not alter the consensus.

Les choses à faire :

  • Change Entry format and add Job Struct
  • Get Job Id
  • Gérer le job OPEN
  • StateMachine Apply
  • Readfile in REPL
  • CreateWorker and JobChan
  • Basic Run
  • Gérer le CloseJob
  • Gérer la reponse Submit Job (avec l'Id)
  • Gérer la commande Status JobReference pour avoir le resultat
  • Gérer G++ (job_jobId-term.out)
  • Gérer STATUS sans rien pour avoir l'état de chaque job resumé