...
Postavka | Opis |
---|
NumWorkers | Maksimalan broj radnika/procesa jednog posla: - default=32 (Ukoliko licencija dopušta moguća promjena)
- Odgovara select parametru PBS-a
|
NumThreads | Broj dretvi po jednom radniku/procesu: - default=1
- Odgovara ncpus parametru PBS-a
|
AdditionalProperties (SCHEDULER PLUGIN)
|
AdditionalSubmitArgs | Dodatna linija kod podnošenja posla: - default='-l place=pack' - smještanje svih resursa na jedan čvor
- Ukoliko je traženi broj resursa veći od dostupnih resursa jednog čvora
potrebno je ukloniti ovu liniju iz postavki
|
GPUs | Broj grafičkih procesora: - default=0
- Odgovara ngpus parametru PBS-a
|
Mem | Količina memorije po jednom chunk-u: - default=2gb
- Odgovara mem parametru PBS-a
|
...
Note |
---|
Naredba parcluster bez argumenata stvara "cluster" objekt iz zadanog (default) "cluster" profila |
Podnošenje poslovia
Poslovi se podnose sa batch naredbom. Batch naredba pokreće posao iz skripte/datoteke ili funkcije. Opcijom 'Pool' definiramo broj "worker-a" ili radnih procesa. Kada podnesemo posao, batch će automatski dodati još jednog kontrolnog "worker-a" koji izvršava naredbe skripte.
Primjer pokretanja posla tj. izvršavanje naredbi iz skripte 'script_name' koristeći 4 CPU jezgre (worker-a) + 1 CPU (kontrolni) na klasteru "c". Naredbom je stvorena i varijabla "job" tj. poveznica do objekta posla tipa job:
...
...
Code Block |
---|
|
tic
parfor i = 1:100000000
A(i) = sin(i*2*pi/1024);
end
t=toc |
Pregled poslova
klaster.Jobs - ispisuje popis svih poslova
job.state - upit stanja posla
...
Note |
---|
Posao će se podnijeti sa argumentima '-l select=5:ncpus=1:ngpus=0:mem=2gb -l place=pack' |
Koristeći varijablu job definiranu npr. gornjom naredbom možemo dohvatiti status i rezultate posla:
Code Block |
---|
title | Ispis rezultata posla (ako je posao |
---|
|
...
...
Pregledavanje i upravljanje poslovima na klasteru "c" moguće je naredbama:
Code Block |
---|
title | Ispis svih poslova na klasteru |
---|
|
c.Jobs |
Code Block |
---|
title | Stvaranje poveznice drugog posla na listi poslova |
---|
|
job2=c.Jobs(2) |
Code Block |
---|
title | Brisanje svih poslova klastera c |
---|
|
Upravljanje poslovima
...
...
Primjer
U primjeru stvaramo cluster objekt iz zadanog profila klastera. Podnosimo posao definiran u skripti spectral_radius.m na 5 CPU jezgre (4 radna i 1 kontrolni proces), provjeravamo status i ispisujemo rezultat ukoliko je posao završio.
Posao mora biti podnesen iz direktorija u kojoj se nalazi spectral_radius.m skripta.
Code Block |
---|
|
#Stvaranje objekta "c" tipa cluster
>>c=parcluster
#Podnošenje batch posla iz datoteke spectral_radius.m
>>job = c.batch('spectral_radius', 'Pool',4)
#Provjera statusa posla
>>job.State
#Ispis rezultata posla
>>job.fetchOutputs{:}
|
Code Block |
---|
|
tic
n = 400;
A = 500;
a = zeros(n);
parfor i = 1:n
a(i) = max(abs(eig(rand(A))));
end
t=toc |
Podnesi posao na 15 radnika (16 CPU jezgara)
...