TRUBA Wiki Sayfası:Topluluk portalı

TRUBA Wiki Sayfası sitesinden

Git ve: kullan, ara

Konu başlıkları

Genel

TRUBA gibi batch tabanlı sistemlerde, kullanıcıların işlerini interaktif olarak çalıştırmaları mükün değildir. Kullanıcılar kullanıcı arayüzüne bağlandıktan sonra işlerini ve dosyalarını yapılandırarak, işlerini iş kuyruklarına göndermek durumundadır. İş kuyruklarında işin sırası geldiğinde ve talep edilen hesaplama kaynağı oluştuğunda, iş otomatik olarak başlar ve yapması gerken hesapları yaptıktan sonra sonlanır. Bu nedenle kullanılacak uygulamların linux komut satırından başlatılıp, herhangi bir kullanıcı etkileşimine ihtiyaç olmadan (ihtiyaç duyulan parametreleri komut satırı argümanları yada input dosyalarından almalıdır) çalışabilecek ve grafik ekrana ihtiyaç duymayacak özellikte olması gerekmektedir.

Lisansı ücretli uygulamlar

Sistemde kurulu uyğulamların bir kısmı lisansı ücretli olan uygulamalardır. TRUBA lisansı ücretli olan hiçbir uygulamayı (Intel derleyicileri hariç) sağlamamaktadır. Bu tür uygulamaları kullanmak isteyen kullanıcılar TRUBA'da çalışmaya uygun lisansı da kendileri (yada bağlı bulundukları kurum) sağlamalıdır.

TRUBA'da kullanıcılar sadece kullanıcı arayüzü sunucusuna erişebilir. Ancak tüm hesaplamalar hesaplama suncuları üzerinde gerçekleştirilir. İş kuyruklarına gönderilen işlerin hangi hesaplama sunucuları üzerinde çalışmaya başlayacağı önceden belli degildir. O nedenle kullanıcıların bilgisayar bağımsız (floating) bir lisansa ihtiyaçları bulunmaktadır. Ayrıca uygulama çalışmaya başladığında, kullanıcının lisansının doğrulanabilmesi için bir bir lisans sunucusuna ihtiyaç vardır. Bu lisans sunucusu kullanıcı (yada kurumu) tarafından sağlanmalı ve işletilmelidir. Bu nedenle kullanıcının kurumundaki lisans sunucusun TRUBA bilgisayarlarlarına (193.140.99.241) lisans doğrulaması için izin vermesi gerekmektedir.

Derleyiciler

Mart 2018 itibari ile SMP kümesinde hizmet veren Orkinos1 sunucusu haric tüm hesap sunucularının büyük kısmında CentOS7.3 işletim sistemi yüklü bulunmaktadır. Orkinos1 sunucu üzerinde RedHat7.2 işletim sistemi bulunmaktadır.

GCC ve Intel derleyicilerinin farklı versiyonları sistemde halihazırda yüklü bulunmaktadır. Modül avail komutu ile bakıldığında, yüklü derleyiciler "comp" altında listelenmektedir.

$>module avail
centos7.3/comp/gcc/6.4
centos7.3/comp/gcc/7
centos7.3/comp/intel/PS2013-SP1
centos7.3/comp/intel/PS2016-update3
centos7.3/comp/intel/PS2017-update1
centos7.3/comp/intel/PS2018-update2
centos7.3/comp/intel/PS2019-update1
centos7.3/comp/python/3.5.5-intel
centos7.3/comp/python/3.6.5-gcc

Bu listeye yeni derleyeciler eklenebileceği için, her herleme öncesinde 'module avail' komutu ile gücel uygulama/kütüphane ve derleyiciler kontrol edilmelidir.

Intel Derleyiciler

Intel işlemcili sunucularda, işlemcilerin sağladığı ektra performans özelliklerini (özellikle AVX2 ve AVX-512) verimli bir şekilde kullanabilmek için intel derleyicilerinin son versiyonlarının kullanılmasını önermekteyiz. Bu derleyicileri kullanmaya başlamadan önce kullanılacak versiyonla ilgili çevre değişkenler (PATH, LD_LD_LIBRARY_PATH vs..) ayarlanmalıdır. Çevre değişkenlerini ayarlamak için modül mekanizması kullanılabileceği gibi paketle birlikte gelen betikler de kullanılabilir.


$>source /truba/sw/centos7.3/comp/intel/PS2018-update2/bin/compilervars.sh intel64

yada

module load centos7.3/comp/intel/PS2018-update2


Çevre değişkenleri ayarlandığında, intel derleyicileri (icc, ifort, icpc vs) ile birlikte pek çok performans kütüphanesi (Intel-mpi, MKL) ve geliştirme aracı (ipp, itune vs) kullanılabilir hale gelmektedir. Bu araçların kullanımı hakkında ayrıntılı bilgiye üreticinin websayfasından ulaşılabilir.

