...
Postavka | Opis |
---|---|
NumWorkers | Maksimalan broj radnika/procesa jednog posla:
|
NumThreads | Broj dretvi po jednom radniku/procesu:
|
AdditionalProperties (SCHEDULER PLUGIN) | |
AdditionalSubmitArgs | Dodatna linija kod podnošenja posla:
|
GPUs | Broj grafičkih procesora:
|
Mem | Količina memorije po jednom chunk-u:
|
...
Note |
---|
Naredba parcluster bez argumenata stvara "cluster" objekt iz zadanog (default) "cluster" profila |
...
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 na klasteru (worker-a) + 1 CPU (kontrolni) na klasteru "c". Naredbom je stvorena i varijabla "job" tj. poveznica do objekta posla tipa job:
Code Block |
---|
job=c.batch('script_name', 'Pool', 4) |
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 | ||
---|---|---|
| ||
job.delete |
Pregled Pregledavanje i upravljanje poslovima na klasteru klasteru "c" moduć moguće je naredbama:
Code Block | ||
---|---|---|
| ||
c.Jobs |
Code Block | ||
---|---|---|
| ||
job2=c.Jobs(2) |
Code Block | ||
---|---|---|
| ||
delete(c.Jobs) |
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.job= c.batch('wave.parallel', 'Pool', 2)
Code Block | ||
---|---|---|
| ||
#Ptvaranje#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)
...