Sunteți pe pagina 1din 9

Lucrare de Laborator NR 1.

Aplicaia midlleware CONDOR


1 Obiectivele lucrri
1. Cunoaterea suitei de aplicaii CONDOR i modul de folosire
2. Cunoaterea modurilor de rulare a diverselor tipuri de aplicai n condor

2 Breviar teoretic
Condor este un sistem de management al ncrcrii. Condor seamn cu sistemele de
tip consol.
Condor asigur:
- mecanisme pentru cozi de joburi,
- politici de programare,
- scheme de prioritate,
- monitorizarea resurselor,
- managementul resurselor.
Avantaje:
1. La fel ca la sistemele consol, utilizatorii trimit jobul lor(serial sau paralel) ctre
Condor, Condor l va pune n coad, va alege unde i cnd s fie executat pe baza
politicilor stabilite, monitorizeaz progresul i n final informeaz utilizatorul
despre terminarea procesului.
2. Un alt avantaj major al lui Condor este c ofer posibilitatea de a folosi cicli de
procesor nefolosii de la calculatoare. Condor poate fi configurat s foloseasc un
calculator cnd nu se nregistreaz activitate de la tastatur i mouse o perioad
configurabil. n plus Condor are un mecanism care detecteaz renceperea
activitii pe un computer i n cele mai multe cazuri reuete s transfere jobul pe
alt calculator nefolosit. Pentru transferul de fiiere Condor nu necesit sistem de
partajare ntre calculatoare i componen. Condor transmite de la calculator
napoi la cel care a transmis jobul i astfel Condor reuete s combine toate
resursele de calcul ntr-o singur resurs.
3. Mecanismul ClassAd folosit de Condor asigur posibilitatea de a folosi
mecanisme care s specifice cerinele jobului referitoare la resurse i mecanisme
pentru oferirea resurselor. Descrierea unui job poate s conin att informaii
despre necesarul resurselor ct i despre preferine ale jobului. De asemenea sunt
mecanisme care s defineasc preferine i disponibiliti despre joburile care sunt
rulate. Aceast opiune face ca meta-schedulerul Condor s fie unul dorit n

sisteme Grid. Totui n colaborarea cu alte sisteme Grid, este posibil doar prin
modificri ale codului Condor (23).
Condor este produs de Condor Research Project din cadrul University of WisconsinMadison (UW-Madison) i prima sa instalare a fost n cadrul departamentului UW-Madison
Department of Computer Sciences. Actualmente n cadrul aceluiai departament gestioneaz
peste 1000 de calculatore cu o medie de 650 de zile de procesare pe zi i a devenit un sistem
folosit de mai multe instituii guvernamentale i academice.
n timp a aprut nevoia pentru o putere mare de calcul pentru o perioad lung de
timp. Un mediu care ofer acest lucru se numete High-Throughput Computing (HTC).
Condor este un astfel de mediu. Vechile sisteme aveau un cost ridicat i achiziionarea lor se
fcea n comun de mai muli indivizi sau chiar grupuri de indivizi, dar acest fapt crea
neajunsuri. Cei care l achiziioneaz trebuie s l foloseasc cu rndul pentru o perioad de
timp limitat. Condor rezolv aceast nemulumire deoarece fiecare i achiziioneaz
propriile sisteme pe care le folosete cnd dorete i toate celelalte sisteme libere.
Un alt avantaj este acela de a nu fi nevoit s rescrii codul de aplicaii vechi pentru a
putea folosi aceast tehnologie.
Relinkarea vechilor aplicaii cu librriile Condor capt dou proprieti noi:
- puncte de control,
- posibilitatea de a efectua apeluri de sistem la distan.
Punctul de control este un set complet de informaii despre starea unui program. Un
program poate s fie reluat cu ajutorul unui punct de control. n cazul joburilor de durat
poate salva o perioad de timp considerabil. Condor salveaz puncte de control periodic sau
n momentul n care maina devine indisponibil pentru continuarea execuiei jobul. Jobul
poate fi continuat pe o alt main dar care trebuie s aib aceeai arhitectur n cadrul
procesului denumit migrare.

Figura1 Numrul de calculatoare Condor (24)

Securitatea mainilor pe care se ruleaz la distan este foarte puin afectat datorit
apelurilor de sistem la distan. Atunci cnd un job face un apel de sistem(funcii I/O) sunt
transmise sistemului care a iniiat jobul.
Condor poate fi instalat pe o mare varietate de platforme ca:
- Linux i386/IA64,
- Windows 2k/XP,
- MacOS,
- Solaris, IRIX,
- HP-UX,
- Compaq Tru64
- i altele.
Condor poate fi folosit mpreun cu alte tehnologii Grid cum ar fi:
- Globus: GT2,
- GT4,
- NorduGrid,
- UNICORE,
- Condor,
- PBS,
- LSF,
- EC2,
- NQS.
Se estimeaz c un sistem Condor poate s creasc pn la aproximativ 1 milion de
noduri. Se dorete creterea la aproximativ 10 milioane.
Condor poate fi preferat fa de alte tehnologi:
-datorit maturiti,
- este printre puinele tehnologi care ofer suport pentru Windows,
- simplu de folosit,
- scalabil i flexibil,
- este gratis i are o comunitate activ.
n Figura1 este prezentat prezena Condor pe mapamond.