Eğer kullanıcının yaptığı tüm derlemelerde Intel derleyicilerinin aynı versiyonu kullanılıyor ise, çevre değişkenler her login olunduğunda ayarlanmak yerine, .profile (yada .bashrc) içerisinde ayarlanarak , her loginde yeniden ayarlamaya gerek kalmadan kullanılabilir.

GCC Derleyiciler

üm sistemlerde GCC'nin Centos7.3 işletim sistemi ile birlikte gelen 4.8.5 versiyonu varsayılan yolda kurulu durumdadır. Kullanmak için herhangi bir modül çağırmaya yada çevre değişkeni ayarlamaya gerek yoktur. Güncel işlemcilerin güncel özelliklerini kullanabilmek için GCC'nin daha yeni versiyonunu kullanmak isteyen kullanıcılar, GCC'nin güncel versiyonlarını moduller arasından load edebilirler.

$>module avail
centos7.3/comp/gcc/6.4
centos7.3/comp/gcc/7

module load centos7.3/comp/gcc/7

Paralel Programlama

Kullanıcılar kendi geliştirdikleri uygulamaları derlemek için sistemde yüklü MPI (Multi Node) ya da OpenMP (multithread) kütüphanelerini ve derleyicilerini kullanabilirler. Herhangi bir uygulamanın paralel olarak derlenmesi ve paralel olarak çalışabilmesi için uygulamanın buna uygun olarak yazılmış olması gereklidir.

OpenMP derlemesi yapmak için uygulamayı -fopenmp, -lomp5 ya da -lpthread kütüphaneleri ile bağlamak (link) genelde yeterli olurken, MPI derlemesi yapabilmek için, uygulamayı mpicc, mpif90, mpicxx (mpiicc, mpiifort) ile derlemek gerekmektedir.

MPI (Message Passing Interface) : impi, openmpi

Sistemte Intel MPI (impi)'ın 4.1.1 versiyonu (Intel ve GCC derleyiciler ile derlenmiş) ve OpenMPI'ın 1.6.5 versiyonu (gcc derleyiciler ile derlenmiş) bulunmaktadır.

  • impi ile derleme yapabilmek yada impi ile derlenmiş bir uygulamayı çalıştırmak için Intel ve impi çevre değişkenleri aşağıdaki gibi yüklenmelidir.
$>source /truba/sw/centos6.4/comp/intel/bin/compilervars.sh intel64
$>source /truba/sw/centos6.4/lib/impi/4.1.1.036/bin64/mpivars.sh
  • OpenMPI ile derleme yapmak için, OpenMPI için oluşturulmuş modül dosyasının yüklenmesi gerekmektedir.

GCC ile derlenmiş OpenMPI için:

$>module load centos6.4/lib/openmpi/1.6.5-gcc

Intel ile derlenmiş OpenMPI için:

$>source /truba/sw/centos6.4/comp/intel/bin/compilervars.sh intel64
$>module load centos6.4/lib/openmpi/1.6.5-intel

OpenMP (Multi-thread)

Derleme GCC derleyicileri ile yapılacak ise herhangi bir module yüklemeye gerek bulunmamaktadır. Ancak Intel matematik kütüphanesinin avantajları kullanılmak isteniyorsa, Intel çevre değişkenlerinin kullanılması gerekmektedir.

$>source /truba/sw/centos6.4/comp/intel/bin/compilervars.sh intel64

Nümerik Kütüphaneler

İşlemci üreticileri tarafından sağlanan ve ilgili işlemci markası için optimize edilmiş AMD ACML ve Intel MKL'nin farklı versiyonları ile birlikte blas, lapack, blacs, scalapack, fftw vs. gibi pek çok temel matematik kütüphanesinin farklı versiyonları, farklı işlemci aileleri için optimize edilmiş olarak merkezi alanda yüklü bulunmaktadır. Kullanılacak kütüphanenin, mevcut işletim sistemi için derlenmiş olması önemlidir. Bu nedenle kullanılacak modülün mevcut işletim sistemi adı (centos7.3) ile başlaması yada eğer modül kullanılmayacaksa, kütüphanelerin /truba/sw/centos7.3/lib dizini altında kurulu olan kütüphanelerden seçişmesi gerekmektedir.

Intel MKL

Yaptığımız denemelerde, küme üzerinde Intel derleyici ve kütüphanelerinin kullanılmasının, uygulamanın performansını arttırdığı gözlemlenmiştir. Kullanıcıların ygulama derleme sırasında işlemci ailesi ile uyumlu olan Intel derleyicilerini ve kütüphanelerini kullanmaları önerilmektedir.

MKL kütüphanesi, Intel deryeyicileri load edildiği zaman otomatik olarak kullanılır duruma gelmektedir. Ayrıntılı bilgi için [Intel Derleyicileri]

MKL kütüphanesinin kullanımı ve özellikleri hakkında detaylı bilgiye üreticisinin web sayfasından ulaşılabilir. Ayrıca Intel Developer Forum'da uygulama öreneklerine ve diğer kullanıcıların tecrübelerine ulaşılabilir.

