TRUBA » Türkiye'deki bilimsel çalışmalara katkıda bulunmak üzere süper bilgisayarlar yardımıyla yüksek performanslı hesaplama imkanı sunan ve depolama kaynakları ile bilimsel veri ambarı hizmeti veren Ulusal Araştırma e-Altyapısıdır.
Süper bilgisayar » normal bilgisayarların tek başına çözemediği problemleri çözmek ya da yüksek hızda veri analizi ve hesaplama gerektiren işlemleri yapabilmek için kullanılan, bellek miktarı fazla, işlemci kapasitesi yüksek eş zamanlı(paralel) çalışan bilgisayar kümelerine denir.
Süper bilgisayarlar; Genom bilim, iklim modelleme, ilaç tasarımı, akışkanlar mekaniği, yüksek hızda veri analizi, veri madenciliği gibi yüksek hesaplama gerektiren işlerde kullanılırlar.
TRUBA’ya Kimler Üye Olabilir?
- Doktora ve üstü akademik seviyedeki araştırmacılar,
- ARDEP ve BAP projesi yürüten araştırmacılar ve öğrencileri,
- Yüksek lisans ve lisans öğrencilerinin üyelikleri geçici olarak kabul edilmemektedir.
TRUBA Üyelik Hakları
- TRUBA üyeliği ve kullanımı ücretsizdir.
- 1 TB depolama ve 420.000 işlemci saat hesaplama kaynağı verilmektedir.
- TRUBA'daki kaynaklar ile üretilen yayınlar Portal'a eklendiğinde süre arttırılır.
- Linux üzerinde çalışan ücretsiz ya da lisanslı araştırma uygulamaları kullanılabilir.
- 15 güne kadar süren uzun işler kesintisiz çalıştırılabilir. 15 günden uzun süren hesaplamalar yapmak için uygulama kaldığı yerden devam etmeyi desteklemelidir.
- Lisanslı uygulamaların lisanslarını sağlamak gerekmektedir. Ev dizinine uygulama kurabilmektedir.
TRUBA’ya Nasıl Üye Olunur?
1- Üyelik işlemleri https://portal.truba.gov.tr/ adresinden Giriş linki ile başlamaktadır.
2- Giriş linki, E-devlet giriş sayfasına yönlendirmektedir. E-devlet bilgileri ile TRUBA-PORTAL’a giriş yapılmaktadır.
3- E-devlet üzerinden giriş yapıldıktan sonra Kullanım politikası onaylanmalıdır.
4- Kullanım Politikası onayından sonra kurum bilgileri otomatik olarak gelmektedir.
5- ORCID numarası eksikse, bağlantı takip edilerek ORCID numarası alınmalıdır.
6- E-Posta adresimize gelen linke tıklanarak E-Posta doğrulanması yapılmalıdır.
7- Profil sayfasından şifre talep edilmelidir. 5 iş günü içerisinde kullanıcı adınız ve parolanız size ulaştırılır.
TRUBA’ya Bağlanmak
TRUBA'ya bağlanmanın iki ana yolu vardır:
- ULAKNET ağına bağlı Üniversite kampüsleri içerisinden doğrudan,
- Üniversite dışarısından ise OpenVPN kullanarak,
https://openvpn.net/ adresinden OpenVPN indirebilir,
https://docs.truba.gov.tr/TRUBA/kullanici-el-kitabi/open-vpn/windows_openvpn.html adresinde OpenVPN’in kurulum aşamaları mevcuttur. Her kullanıcı VPN hizmetinden yararlanabilir.
OpenVpn ana sayfasından yeni bir hesap oluşturmalı ya da hesabınız varsa login olmalısınız. Bazı zamanlarda bağlanamaz iseniz bu sayfadan tekrar oturum açmanız gerekebilir.
OpenVpn'e giriş yaptıktan sonra Access Server seçeneği seçilerek devam edilmelidir.
OpenVpn'e bağlanmak ya da bağlantınızı kesmek için bilgisayarınızın sağ alt köşesinde bulunan OpenVpn ikonununa sağ tıklayıp seçenekleri görebilirsiniz. Bağlantınızı buradan takip edebilir ya da kontrol edebilirsiniz. Eğer OpenVPN ikonunu göremiyorsanız programı çalıştırmayı unutmayınız.
TRUBA Linux Kabuk Erişimi
Temel kullanıcı ara yüzü Linux kabuk erişimidir. SSH istemcisi (PuTTY, ssh, SecureCRT, vb.) ile kullanıcı arayüzüne bağlantı kurulur. Windows için PuTTY ve SecureCRT, Linux ve mac için ssh kullanılabilir. Daha görsel bir kullanım için OpenOnDemand (OOD) kurulumu bulunmaktadır. Test aşamasındadır ve geliştirilmektedir. Tarayıcı üzerinde çalışmaya olanak tanımaktadır.
Putty, ağ üzerindeki Linux işletim sistemli sunucumuza terminal üzerinden bağlantı sağlayarak çeşitli komutlar ile yönetebilmemizi sağlayan, ücretsiz ve açık kaynak kodlu bir Windows yazılımıdır.
Putty, uzaktaki makinelere 22. Port üzerinden bağlanmamızı sağlar. 172.16.7.1
IP adresini kullanarak giriş yapabiliriz. ULAKNET ağına bağlı Üniversite kampüsleri içerisinden ise OpenVPN kullanmadan, IP yerine levrek1.ulakbim.gov.tr
yazarak giriş yapabiliriz.
Gelen komut ekranında bize verilen kullanıcı adı ve şifre ile giriş yapabiliriz. Şifrenizi girerken şifreniz ekranda görünmeyecektir ancak şifrenizi doğru girdiğinize eminseniz Enter tuşuna basarak devam etmelisiniz. Eğer kopyaladığınız şifrenizi girmek isterseniz sadece şifre giriş satırına sağ tıklamanız yeterli olacaktır, bu şekilde şifrenizi ekranda görünmese de girmiş olacaksınız daha sonra Enter tuşuna basarak devam etmelisiniz.
Başarılı bir şekilde giriş yapıldıktan sonra aşağıdaki gibi bir ekran karşınıza gelecektir. Bu ekranda önemli olan bazı duyurular ve diğer sistem bilgileri bulunmaktadır.
En çok kullanılan Linux komutlarına https://docs.truba.gov.tr/tutorials/linux-intro.html adresinden erişilebilmektedir.
Ya da https://bilisimkitabi.com/linux-komutlari 'ndan Temel Linux Komutlarına bakabilirsiniz.
TRUBA FTP Erişimi
TRUBA'ya FTP üzerinden erişim için Windows üzerinden WinSCP adlı programı kullanabilirsiniz.
WinSCP » Windows işletim sistemi için üretilmiş, yerel ile uzak bilgisayar arasında bağlantı kurarak FTP, FTPS, SCP, SFTP, WebDAV veya S3 dosya transferi yapabilen açık kaynak kodlu ve ücretsiz bir programdır.
172.16.7.1
IP adresini kullanarak, kullanıcı adı ve şifre ile giriş yapılabilir. ULAKNET ağına bağlı Üniversite kampüsleri içerisinden ise OpenVPN kullanmadan, IP yerine levrek1.ulakbim.gov.tr
yazarak giriş yapılabilir.
Levrek1, Sardalya1 ve Barbun1 için farklı IP'ler kullanmalısınız:
- Levrek1 için:
172.16.7.1
- Sardalya1 için:
172.16.8.1
- Barbun1 için:
172.16.10.1
TRUBA Program Kurulumu ve İş Gönderme
Kullanıcı ara yüzleri iş çalıştırmak için tasarlanmış sistemler değildir. Bu sistemler kullanıcıların sisteme bağlanıp dosyalarını düzenleyip kuyruklara iş göndermek için uygundur. Diğer kullanıcıların çalışmalarını aksatmayacak kısa süreli test işleri çalıştırılabilir ancak uzun süreli işler için uygun değildir. Eğer buralarda diğer kullanıcıların işlerini aksatacak ya da fazla kaynak kullanımı yapan işler tespit edilirse uyarıyla birlikte kullanıcı hesapları askıya alınmaktadır.
Kullanıcılar hesaplama sunucularına doğrudan erişemezler, bunun yerine öncelikle kullanıcı ara yüzüne erişirler, burada işlerini yapılandırıp kuyruğa gönderirler. Kümede ki tüm işler ve kaynaklar, SLURM tarafından yönetilmektedir. TRUBA 'ya iş göndermek için bir SLURM betik dosyası hazırlamanız gerekir. Gerekli ayarları ve ihtiyaçlarınızı bu betikler içine ekledikten sonra bu dosyalar çalıştırılır ve SLURM bizim için gerekli işlemleri planlar ve adım adım en kısa sürede uygular. Daha sonra biz, işlerimiz ne durumda kontrol edebiliriz.
Sıkça Kullanılan Slurm Komutları:
-p:
İşin gönderileceği kuyruk-A:
Hesap adı(genelde kullanıcı adınız)-J:
İşinizin kuyrukta görünecek adı veya kısa bir açıklama-N:
Kullanmak istediğiniz sunucu sayısı-n:
Kullanmak istediğiniz çekirdek sayısı--time=04:00:00
İşin maksimum süresi
/truba/sw/scripts
dizinine giderek hazır Slurm Scriptlerine göz atabilirsiniz, burada ki scriptler üzerinde kendinize göre değişiklikler yaparak kullanabilirsiniz:
cd /truba/sw/scripts
SLURM Dosya Yapısı:
#!/bin/bash
#SBATCH -p barbun-cuda
#SBATCH -A "mahmutaydin" #hesap adı ya da grup adı
#SBATCH -J "İlk İş Gönderme"
#SBATCH -N 2 #hsabın dağıtılacağı node adedi
#SBATCH -tasks-per-node=20 #her sunucuda kullanılacak çekirdek sayısı
#SBATCH -time=2:00:00 #işin süresi
##SBATCH --array=1-100:1
#---------------------------------------- KÜTÜPHANE AYARLARI---------------------------------
echo "SLURM_NODELIST $SLURM_NODELIST"
echo "NUMBER OF CORES $SLURM_NTASKS"
export OMP_NUM_THREADS=1
source /truba/sw/centos7.3/comp/intel/PS2016-update3/compilers_and_libraries/linux/bin/compilervars.sh intel64
module load centos7.3/comp/cmake/3.10.1
module load centos7.3/lib/cuda/9.0
#---------------------------------------- KÜTÜPHANE AYARLARI---------------------------------
mpirun $GROMACS_DIR/bin/gmx_mpi mdrun -v -deffnm inputFile -pin on -nsteps 50000
#mpirun $GROMACS_DIR/bin/gmx_mpi mdrun -v -deffnm inputFile-$SLURM_ARRAY_TASK_ID -pin on -nsteps 50000
exit
Şimdi iş dosyası göndermek için kendimize ait bir SLURM betik dosyası hazırlayalım:
#!/bin/bash
#SBATCH -J "İlk İş Gönderme"
#SBATCH -A "mahmutaydin"
#SBATCH -output=slurm-%j.out
#SBATCH -error=slurm-%j.err
#debug kuyruğundaki tek bir sunucudaki tek bir çekirdeğe
#Hyperthreading/SMT kullanmadan iş gönderelim:
#SBATCH -p debug
#SBATCH -N 1
#SBATCH -n 2
#SBATCH -c 1
#SBATCH --threads 1
echo -n "İşin Çalıştğı sunucu: "
hostname
echo -n "İşin çalışmaya başladığı saat: "
date
sleep 60
echo -n "İşin sonlandığı saat: "
date
Betiği çalıştırdıktan sonra Batch script contains DOS line breaks hatası alırsanız, kodları windows editörde yazdığınızdan dolayıdır. Windows editör "line breaks" eklediği için bunları silmeniz gerekecek. Betiği çalıştırmadan önce aşağıdaki kodu çalıştırarak " Windows line breaks" 'leri silmelisiniz. myBatchFile yerine kendi dosya adınızı yazmalısınız.
dos2unix myBatchFile
Şimdi ilk işimizi içeren betik dosyasını çalıştırabiliriz:
sbatch slurm-is-gonder.slurm
İş başarılı bir şekilde gönderildikten sonra Submitted batch job 298534
gibi bir iş numarası ekrana yazılacaktır. Bu numara ile işlerimizi takip edebiliriz.
squeue
komutu ile ne durumda olduğuna bakabiliriz, aşağıdaki gibi bir bilgi ekrana gelecektir.
squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
298573 debug İlk İ▒ mahmutaydin R 0:00 1 barbun15
Eğer iş gönderdikten sonra iptal etmek isterseniz scancel
komutu ardından iş numarası girilerek iptal edilebilir.
scancel 298534
Betik çalıştırıldıktan sonra ev dizininizde bir adet slurm-isnumarasi.output
adında bir dosya oluşacaktır. Bu dosya size çalışan betikle ilgili bilgileri gösterecektir.
Betik dosyaları üzerinden iş gönderebileceğiniz gibi komut satırı üzerinden de gönderebilirsiniz. Örnek:
sbatch -n 40 -N 1 -gres=gpu:2 -p barbun-cuda slurm-is-gonder.slurm
#veya
sbatch --task-per-node 20 -N 2 -gres=gpu:1 -p barbun-cude test_job.slurm
Sistemdeki Kuyrukların Durumunu Görmek
Kuyruklar sistemde ki sunuculardır. Bir kuyruk, iş gönderilen tek bir sunucu olabileceği gibi birden fazla sunucudan da oluşabilir. Sistemdeki kuyrukların durumunu görmek için lssrv
komutunu kullanabilirsiniz.
lssrv
TRUBA Partitions State
┏━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
┃ Partition ┃ CPUs ┃ CPUs ┃ Wait. Jobs ┃ Wait. Jobs ┃ Nodes ┃ Max Job Time ┃ Min. Nodes ┃ Max. Nodes ┃ Core ┃ RAM ┃
┃ Name ┃ (Free) ┃ (Total) ┃ (Resource) ┃ (Total) ┃ (Total) ┃ DD-HH:MM:SS ┃ Per Job ┃ Per Job ┃ per Node ┃ per Core ┃
┡━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
│ single │ 190 │ 192 │ 0 │ 3 │ 8 │ 15-00:00:00 │ 1 │ UNLIMITED │ 24 │ 9500 MB │
│ smp │ 84 │ 224 │ 0 │ 0 │ 1 │ 8-00:00:00 │ 1 │ UNLIMITED │ 224 │ 17000 MB │
│ barbun │ 3548 │ 4760 │ 41 │ 41 │ 119 │ 15-00:00:00 │ 1 │ UNLIMITED │ 40 │ 8500 MB │
│ barbun-cuda │ 100 │ 960 │ 0 │ 3 │ 24 │ 15-00:00:00 │ 1 │ UNLIMITED │ 40 │ 8500 MB │
│ akya-cuda │ 20 │ 960 │ 1 │ 89 │ 24 │ 15-00:00:00 │ 1 │ UNLIMITED │ 40 │ 8500 MB │
│ hamsi │ 1120 │ 8064 │ 1 │ 317 │ 144 │ 3-00:00:00 │ 1 │ UNLIMITED │ 56 │ 3400 MB │
│ mid2 │ 3280 │ 4760 │ 1 │ 163 │ 119 │ 8-00:00:00 │ 1 │ UNLIMITED │ 40 │ 8000 MB │
│ long │ 2900 │ 4760 │ 32 │ 32 │ 119 │ 15-00:00:00 │ 1 │ UNLIMITED │ 40 │ 8000 MB │
│ debug │ 6904 │ 6904 │ 0 │ 0 │ 168 │ 00:15:00 │ 1 │ 4 │ - │ 8000 MB │
└─────────────┴────────┴─────────┴────────────┴────────────┴─────────┴──────────────┴────────────┴────────────┴──────────┴──────────┘
Last update: 2022-09-16 16:45:02
Sistemdeki Online Kullanıcılar
Sistemdeki online kullanıcıları gormek icin w
komutunu kullanabilirsiniz.
TRUBA Kullanıcılar Arası Dosya Transferi
Kullanıcı dizinlerinin başka kullanıcıların erişimine açılması (ACL). Bazı zamanlarda kullanıcılar başka kullanıcıların dosyalarına erişmek isteyebilirler, senaryomuza göre user2 adlı kullanıcıya erişim izni verelim. user1 adlı kullanıcı aşağıdaki gibi bir kod çalıştırmalı:
setfacl -m u:user2:x /truba/home/user1
setfacl -dm u:user2:rwx /truba/home/user1/ortak_dizin
Erişim izni olan user2, user1'e dosya göndermek için aşağıdaki gibi bir kod çalıştırmalı:
scp -rv file_name.zip user1@172.16.7.1:/truba/home/user1/ortak_dizin
Asagidaki ornekte getfacl
ile dosyaya tanimli acl’leri gorebiliriz.
getfacl /truba/home/mahmutaydin/ortak_dizin/
Sıkça Yapılan Hatalar
- Kullanıcı arayüzünde iş çalıştırmak
- GPU kullanmayan işleri, GPU destekli sunuculara göndermek
- Çekirdek sayısı belirlerken gerekli belleği hesaplamamak
- İş ile ilgili süre bilgisini hatalı girmek
- İş geometrisini hatalı belirtmek
TRUBA Mimarisi
CPU Kaynakları
Mercan, en eski sunuculardan ve AMD işlemcisine sahiptir diğerleri Intel sunuculardır. Her yıl bu sunucular yenilenmeye çalışılmaktadır. Her sunucu üzerinde ki bellek miktarı, hızları ve işlem kapasiteleri birbirinden farklıdır.
Sunucu Ailesi | Yıl | #Node | Mimari | İşlemci | Performans | Bellek |
---|---|---|---|---|---|---|
Mercan | 2011 | 192 | 12 Çekirdek X 2 CPU | Opteron 6176 2.30GHz | 220.8 | 128 GB |
Levrek | 2013 | 128 | 8 Çekirdek X 2 CPU | Xeon E5-2690 2.90GHz | 371.2 | 256GB |
LevrekV2 | 2014 | 48 | 12 Çekirdek X 2 CPU | Xeon E5-2680 v3 2.50GHz | 960 | 256GB |
Orkinos | 2016 | 1 | 14 Çekirdek X 16 CPU | Xeon E7-4850 v3 2.20GHz | 7.9Tflops | 4TB |
Sardalya | 2017 | 128 | 14 Çekirdek X 2 CPU | Xeon E5-2690 v3 2.60GHz | 1164Tflops | 256GB |
Barbun | 2018 | 120 | 20 Çekirdek X 2 CPU | Xeon Scalable 6148 2.40Gz | 2048Tflops | 348GB |
GPU Kaynakları
CPU kaynaklarına ek olarak GPU kaynakları da mevcuttur.
Sunucu Ailesi | Yıl | #Node | Mimari | İşlemci | Performans | Bellek | GPU |
---|---|---|---|---|---|---|---|
Barbun CUDA | 2018 | 24 | 20 Çekirdek X 2 CPU + 2 X NVidia P100 GPU | Xeon Scalable 6148 2.40GHz | 2048GFlops + 9400GFlops | 384GB + 2 X 16 GB HBM | 2 |
Akya CUDA | 2018 | 24 | 20 Çekirdek X 2 CPU + 4 X NVidia V100 GPU | Xeon Scalable 6148 2.40GHz | 2048GFlops + 4 X 7800GFlops | 384GB + 4 X 16 GB HBM | 4 |
Depolama Kaynakları
Depolama | Boyut | Amaç | Tür |
---|---|---|---|
/truba | 7.5 Pbyte | Ev ve uygulama dizinleri | Lustre |
/truba_scratch | 7.5 Pbyte | İş çalıştırma | Lustre |
/tmp | 450Gb-1.5 Pbyte | İş çalıştırma | Yerel |
Hesaplama Kuyrukları
Kuyruk | Node | Sunucular | Zaman Limiti | MemPerCPU | Açıklama |
---|---|---|---|---|---|
Single | 5 | Levrekv2 | 15 Gün | 9500MB | 1 çekirdekli işler |
Short | 24 | Levrekv2, Sardalya, Barbun | 4 Saat | 8000MB | xxx |
Mid1 | 271 | Levrekv2, Sardalya, Barbun | 4 Gün | 8000MB | xxx |
Mid2 | 271 | Levrekv2, Sardalya, Barbun | 8 Gün | 8000MB | xxx |
Long | 271 | Levrekv2, Sardalya, Barbun | 8 Gün | 8000MB | xxx |
Smp | 1 | Orkinos | 15 Gün | 17000MB | xxx |
Mercan | 128 | Mercan | 15 Gün | 4200MB | xxx |
Levrekv2 | 20 | Levrekv2 | 15 Gün | 9500MB | xxx |
Sardalya | 116 | Sardalya | 15 Gün | 8000MB | xxx |
Barbun | 120 | Barbun | 15 Gün | 8500MB | xxx |
Barbun-cuda | 24 | Barbun-cuda | 15 Gün | 8500MB | Yanlızca CUDA |
Akya-cuda | 24 | Akya-cuda | 15 Gün | 8500MB | Yanlızca CUDA |
Debug | 441 | Tüm Sunucular(orkinos hariç) | 15 Dakika | 8000MB | Test İşleri |
Interactive | 4 | Levrekv2 | 15 Gün | 8000MB | İnteraktif İşler |
Sunucuların bu şekilde yapılandırılmalarının sebebi kısa sürede bitecek işleri ona göre, uzun sürede bitecek işleri ise ona göre uygun sunuculara göndermeniz. Söz gelimi daha kısa süre bitecek bir işi Short kuyruğu yerine Long kuyruğuna gönderirseniz hata yapmış olursunuz ve kuyrukta daha uzun süre beklersiniz. Yine, 15 dakikadan daha kısa sürecek işleri Debug kuyruğuna göndermelisiniz.
Kotalar
Her bir araştırmacı için:
- 144 çekirdek (aynı anda en fazla)
- 1 TB Disk kotası(Home + Scratch, grup tabanlı kota)
- 420 bin saat + 300 bin saat artırım
Projeler için:
- Her projenin ihtiyacına göre belirlenir
TRUBA kullanıcı hesabı şifresinin değiştirilmesi
Levrek1 kullanıcı ara yüzüne bağlandıktan sonra terminal üzerinden passwd
komutunu yazarak mevcut şifrenizi değiştirebilirsiniz.
Kaynaklar
- EuroCC-Seminer_Yeni-Baslayanlar-icin-TRUBA.pdf
- Youtube | EuroCC Türkiye Seminerleri V - Nedir bu süperbilgisayarlar ve TRUBA sistemlerine kayıt - iş koşturma
- Youtube | EuroCC@Türkiye Kış Okul Semineri 2021 1. Gün - Sefa Arslan (TÜBİTAK-ULAKBİM)
- https://docs.truba.gov.tr/TRUBA/TRUBAmimarisi.html
- https://www.bilisimkitabi.com/putty
- https://docs.truba.gov.tr/index.html
- https://ubccr.freshdesk.com/support/solutions/articles/5000688140-submitting-a-slurm-job-script
- https://medium.com/kaveai/...
- http://wiki.grid.org.tr/index.php/OpenOnDemand