3 Desfurarea lucrri
Pe toate staiile de lucru din laborator este instalat Condor. Pe fiecare calculator este
configurat s ruleze i s accepte joburi, iar joburile vor fi rulate instant. Atenie cu joburile
netestate care pot bloca comunicaia sau chiar calculatoarele.
Regsii condor n memoria calculatorului printr-o serie de executabile:
- condor_master: ruleaz continuu cu scopul de a supraveghea componentele
condor, dac una din ele se blocheaz sau evalueaz va fi restartat;
- condor_collector: este component a Condor central manager i se ocup cu
colectarea informaiilor despre calculatoare, utilizatori i joburi rulate;
- condor_negotiator: face parte din Condor central manger i decide unde sunt
rulate joburile;

condor_startd: este prezent doar pe staiile unde se pot rula joburi i are ca rol
pornirea joburilor i raportarea calculatorului ctre Condor central manager;
condor_schedd: este prezent doar pe staiile care au dreptul care adaug joburi n
cluster;
condor_shadow: cte o instan a acestui program va fi generat pentru fiecare
job adugat de pe acea staie.

3.1 Comenzi condor


3.2 condor_q
Comanda condor_qva afia joburile adugate de la staia curent. Rezultatul va
conine urmtoarele cmpuri:
-id o pereche de numere separate prin .. Primul numr semnific numrul clusterului
i al doilea numrul jobului;
- owner utilizatorul care a adugat jobul;
- submitted data la care a fost adugat;
- run_time timpul de rulare al jobului;
-st starea jobului care poate fi I sau R de la Idle sau Run;
- pri memoria consumat de job;
-cmd programul care se execut.
-- Submitter: Statia5 : <10.0.0.5:1032> : Statia5
ID
OWNER
SUBMITTED RUN_TIME ST PRI SIZE CMD
0 jobs; 0 idle, 0 running, 0 held

3.3 condor_status
Comanda condor_statusva afia toate staiile din cluster. Rezultatul va conine
urmtoarele cmpuri:
- name numele staiei, care poate fi limitat ca lungime;
- OpSys sistemul de operare, Ex Linux;
- Arch arhitectur staie, Ex Intel;
- State starea staiei, Ex Unclaimed=liber, Claimed=ruleaz un job;
- Activity poate fi Idle sau Busy;
- LoadAv ncrcarea medie a staiei;
- Mem memoria calculatorului n megabii;
- ActvityTime de ct timp staia face activitatea curent.

Name
slot1@Statia2
slot2@Statia2
slot1@Statia4
slot2@Statia4

OpSys

Arch State Activity LoadAv Mem ActvtyTime

WINNT51
WINNT51
WINNT51
WINNT51

INTEL
INTEL
INTEL
INTEL

Unclaimed Idle
Unclaimed Idle
Unclaimed Idle
Unclaimed Idle

0.000
0.000
0.000
0.000

507
507
507
507

0+05:05:07
0+01:05:05
0+01:00:04
0+01:00:05

slot1@Statia5 WINNT51
slot2@Statia5 WINNT51
slot1@Statia7 WINNT51
slot2@Statia7 WINNT51
slot1@Statia8 WINNT51
slot2@Statia8 WINNT51
slot1@Statia9 WINNT51
slot2@Statia9 WINNT51
slot1@t209-statia3 WINNT51
slot2@t209-statia3 WINNT51

INTEL Unclaimed Idle


INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle
INTEL Unclaimed Idle

0.010 507 0+01:45:05


0.000 507 0+01:45:06
0.000 507 3+05:05:56
0.000 507 0+01:00:05
0.000 507 0+06:05:09
0.000 507 0+02:05:06
0.000 507 0+06:00:12
0.000 507 0+02:00:06
0.000 507 0+02:00:04
0.010 507 0+02:00:05

Total Owner Claimed Unclaimed Matched Preempting Backfill


INTEL/WINNT51
Total 14

14
0

0
0

0
14

14

3.4 Adugarea unui job


nainte de a aduga un job avem nevoie de job. S presupunem urmtorul program:
#include <stdio.h>
main(int argc, char **argv)
{
int sleep_time;
int input;
int failure;
if (argc != 3) {
printf("Usage: simple <sleep-time><integer>\n");
failure = 1;
} else {
sleep_time = atoi(argv[1]);
input
= atoi(argv[2]);
printf("Thinking really hard for %d seconds...\n", sleep_time);
sleep(sleep_time);
printf("We calculated: %d\n", input * 2);
failure = 0;
}
return failure;
}

Denumii programul simple.c i compilai programul.


Pentru a aduga jobul trebuie creat un fiier cu descrierea jobului n felul urmtor:
Universe
= vanilla
Executable = simple.exe
Arguments = 4 10
Log
= simple.log
Output
= simple.out
Error
= simple.error
should_transfer_files
= YES