AMD ACML:

  • centos7.3/lib/acml/5.3.1-gfortan64
  • centos7.3/lib/acml/5.3.1-gfortan64_mp
  • centos7.3/lib/acml/6.1.0-gfortan64
  • centos7.3/lib/acml/6.1.0-gfortan64_mp

Kütüphanenin farklı versiyonları /truba/sw/centos7.3/lib/acml/ altında kurulu bulunmaktadır.


FFTW3

FFTW3'ün 3.3.7 versiyonu altyapıdaki farklı işlemci aileleri için yüklü bulunmaktadır. Aşağıdaki modüller:

  • centos7.3/lib/fftw/3.3.7-gcc-4.8.5-AMDOPT
  • centos7.3/lib/fftw/3.3.7-gcc-4.8.5-E5V1
  • centos7.3/lib/fftw/3.3.7-gcc-4.8.5-E5V3-E5V4
  • centos7.3/lib/fftw/3.3.7-intel-PS2013-E5V1
  • centos7.3/lib/fftw/3.3.7-intel-PS2013-E5V3-E5V4

load edilerek kullanılabilir, yada kurulu olduğu dizinden (/truba/sw/centos7.3/lib/fftw/) direk kullanılabilir.


fftw3 modülü yüklendiği zaman, aşağıdaki fftw kütüphanelerine erişim sağlanabilmektedir:

  • standart (statik ve dinamik,intel derleyicilerle)
  • float (statik ve dinamik,intel derleyicilerle)
  • long double(statik ve dinamik,intel derleyicilerle)
  • mpi standart (statik ve dinamik, impi ve intel derleyicilerle)
  • mpi float (statik ve dinamik, impi ve intel derleyicilerle)
  • mpi long double (statik ve dinamik, impi ve intel derleyicilerle)

BLAS/LAPCAK

Temel matematik ve matris kütüphaneleridir. Bu kütüphanelerin sağladığı pek çok rutin ACML ve MKL taradından optimize bir şeklde sağlanmaktadır aynı zamanda.. Kütüphanelerin modül dosyaları henüz hazırlanmamış olmakla birlikte, ilgili kütüphaneleri kullanmak isteyen kullanıcılar /truba/sw/centos7.3/lib/lapack dizini altından blas ve lapack kurulumlarını kullanabilirler..


BLACS/SCALAPACK

LAPACK kütüphanesinin dağıtık kullanılabilmesini sağlayan ve ekstra özellikler getiren matematik ve haberleşme kütüphaneleridir.. Modül dosyaları hazırlanmamış olduğu için, kütüphaneler doğrudan /truba/sw/centos7.3/lib/scalapack dizini altından kullanılabilirler..


Uygulama Destek

Vasp

VASP 5.4'in derlenmesi

Vasp kodunda yapılan son geliştirmelerle Vasp5.3'ün ve Vasp5.4'ün TRUBA altyapısında derlenmesi oldukça kolaylaşmıştır.

Öncelikle Vasp için derleme ortamı hazılanır.
 
$>mkdir derleme
$>cp vasp.5.lib.tar.gz derleme/
$>cp vasp.5.4.tar.gz
$>cd derleme
Arşiv dosyaları açılır..
$>tar -zxvf vasp.5.lib.tar.gz
$>tar -zxvf vasp.5.4..tar.gz

Intel Parallel Studio'nun güncel versiyonu load edilir.

$>source /truba/sw/centos7.3/comp/intel/PS2018-update2/bin/compilervars.sh intel64

Vasp.5.lib/makefile.linux_ifc_P4 dosyası düzenlenerek FC=ifc satırı FC=ifort ile değişdirilir ve dosya makefile adı ile kaydedilir. Make komutu ile derleme gerçekleştirilir.

$>cd vasp.5.lib
$>nano makefile.linux_ifc_P4
$>cp makefile.linux_ifc_P4 makefile
$>make

Vasp5.lib derlenditen sonra, vasp.5.4 dizinine geçilerek arch dizini içerisinden uygun olan makefile dosyası ana dizine kopyalanır.

$>cd ..
$>cd vasp.5.4
$>cp  arch/makefile.include.linux_intel makefile.include

Dosyada genel olarak herhangi bir değişiklik yapılmasına gerek yoktur. Ancak derlenecek uygulamanın işlemcinin AVX komut setlerini kullanabilmesi isteniyorsa FFLAGS eğişkenine işlemciye özel bazı eklemelerin yapılması gerekmektedir. Eğer işlemcinin özellikleri bilinmiyorsa -xHost parametresi eklenerek, derlemenin yapıldığı işlemciye özel en üst AVX komut setinin kullanılması sağlanabilir.

AVX-512 komut setini kullanabilmek için -xHost ile derleme barbun1 sunucusu üzerinde, AVX-2 komut setini kullanabilmek için -xHost ile derleme sardalya1 sunucusu üzerinde yapılmalıdır. -xHost yerine cross-compile parametreleri kullanılarak tek bir sunucu üzerinde farklı işlemci nesilleri için derleme yapmak mümkündür.

