Changes between Version 151 and Version 152 of FermeLocale


Ignore:
Timestamp:
21/02/2024 12:27:10 (3 months ago)
Author:
lambert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FermeLocale

    v151 v152  
    389389
    390390queue
     391}}}
     392
     393=== Docker ===
     394Docker est déployé sur les machines de la ferme locale. Il est possible d'utiliser n'importe quelle image pour définir un environnement d’exécution pour vos jobs.
     395Les images docker peuvent être trouvées sur le site [https://hub.docker.com/ DockerHub]
     396
     397
     398==== Exécuter "cat" sur Debian ====
     399
     400**docker.submit**
     401
     402{{{
     403  #universe = docker is optional
     404  universe                = docker
     405 
     406  # nom de l'image sur dockerHub
     407  docker_image            = debian
     408
     409  # programme à exécuter dans l'environnement debian avec ses arguments
     410  executable              = /bin/cat
     411  arguments               = /etc/hosts
     412
     413  # fichiers de sortie à rapatrier depuis le nœud d’exécution de la ferme locale
     414  should_transfer_files   = YES
     415  when_to_transfer_output = ON_EXIT
     416  output                  = out.$(Process)
     417  error                   = err.$(Process)
     418  log                     = log.$(Process)
     419
     420  # pré-requis pour sélection d'un nœud de la ferme locale où faire tourner le job
     421  request_cpus   = 1
     422  request_memory = 1024M
     423  request_disk   = 10240K
     424
     425  queue 1
     426}}}
     427
     428==== Génération d'un histogramme avec ROOT ====
     429
     430ROOT est un programme d'analyse qui n'est pas forcément installé ou configuré sur les machines de la ferme locale.
     431Il est cependant possible de l'utiliser via une image docker.
     432
     433**Candle Histo.C** : le fichier root à executer
     434{{{
     435#include <TROOT.h>
     436#include <TCanvas.h>
     437#include <TH2I.h>
     438#include <TRandom.h>
     439
     440void candlehisto()
     441{
     442    // Définissez la taille du canevas avec une résolution plus élevée
     443    TCanvas *c1 = new TCanvas("c1", "Candle Presets", 1920, 1080);
     444    c1->Divide(3, 2);
     445
     446    TRandom *rng = new TRandom();
     447    TH2I *h1 = new TH2I("h1", "Sin", 18, 0, 360, 100, -1.5, 1.5);
     448    h1->GetXaxis()->SetTitle("Deg");
     449
     450    float myRand;
     451    for (int i = 0; i < 360; i += 10)
     452    {
     453        for (int j = 0; j < 100; j++)
     454        {
     455            myRand = rng->Gaus(sin(i * 3.14 / 180), 0.2);
     456            h1->Fill(i, myRand);
     457        }
     458    }
     459
     460    c1->cd(1);
     461    for (int i = 1; i < 7; i++)
     462    {
     463        c1->cd(i);
     464        TString title = TString::Format("CANDLEX%d", i);
     465        TH2I *myhist = (TH2I *)h1->DrawCopy(title);
     466        myhist->SetTitle(title);
     467    }
     468
     469    // Sauvegardez dans un seul fichier image dans le répertoire courant
     470    TString imgFileName = "output.png";
     471    c1->SaveAs(imgFileName);
     472}
     473
     474int main()
     475{
     476    candlehisto();
     477    return 0;
     478}
     479
    391480}}}
    392481
     
    407496}}}
    408497
     498**candlehisto.submit** : le fichier de soumission
     499{{{
     500  #universe = docker is optional
     501  universe                = docker
     502 
     503  # nom de l'image sur dockerHub
     504  docker_image            = rootproject/root
     505
     506  # programme à exécuter dans l'environnement ROOT avec ses arguments
     507  executable              = /opt/root/bin/root.exe
     508  arguments               = -b -q -l candlehisto.C
     509
     510  # Fichier d'input à transférer sur le nœud où va tourner le job
     511  transfer_input_files = candlehisto.C
     512
     513  # Fichier de résultat à transférer depuis le nœud ou a tourner le job en fin d’exécution
     514  transfer_output_files   = output.png
     515
     516  should_transfer_files   = YES
     517  when_to_transfer_output = ON_EXIT
     518
     519  # Fichier de logs
     520  output                  = out.$(ClusterId).$(ProcId)
     521  error                   = err.$(ClusterId).$(ProcId)
     522  log                     = log.$(ClusterId).$(ProcId)
     523
     524  # Pré-requis pour la sélection du nœud local ou faire tourner le job
     525  # mémoire requise
     526  request_memory          = 2000M
     527  # type de système requis
     528  +Requirements           = OpSysAndVer =?= "AlmaLinux"
     529  # nom de la nœud d’exécution de la ferme locale
     530  +Requirements           = machine     =?= "lpsc-c27.in2p3.fr"
     531
     532  queue 1
     533
     534}}}
     535
    409536=== exemple d'un fichier de description de soumission: ===
    410537{{{