when_to_transfer_output = ON_EXIT
Queue

Universe specific universul de rulare, vanilla este cel standard mai trziu vom
ntlni i altele;
Executable numele programului rulat;
Arguments argumentele pentru programul dat anterior;
Log nu este cmp obligatoriu, el specific fiierul n Condor va scrie un log despre
actuala execuie
Output specific numele fiierului n care Condor va depune rezultatul;
Error fiierul n care vor fi scrise eventualele erori;
Should_transfer_files specific dac sunt sau nu transferate fiiere, necesar n cazul
n care nu se folosesc locaii partajate n reea;
When_to_transffer_output cnd trebuie transferat coninutul ieirii.

Adugarea jobului se face cu comnada:


condor_submit submit
Submitting job(s).
Logging submit event(s).
1 job(s) submitted to cluster 4.

Vizualizarea stri jobului:


condor_q
-- Submitter: Statia5 : <10.0.0.5:1032> : Statia5
ID
OWNER
SUBMITTED RUN_TIME ST PRI SIZE CMD
4.0 Administrator 2/8 15:46 0+00:00:17 I 0 0.0 simple.exe 4 10
1 jobs; 1 idle, 0 running, 0 held
Fiier de log
Fiierul out

3.5 Adugarea unui job parametrizat


Dac folosim Condor pentru a aduga cte un job cel mai probabil nu avem nevoie de
Condor.
Urmtorul exemplu prezint un fiier care definete 3 joburi:
Universe
= vanilla
Executable = simple
Arguments = 4 10
Log
= simple.log
Output
= simple.$(Process).out
Error
= simple.$(Process).error
should_transfer_files
= YES
when_to_transfer_output = ON_EXIT
Queue

Arguments = 4 11
Queue
Arguments = 4 12
Queue

Se poate observa prezena $(Process) care la momentul rulri va fi nlocuit idul jobului.
Fiierele de ieire vor arta sub forma urmtoare:
simple.1.out, simple.2.out, ect.

3.6 Adugare unui job Java


Folosirea programelor n Java este util n momentul n care avem un cluster format
din mai multe arhitecturi.
Paii:
1. Se editeaz programul Java:
public class simple
{
public static void main(String[] args)
{
if (args.length != 2) {
System.out.println("Usage: simple.java <sleep-time><integer>");
}
Integer arg_sleep_time;
Integer arg_input;
arg_sleep_time = new Integer(args[0]);
arg_input
= new Integer(args[1]);
int sleep_time;
int input;
sleep_time = arg_sleep_time.intValue();
input
= arg_input.intValue();
try {
System.out.println("Thinking really hard for " + sleep_time + "
seconds...");
Thread.sleep(sleep_time * 1000);
System.out.println("We calculated: " + input * 2);
} catch (InterruptedException exception) {
;
}
return;
}
}

2. Se compileaz programul:
javac simple.java

3. Fiierul de adugare al jobului

Universe
Executable
Arguments
Log
Output
Error
java_vm_args
should_transfer_files
when_to_transfer_output
Queue

=
=
=
=
=
=
=
=
=

java
simple.class
simple 4 10
simple.log
simple.out
simple.error
-Xmx500m
YES
ON_EXIT

3.7 Adugrea unui job DAG


DAG este utilizat pentru a defini secvene de joburi. S considerm exemplul din
figura 1.2:

Figura 1.2 Graf secvene de joburi


n acest caz avem o serie de joburi n paralel dar avem i un job care pregtete date
pentru rulare i la sfrit unul care le centralizeaz.
Pentru a putea alctui un graf de rulare ca cel de mai sus mai nti trebuie s avem
fiiere submit pentru fiecare job n parte.
job.setup.submit
job.work1.submit
job.work2.submit
job.finalize.submit

Copiai fiierul de mai sus cu numele indicate. Fiecare fiier trebuie editat pentru a
schimba fiiere de ieire i de eroare nu dorim ca el s i suprascrie rezultatul. Fiierul de log
va rmne acelai.
Se poate crea fiierul Dag:
Job
Job
Job
Job

Setup
Work1
Work2
Final

job.setup.submit
job.work1.submit
job.work2.submit
job.finalize.submit

PARENT Setup CHILD Work1 Work2


PARENT Work1 Work2 CHILD Final

Denumii fiierul simple.dag. Adugai fiierul n Condor cu urmtoarea comand:


condor_submit_dag simple.dag

Verificaii periodic coada de joburi Condor pentru a observa ordinea de execuie.


Analizai cele 4 fiiere de ieire i fiierul log.
Adiional vei mai gsi i fiierul de log DAG
simple.dag.dagman.out

4 Cerine
1.
2.
3.
4.

Testai toate programele i toate tipurile de adugare a joburilor n Condor;


Analizai fiiere de log i cele cu rezultate;
tergei un job din list;
Observai starea staiilor n momente de timp cnd execut i colegii votri
programe.

S-ar putea să vă placă și