Mevcut kümelerdeki işlemciler için TRUBA Kaynakları sayfasına, AVX hakkında ayrıntılı bilgi için Intel-avx sayfalarına bakınız

$>nano makefile.include
$>nano makefile.include
.
.
.
FFLAGS=-assume byterecl -xHost
.
.
.

Makefile.include dosyasında gerekli değişikler yapıldıktan sonra dermeyeye geçilebilr. Derleme oldukça uzun sürecektir. Derleme sırasında birden fazla çekirdek kullanmak make komutuna verilecek -j 8 parametresi ile sağlanabilir.

$>make -j 8 


Derme sırasında bin ve build dizinleri dizinleri kullanılmış olacaktır. Farklı parametrelerle farklı derlemeler yapabilmek için bin dizini farklı adla kayıt edilip, dizinler silinerek yeniden oluşturulmalıdır.

$> cp -r bin bin-derleme1
$> rm -rf bin build
$> mkdir bin build

VASP 5.4 'ın CUDA destekli olarak derlenmesi'


Vasp5.4.4 yukarıdaki yönergelere göre derlendikten sonra, makefike.include dosyasının CUDA kısmında CUDA_ROOT ile başlayan satır aşağıdaki gibi değiştirilir.

CUDA_ROOT  = /truba/sw/centos7.3/lib/cuda/9.0


Sistemde CUDA kütüphanesinin farklı versiyonları mevcuttur. Mevcut versiyonlar /truba/sw/centos7.3/lib/cuda dizini altında bulunmaktadır. Ayrıca kullanıcı kendi ev dizinine yükleyeceği daha güncel bir CUDA versiyonunu'da makefile.include dizininde tanımlayarak kullanabilir.

Bu değişiklik yapıldıktan sonra

$>make -j 8 

komutu ile derleme gerçekleştirilir. Uygulamayı derlerken kullanılmış olan tüm kütüphaneler, uygulamayı çalıştırıken de betik dosyası içerisinde aynı şekilde kullanılmalıdır.

VASP 5.4 için betik dosyası'

Örnek betik dosyasına /truba/sw/scripts/vasp dizininden erişilebilir. Bu dizin içerisinde Vasp'ın farklı derlemeleri ve farklı versiyonları için betik dosyaları bulunmaktadır. Kullanıcılar kendi ihtiyaçlarına ve kendi kurulum dizinlerine göre dosyaları düzenlemelidirler.

Gromacs

Gromacs

Gaussian

Altyapıda Gaussian'ın farklı versiyonları sıkıntısız bir şekilde çalışmaktadır. En yüksek performansı almak için işin gönderileceği işlemciye uygun (AMD, Intel AVX, AVX2 ve AVX512) Gaussian versionunu kullanmak önemlidir. Aksi taktirde eski nesil işlemciler ile yeni nesil işlemciler üzerinde çalışan uygulamada sadece frekans hızından kaynaklı bir farklılık hissedilebilir.

Gaussian (tüm versiyonları için)'da performansı (aynı zamanda diğer kullanıcıların işlerinin performansını) etkileyen birdiğer durum ise, işin çalışması sırasında oluşturulan geçici dosyaların hangi dizinde oluşturulacağıdır. Gaussian yoğun biçimde I/O işlemleri yapan bir uygulamadır. Bu nedenle geçici dosyalar kullanıcın ev dizininde değil, işin çalıştığı hesaplama sunucusunun yerel /tmp dizininde oluşturulmalıdır. Bu şekilde Gaussian'ın I/O işlemlerinden hem diğer kullanıcıların işleri etkilenmeyecek, hem de yerel disklerin erişim hızları yüksek olduğu için Gaussian'ın genel performansı yükselecektir.


Gaussian'ın binary olarak dağıtılan bir paket olduğu için, sadece arşiv paketini açmak kurulum için yeterlidir, herhangi bir derlemeye gerek bulunmakaktadır. Kurulum herhangi bir dizine yapılabilir. Aşağıdaki örnekte, kurulum ev dizinine yapılacaktır.


$> cd ~
$>tar -zxvf  AS4_111N.TGZ

Bu komut sonrasında AS4_111N.TGZ adındaki gaussian paketi ev dizini içerisinde g09 dizinine açılmış olacaktır. Sizdeki Gaussian paketinin adı farklı olabilir. Eğer Gaussian09 yerine Gaussian16 paketi arşivden çıkarılıyorsa g09 yerine g16 dizini oluşturulacaktır.

Yapılmış bu kurulumu kullanmak için bazı çevre değişkenleri tanımlanmalıdır. Bu tanımlar .profile (yada .bashrc ) dosyasının içinde yapılabileceği gibi slurm dosyasının içerisinde de yapılabilir.

export g09root=$HOME
export GAUSS_SCRDIR=/tmp
. $g09root/g09/bsd/g09.profile

Uygulamayı çalıştırmak için aşağıdaki komut yeterli olacaktır

