Sariyer Kümesinde MATLAB Yazılımını Komut Arabiriminden Çalıştırmak
Merkezimizdeki sariyer kümesinde kurulu bulunan MATLAB yazılımı 9.1 (R2016b) ve 9.3 (R2017b) sürümleridir ve lisansımız aşağıdaki gibidir:
MATLAB: 20 licenses MATLAB_Distrib_Comp_Engine: 128 licenses SIMULINK: 10 licenses GADS_Toolbox: 20 licenses Image_Toolbox: 10 licenses Compiler: 10 licenses Optimization_Toolbox: 20 licenses Distrib_Computing_Toolbox: 10 licenses PDE_Toolbox: 10 licenses Symbolic_Toolbox: 10 licenses
İlk satırdaki lisans matlab kodumuzun paralel çalışması için gereken lisansdır ve görüleceği üzere 128 adet lisansımız mevcuttur. Yani en fazla 20 program ve tümünün toplamı 128 işlemciye kadar matlab işi çalıştırılabilmektedir. Ayrıca sadece yukarıda lisansta gözüken toolbox'lar kullanılabilir. Diğer toolbox'lar lisans olmadığından kullanılamaz.
Tek makinada Matlab çalıştırmak
Matlab programı (.m uzantılı program dosyası) çalıştırmak için gereken iş dosyası aşağıdaki gibidir. Bu betiği sariyer makinasında /okyanus/progs/slurm_betikleri/matlab-R2016b.sh ve /okyanus/progs/slurm_betikleri/matlab-R2017b.sh adresinde bulabilirsiniz:
#!/bin/bash
#SBATCH -A hsaat # account / proje adi
#SBATCH -n 28 # cekirdek / islemci sayisi
#SBATCH -N 1 # makina sayisi / ilave ayar yapmadikca mutlaka 1 olmali
#SBATCH -L matlab@flex5,matlabpar@flex5:28 # lisans isteniyor, buradaki sayi kullanilan cekirdek sayisi ile ayni olmali
module load MATLAB/R2016b
matlab -nodisplay -nosplash < ./programimiz.m
Yukarıdaki örnekte makina sayısı kullanıcı mutlaka 1 olmalıdır. Dolayısı ile bu ayar yapılmazsa, en fazla 1 makinada 28 işlemci (longq kuyruğunda 24 işlemci) kullanacak iş çalıştırılabilir. Daha fazla makina kullanımı aşağıda ayrı bir bölümde anlatılmıştır.
Aşağıda bir paralel matlab programı örnek olarak verilmiştir. Bu program http://hpcf.umbc.edu/other-packages/how-to-run-matlab-programs-on-maya sitesinden alınarak değiştirilmiştir. Ayrıca MATLAB dökümantasyonunada http://www.mathworks.com/help/pdf_doc/distcomp/distcomp.pdf adresinden ulaşabilirsiniz:
UHeM = parcluster('local');
poolobj = parpool(UHeM,28);
spmd
msg = sprintf('Hello world from process %d of %d', labindex, numlabs);
end
for i=1:poolobj.NumWorkers
disp(msg{i});
end
delete(poolobj);
Birden çok makinada Matlab çalıştırmak
Birden çok makinada Matlab programı (.m uzantılı program dosyası) çalıştırmak için gereken iş dosyası aşağıdaki gibidir. Bu betiği sariyer makinasında /okyanus/progs/slurm_betikleri/matlab-R2016b-multinode.sh ve /okyanus/progs/slurm_betikleri/matlab-R2017b-multinode.sh adresinde bulabilirsiniz. Aşağıdaki betikte servisleri başlatmak için verilen R2016b ifadesi, R2017b sürümü için R2017b şeklinde olacaktır:
#!/bin/bash
#SBATCH -A hsaat # account / proje adi
#SBATCH -n 56 # cekirdek / islemci sayisi
#SBATCH -N 2 # makina sayisi / ilave ayar yapmadikca mutlaka 1 olmali
#SBATCH -L matlab@flex5,matlabpar@flex5:56 # lisans isteniyor, buradaki sayi kullanilan cekirdek sayisi ile ayni olmali
module load MATLAB/R2016b
#MATLAB servisleri aciliyor, asagidaki satiri degistirmeyiniz:
/okyanus/progs/matlabAyarla/matlab_servisleri_baslat.sh R2016b
matlab -nodisplay -nosplash < ./programimiz.m
#MATLAB servisleri aciliyor, asagidaki satiri degistirmeyiniz:
/okyanus/progs/matlabAyarla/matlab_servisleri_durdur.sh R2016b
Yukarıdaki örnekte matlab servislerinin açılması ve kapanması oldukça uzun zaman almaktadır, bu sebeble işiniz gerçekten gerektirmedikce yukarıdaki 1 makina için olan betiği kullanınız.
Aşağıda bir paralel matlab programı örnek olarak verilmiştir. Bu program http://hpcf.umbc.edu/other-packages/how-to-run-matlab-programs-on-maya sitesinden alınarak değiştirilmiştir. Ayrıca MATLAB dökümantasyonunada http://www.mathworks.com/help/pdf_doc/distcomp/distcomp.pdf adresinden ulaşabilirsiniz:
profile_UHeM = parallel.importProfile('matlab-UHeM');
UHeM = parcluster(profile_UHeM);
poolobj = parpool(UHeM,56);
spmd
msg = sprintf('Hello world from process %d of %d', labindex, numlabs);
end
for i=1:poolobj.NumWorkers
disp(msg{i});
end
delete(poolobj);
Sariyer Kümesinde Grafik Arabirimle Matlab Çalıştırmak
Grafik arabirimle Matlab çalıştırmak için öncelikle x2go client yazılımını kendi bilgisayarımıza kurmalıyız. Gerekli açıklamaları Sariyer Kümesine İş Vermek sayfasında bulabilirsiniz.
Sonrasında grafik arayüzle matlab çalıştırmak için gereken işlemler, Sariyer Kümesinde Grafik Arabirim Kullanarak İnteraktif İş Çalıştırmak sayfasında anlatılmıştır.