TRUBA

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.

TRUBA Giriş

2- Giriş linki, E-devlet giriş sayfasına yönlendirmektedir. E-devlet bilgileri ile TRUBA-PORTAL’a giriş yapılmaktadır.

TRUBA Giriş

3- E-devlet üzerinden giriş yapıldıktan sonra Kullanım politikası onaylanmalıdır.

TRUBA Kullanım Politikası

4- Kullanım Politikası onayından sonra kurum bilgileri otomatik olarak gelmektedir.

TRUBA Kullanıcı Bilgileri

5- ORCID numarası eksikse, bağlantı takip edilerek ORCID numarası alınmalıdır.

TRUBA ORCID

6- E-Posta adresimize gelen linke tıklanarak E-Posta doğrulanması yapılmalıdır.

TRUBA E-Posta Doğrulama

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 Şifre Talebi

TRUBA’ya Bağlanmak

TRUBA'ya bağlanmanın iki ana yolu vardır:

  1. ULAKNET ağına bağlı Üniversite kampüsleri içerisinden doğrudan,
  2. Üniversite dışarısından ise OpenVPN kullanarak,
TRUBA ya bağlanmak

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.

TRUBA Create Account

OpenVpn'e giriş yaptıktan sonra Access Server seçeneği seçilerek devam edilmelidir.

TRUBA Access Server

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 Start

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.

TRUBA PUTTY

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.

TRUBA PUTTY LOGIN

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.

TRUBA PUTTY LOGIN

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.

TRUBA FTP WINSCP

Levrek1, Sardalya1 ve Barbun1 için farklı IP'ler kullanmalısınız:

  1. Levrek1 için: 172.16.7.1
  2. Sardalya1 için: 172.16.8.1
  3. 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ı:

  1. -p:İşin gönderileceği kuyruk
  2. -A:Hesap adı(genelde kullanıcı adınız)
  3. -J:İşinizin kuyrukta görünecek adı veya kısa bir açıklama
  4. -N:Kullanmak istediğiniz sunucu sayısı
  5. -n:Kullanmak istediğiniz çekirdek sayısı
  6. --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

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.