$g09root/g09/g09 < input_dosyası

Gaussian16 işin yukarıdaki g09 ifadeleri g16 ile değiştirilmelidir.

Gaussian'ı çalıştırmak için örnek betik ve input dosyası /truba/sw/scripts dizini içerisinde bulunmaktadır.


Gaussian uygulaması $GAUSS_SCRDIR dizininde (bu durumda /tmp) oldukça fazla artık dosya bırakır. Bu artık dosyalar hesaplama sunucusunun yerel diskini çok hızlı bir şekilde doldurur ve yeni işlerin çalışması pek çok durumda mümkün olmayabilir. O nedenle bu dosyaların iş sonunda silinmesi gerekmektedir. Bunun iki yolu bulunmaktadır:

  • Gaussian input dosyasında %nosave (detaylar için gaussian dökümanlarına bakınız) opsiyonu kullanmak.
  • Betik dosyasında
$g09root/g09/g09 < input_dosyası 

satırından sonra

find /tmp -maxdepth 1 -user $USER -exec rm -rf '{}' \;
komutunu kullanarak /tmp dizinindeki kullanıcıya ait tüm dosyaların silinmesi. Bu durumda aynı sunucu üzerinde kullanıcının birden fazla işi varsa, çalışmaya devam eden işler zarar görebilir.

Matlab

Matlab,lisansı ücretlli olan bir uygulamadır. TRUBA lisansı ücretli olan hiçbir uygulamayı (Intel derleyicileri haric) sağlamamaktadır. Matlab kullanmak isteyen kullanıcılar burada çalışmaya uygun lisansı da kendileri (yada bağlı bulundukları kurum) sağlamalıdır.

TRUBA'da kullanıcılar sadece kullanıcı arayüzü sunucusuna erişebilir. Ancak tüm hesaplamalar hesaplama suncuları üzerinde gerçekleştirilir. İş kuyruklarına gönderilen işlerin hangi hesaplama sunucuları üzerinde çalışmaya başlayacağı önceden belli degildir. O nedenle kullanıcıların bilgisayar bağımsız (floating) bir lisansa ihtiyaçları bulunmaktadır. Ayrıca Matlab çalışmaya başladığında, kullanıcının lisansının doğrulanabilmesi için bir bir lisans sunucusuna ihtiyaç vardır. Bu lisans sunucusu kullanıcı (yada kurumu) tarafından sağlanmalı ve işletilmelidir. Bu nedenle kullanıcının kurumundaki lisans sunucusun TRUBA bilgisayarlarlarına (193.140.99.241) lisans doğrulaması için izin vermesi gerekmektedir.

TRUBA'da Matlab'ın R2018b veriyonu tüm toolboxları ile /truba/sw/centos7.3/app/matlab/R2018b dizininde kurulu durumdadır. Ancak kullanıcının bu versiyonu kullanabilmesi için uygun lisansının bulunması gerekmektedir. Matlab için örnek iş betiği . /truba/sw/scripts dizini altında bulunmaktadır. Kullanıcılar çekirdek, node ve süre gibi parametrelerin yanında lisans dosyasının adresini ve input dosyalarını değiştirerek uygulamayı kullanmaya başlayabilirler.

Eğer kullanıcının mevcut lisansı, R2018b'yi çalıştırmaya uygun değilse, kullanıcı lisansına uygun versiyonu kendi ev dizinine kurup kullanabilir. Bu durumda betik dosyasındaki çevre değişkenleri (MATLAB_DIR, PATH, LD_LIBRARY_PATH vs) kendi kurulumuna göre değiştirmek durumundadır.

Not:TRUBA gibi batch tabanlı sistemlerde, kullanıcıların işlerini interaktif olarak çalıştırmaları mükün değildir. Kullanıcılar kullanıcı arayüzüne bağlandıktan sonra işlerini ve dosyalarını yapılandırarak, işlerini iş kuyruklarına göndermek durumundadır. İş kuyruklarında işin sırası geldiğinde ve talep edilen hesaplama kaynağı oluştuğunda, iş otomatik olarak başlar ve yapması gerken hesapları yaptıktan sonra sonlanır. Bu nedenle kullanılacak uygulamların linux komut satırından başlatılıp, herhangi bir kullanıcı etkileşimine ihtiyaç olmadan (ihtiyaç duyulan parametreleri komut satırı argümanları yada input dosyalarından almalıdır) çalışabilecek ve grafik ekrana ihtiyaç duymayacak özellikte olması gerekmektedir.

Quantum Espresso

Espresso

Namd

Namd

Gamess

Gamess

Siesta

Siesta

Lammps

Lammps

Blas/Lapack

Lapack

Scalapack

Scalapack

Fftw

Fftw

Grafik Ekran Bağlantısı (X-forwarding)

Kullanıcıların işlerini yapılandırmak, kuyruğa göndermek, gerektiğinde sonuçları kontrol etmek için kullandığı kullanıcı arayüzü sunucularında görsel uygulamalar çalıştırmak mümkündür. İşlerini, input dosyalarını aracı programlarla hazırlayan kullanıcılar yada işin çıktısını local bilgisayara aktarmadan doğrudan sunucu üzerinde görmek isteyen kullanıcılar bu bağlantı türünü tercih edebilir.

Sunucu üzerindeki görsel öğeyi kullanıcının kendi bilgisayarına aktarabilmesi için

  • SSH bağlantısı sırasında X-forwarding seçenegi aktif hale getirilmeli
  • local bilgisayarda bir X-server uygulaması doğru biçimde kurulmuş ve çalışıyor durumda olmalı
  • ocal bilgisayardaki güvenlik duvarı ve benzeri yazılımların ayarları doğru şekilde yapılmalıdır.


SSH bağlantısı sağlamak için farklı işletim sistemleri için pek çok farklı uygulama bulunmaktadır.

Windows sistemlerde en sık kullanılan SSH istemcisi Putty'dir. Putty'de X-forwarding seçeneğü Connection > SSH > X11 altındadır. Diğer uygulamalarda bu seçeneğin nerede olduğuna dair uygulaman yardım dökümanları kontrol edilmelidir.

MacOS kullanan kullanıcılar büyük ihtimal terminal arayüzü üzerinden bağlanacaklardır. Terminal ekranında ssh komutuna -XY parametresinin eklenmesi yeterlidir. Örnegin

ssh -l kullanici_adi levrek1.ulakbim.gov.tr -XY

Linux işletim sistemi kullanan kullanıcıların da büyük çoğunluğu SSH için terminal arayüzünü tercih etmektedir. MacOS'de olduğu gibi ssh komutuna -XY eklenmesi yeterlidir.

SSH istemcilerinde olduğu gibi, X-server uygulamalarında da işletim sisteminden işletim sisteminde pek çok farklı uygulama mevcuttur. Windows kullanıcıları ücretsiz olan X-ming yazılımını tercih edebilirler. X-Ming yazılımı kendi içerisinde yüklü olan Putty'i kullanabilecegi gibi, harici bir Putty kurulumu da kullanılabilir. Yapılandırmaya göre, sunucu üzerindeki tüm grafik ekran aktarılabileceği gibi, sadece uzak sunucuda çalıştırılacak olan uygulamanın penceresi de local bilgisayara aktarılabilmektedir. Ayrıntılar için kullanılacak X-server'in yardım dökümanlarına bakılmalıdır.

MacOS yüklü sistemlerde, XQuartz uygulaması X-server olarak kullanılabilir.


Linux yüklü sistemlerde, sistemin doğal parçası olarak server-client mimarisinde çalışan Xorg yüklü olarak gelmektedir. Xorg'da açılacak pencereler local uygulamalardan açılabileceği gibi, uzak bilgisayardan da açılabilmektedir. Herhangi bir yazılım yüklenmesine gerek yoktur.

Sbatch ve Srun Arasındaki Farklar

Temelde iki komut da görevleri (task) hesap sunucuları üzerinde çalıştırmak için kullanılmaktadır. Ancak çalışma biçimi açısından aralarında ciddi farklar bulunmaktadır.

  • Srun interaktif bir çalışma imkanı sunarken, sbatch , işin bir betik ile kuyruğa gönderilmesini gerektirir..
  • Srun komutu verilen uygulamanın -n kadar kopyasını çalıştır.. Örnegin srun -n 10 hostname komutu ile hostname uygulaması 10 ayrı çekirdekte birbirinden bagımsız, 10 ayrı görev olarak çalıştırılır..
  • Sbatch komutu herhangi bir görev çalıştırmaz.. Betik dosyasında verilen komutlar sadece master çekirdek üzerinde çalışır. Örnegin betik dosyasında hostname komutu yer alıyorsa, bu komut sadece master çekirdekte çalıştırılacak olup, sadece master çekirdegin bulundugu sunucunun adını verecektir. Komutu tüm çekirdeklere yaymak için betik dosyasında srun hostname komutunu kullanmak gerekecektir. Ancak betik dosyasında uygulama(görev, task) mpirun yada mpiexec ile çalıştırılıyorsa uygulamanın -n kadar kopyası çalıştırılır.. Eger uygulama bir mpi işi ise, aynı mpirun komutu ile çalıştırılmış kopyalar birbirleri ile haberleşerek, ortak bir iş üzerinde çalışabilir.

Multithread/multitask uygulamaların çalıştırılması

OpenMP yad pthread tarzı sadece node içi paralelleştirme kullanan uygulamaları sbatch yada srun ile çalıştırırken dikkat edilmesi gereken bazı husular bulunmaktadır.

Sbatch ile çalışırken:

-N 1  : en fazla 1 node kullanılmalı

-n 5 (yada -c 5) : iş tanımı için en az - en fazla 5 çekirdek ayrılır.. Sbatch herhangi bir görev çalıştırmadığı için -n paramerresi de sorun oluşturmayacaktır. Ancak doğru olan -c 'yi kullanmaktır...

export OMP_NUM_THREADS=5 : uygulama kendisi için 5 çekirdeğe kadar izin verildiğinden haberdar edilir.. bazı uygulamalar izin verilen çekirdek sayısını otomatik olarak farkedebilir.. Ancak genel olarak bunu yazmaya ihtiyaç vardır..

srun ile çalışırken:

-N 1 : en fazla 1 node kullanılmalıdır.

-n 1 : 1 task/görev başlatılacaktır.

-c 5: görev başına 5 çekirdeğe izin verilecektir.

Uygulama kaç çekirdek kullanabilecegini otomatik alğılayabilmeli yada, export OMP_NUM_THREADS=5 komtu, srun komutundan önce çalıştırılmalıdır.

Not: -n değeri 1 den fazla olursa, örneğin 2, komutun iki kopyası birbirinden bağımsız olarak çalıştırılacaktır.


Hibrid (MPI+OpenMP) uygulamaların çalıştırılması

Genel olarak tersi olsa da, iyi tasarlanmış hibrid uygulamaların (örnegin Intel MKL ile birlikte gelen xhpl) performansı MPI uygulamalardan daha iyi olabilmektedir. Bunun başlıca sebebi, nodlar arası gerçekleşen iletişim ihtiyaçlarının önemli ölçüde azalması, node içerisindeki tasklar arası haberleşmenin, network yada Infiniband katmanına göre çok daha hızlı olan ortak bellek üzerinde gerçekleşmesidir.

xhpl'in hibrid,mpi ve multitask versiyonları için hazırlanmış olan slurm betiklerini /truba/sw/scripts dizini altında bulabilirsiniz.

Hibrid bir iş çalıştırken, Node sayısı, çalıştırılacak görev sayısı, ve görev başına kullanılacak çekirdek sayısı parametreleri slurm dosyasında belirtilmelidir. Ayrıntılı bilgiye man sbatch komutu ile ulaşılabilir.


Sbatch ile çalışırken:

-N 4  : -n tane taskın başlatılacağı node sayısı

-n 16 : başlatılacak görev sayısı, node başına eşit sayıda görev düşmesi performansa olumlu etki yapacaktır.. O nedenle -N'in katları şeklinde olması önemlidir.

-c 4: görev başına kullanılacak çekirdek sayısı. Burada, node başına düşen görev sayısı x gorev başına düşen çekirdek sayısının, ilgili node'un çekirdek sayısını aşmaması gerekir.

export OMP_NUM_THREADS=2


Bu yapılandırma ile her biri 4 çekirdeğe kadar aynak kullanabilen toplamda 16 görev (16x4 =64 çekirdek) 4 node üzerinde çalıştırılacaktır.

Eğer işlemcinin hybertreading özelliği kullanılmak isteniyorsa, ayrıca --threads=2 ve export OMP_NUM_THREADS=4 yapılandırması kullanılabilir. Hyperthreading'in performansa katkısı uygulamaya göre değişebilir. Kullanıcının test edip değerlendirmesi gereken bir durumdur.

SSH püf noktaları

CUDA Programlama

GPU Kullanımı

Levrek Kümesi

Levrek kümesi ile ilgili bilgiye TRUBA-levrek sayfasından ulaşılabilir.

Hadoop ve Hadoop kümesi

Sertifika İşlemleri

Visio yerine OpenOffice

Akış şemaları, proje organizasyonları vs. vs. pek çok ofis kullanıcısı için Visio bu işlerin vazgeçilemez programı.. Ancak ne yazıkki Visio standart MS Office paketi ile birlikte gelmemekte.. Visio’u edinmek için oldukça tuzlu bir bedel ödemek yada daha önce ve büyük ihtimal şimdi de yaptığınız gibi programın korsanını bulup bilgisayarınıza yüklemek durumundasınız.

Aslında bu iki seçenege mahkum değiliz. OpenOffice programının 3. sürümü ve “OxygenOffice Extra – Gallery” eklentisi ile Visio’da yapabileceğiniz pek çok işi OpenOffice üzerinde de gerçekleştirebilirsiniz. Ayrıca çalışmalarınızı PDF formatında kaliteli bir şekilde dışa aktarmanız da oldukça basit.

Openoffice ile birlikte 6 den fazla program gelmekte.. Bu programları ve muadili ücretli yazılımları aşağıda listeledim. Eminim çoğunu kullanmışşınızdır.

   Writer     —  Word
   Calc         —  Excell
   Impress  – Power Point
   Draw      – Corel Draw
   Base       — Access
   Math      –

OpenOffice ile Makale Yazmak

Bilimsel makale taslakları pek çok kelime işlemcisinde bulunmasına ragmen, bu kelime işlemcilerin sağladıkları matemadiksel ifade editörleri genelde çok yetersiz yada kullanımı ve sonuçları beklenileni vermekten oldukça uzak.

Openoffice ile gelen matematik editörü bu açılardan oldukça başarılı sayılabilir. Ancak bununla yetinmeyecek kullanınıcılar için OpenOffice eklentileri kullanıcılara pratik araçlar sunmakta. Latex’ten vazgeçemiyenler OpenOffice OOoLatex eklentisini mutlaka denemelidirler.

OOoLatex eklentisi ile makalenize eklediğiniz latex ifadeleri imajlara çevrilerek doküman içerisine otomatik olarka yapıştırılır.

Kullanması kolay, eski alışkanlıklarından vazgeçemeyen kullanıcılar için birebir..

ARDEB / Ayrıcalıklı kullanım

Herhangi bir proje kapsamında TRUBA kaynakalarının ayrıcalıklı kullanımı ile ilgili bilgiye Ayrıcalıklı Kullanım linkinden ulaşabilirsiniz.


Sertifika İşlemleri

Nasıl Sertifika Sahibi Olabilirim?

Uluslararası projelerde TRGrid CA tarafından onaylanmış sertifikaya ihtiyaç duyan araştırmacılarımız https://www.grid.org.tr/servisler/sertifika/cert_request/sertifika_basvuru.php bağlantısını kullanarak sertifika başvurusunda bulunabilirler.

Sertifika sahibi olmak için öncelikle geçerli bir kimlik belgenizi ve elektronik formda belirttiğiniz bağlı bulunduğunuz kurumda çalıştığınıza dair belgenizi TRUBA Operasyon Merkezine iletmeniz gerekmektedir. Bu iki belgeyi, aşağıdaki yöntemlerle bize iletebilirsiniz:

           a. Belgeleri posta yoluyla, TRUBA Operasyon Merkezi TÜBİTAK-ULAKBİM YÖK Binası B5 Blok 06539 Bilkent / ANKARA TÜRKİYE adresine gönderebilirsiniz.
           b. Belgeleri fax aracılığıyla 00 90 312 2989393 numarasına, TR-Grid Operasyon Merkezi adına gönderebilirsiniz.
           c. Belgeleri tarayıcınız ile tarayarak grid-teknik@ulakbim.gov.tr adresine e-posta ile gönderebilirsiniz.

İlgili belgeleri iletmenizin ardından yaptığınız sertifika başvurusu değerlendirilerek size e-posta aracılığı ile bilgi verilecektir.

TRUBA Üyelik kaydı olan araştırmacılarımız, üyelik başvurusu sırasında sertifika başvurusu için yönelendirilmektedirler. Ayrıca yukarıdaki web sayfasından tekrar başvuruda bulunmaları gerekmemektedir.


Sertifikamı Nerede Kullanabilirim?

Sertifika kullanım alanları aşağıdaki gibi özetlenebilir:

  • Uluslararası projelerde kişisel olarak yetkilendirme
  • TRUBA kaynaklarına erişim için OpenVPN aracılığı ile yetkilendirme
  • Uluslararası araştırma projelerinin web sayfalarına erişim için


Yeniden Sertifika Başvurusu Ne Zaman ve Nasıl Yapılır?

Tüm araştırmacılara ve servislere verilen sertifika süresi 1(bir) yıldır. Bir yılın sonunda ca@grid.org.tr e-posta adresi ile iletişim kurarak sertifikanızın yenilenme sürecini başlatabilirsiniz.

Not: Sertifika başvuruları 5 iş günü içerisinde cevaplanmaktadır.

OpenVPN ile bağlantı

OpenVPN bağlantısı ile ilgili ayrıntılı bilgiye OpenVPN Baglantısı sayfasından ulaşabilirsiniz.

Cern LHC deneyleri

Teşekkür Örnekleri

TRUBA hesaplama kaynaklarını araştırmacılar arasında verimli bir şekilde paylaştırabilmek adına, araştırmacılarımızdan bundan önce yapmış olduğu veya yapacağı çalışmalar hakkında (makale, tez, bildiri, poster sunumu, vb.) geri bildirim beklenmektedir. Bu bildirimler doğrultusunda kullanıcılar arasında kaynak paylaşımına gidilecektir. TRUBA kaynakları kullanarak yaptığınız araştırma ve çalışmalarınızın sonucundaki yayınları [[1]] sayfasından ekleyebilirsiniz.

TRUBA hesaplama kaynaklarının kullanıldığı tüm bilimsel çalışmalarda (makale, tez, bildiri, poster sunumu, v.b.) kullanıcılarımızın aşağıdaki teşekkür ("acknowledgement") metinlerine yayınlarında yer vermeleri gerekmektedir.

Türkçe Teşekkür Örneği  

Bu araştırmada yer alan tüm/kısmi nümerik hesaplamalar TÜBİTAK ULAKBİM, Yüksek Başarım ve Grid Hesaplama Merkezi'nde (TRUBA kaynaklarında) gerçekleştirilmiştir.

İngilizce Teşekkür Örneği  

The numerical calculations reported in this paper were fully/partially performed at TUBITAK ULAKBIM, High Performance and Grid Computing Center (TRUBA resources).

Kişisel araçlar