TRUBA Wiki Sayfası:Topluluk portalı

TRUBA Wiki Sayfası sitesinden

Git ve: kullan, ara

Konu başlıkları

Derleyiciler

Mart 2017 itibari ile hesap sunucularının büyük kısmında CentOS6.4 işletim sistemi yüklü bulunmaktadır. Orkinos1 sunucu üzerinde RedHat7.2, sardalya sunucuları üzerinde ise Centos7.3 işletim sistemi yüklü bulunmaktadır.

Centos6.4 sistemlerde:

gcc 4.4.7, ve bu versiyonla gelen gfortran ve g++ derleyicileri yüklü bulunmaktadır.GCC derleyicilerini kullanmak için herhangi bir modülü yüklemeye gerek bulunmamaktadır. Modüller arasında ayrıca gcc 5.1.0 bulunmaktadır. Dileyen kullanıcılar ilgili modülü load edip kullanabilirler.

Redhat7.2 ve CentOS7.3 sistemlerde:

gcc 4.8.5 ve bununlabirlikte gelen g++ ve gfortran derleyicileri bulunmaktadır. Bu derleyicileri kullanarak uygulama derlemek için sardayla1 sunucusuna geçiş yapıp derleme işlerini bu sunucuda gerçekleştirmek gerekmektedir.

  • Sistemde yüklü olan Intel derleyicileri

Hem CentOS 6.4 hemde CentOS-7.3 sistemler için Intel Paralel Studio2013-Update1 ile gelen derleyiciler, matematik kütüphaneleri ve diğer araçlar kullanılabilir durumdadır.. Ayrıca Paralel Studio 2016'nın demo versiyonu da yüklü bulunmaktadır. Demo süresi geçtikten sonra bu derleyici ile derleme yapılamayacaktır ancak, bu derleyici ile derlenmiş olan uygulamalar çalıştırılabilecektir.


  • Intel derleyicileri ve beraberinde gelen diğer kütüphane ve araçları kullanabilmek için, gerekli çevre değişkenleri yüklemek için komut satırında ya da betik dosyasına aşağıdaki komutu yazmak gerekmektedir.
$>source /truba/sw/centos6.4/comp/intel/bin/compilervars.sh intel64


yada

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

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. Levrek ve sardalya sunucuları üzerinde çalışacak kullanıcılar için, uygulama derleme sırasında işlemci ailesi ile uyumlu olan Intel derleyicilerini ve kütüphanelerini kullanmaları önerilmektedir.

Mevcut Intel derleyici ve kütüphaneleri Parallel Studio 2013 SP1 Update paketi ile kurulmuştur. Paket içeriği:

  • Intel C/C++ derleyicileri (14.0.1, composer_xe_2013_sp1)
  • Intel Fortran derleyicileri (14.0.1, composer_xe_2013_sp1)
  • Intel MKL (11.0)
  • Intel Advisor
  • Intel Inspector
  • Intel Vtune Amplidier

Bu paketlerin 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.

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

Matematik Kütüphaneleri

BLAS ve LAPACK rutinleri olmadan hesapsal bilimlerde nümerik programlar/simulasyonlar yazmak söz konusu olamaz.. Ancak hazırlanan uygulamanın kuşturululacağı işlemci mimarisi ve modeli için karşımıza farklı seçenekler çıkmakta.

   ACML
   LAPACK/BLAS
   ATLAS
   MKL

bunlardan en yaygın olanları. Hepsinin kendine göre artıları ve eksileri var.

ACML, AMD işlemciler için optimize edilmiş içerisinde BLAS, LAPACK ve FFTW rutinlerinin bulunduğu bir kütüphanedir. ACML’nin hem gcc, hem intel hem de pgi derleyiciler için sürümleri bulunmaktadır.

MKL ise intel firmasının geliştirdiği bir kütüphanedir. İçerisinde BLAS ve LAPACK’a ek olarak SCALAPACK, BLACS ve pek çok farlı kütüphaneyi barındırır. Intel marka işlemciler için optimize edilmiş bulunmakla birlikte AMD işlemciler üzerinde de gayet iyi çalıştığını birkaç yerde okumuştum.

ATLAS, açık kaynak camiası tarafından LAPACK ve BLAS’ın çeşitli işlemciler için optimize edilmiş halidir. ATLAS ve LAPACK’ı www.netlib.org’dan ücretsiz olarak indirmek mümkündür.

Intel MKL kütüphanesi ile birlikte (blas, lapack, blacs, scalapack, fftw vs.), sistemde FFTW3 Versiyon 3.3.3'ün intel derleyicilerle derlenmiş statik ve dinamik versiyonları bulunmaktadır.

Intel MKL

MKL'nin 11.0 versiyonu $TRUBA_SW/comp/intel/mkl dizininde bulunmaktadır. Kullanmak için intel çevre değişkenleri yüklenmelidir.

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

Tüm fftw3 kütüphaneleri /$TRUBA_SW/lib/fftw/3.3.3 dizininde bulunmaktadır. İlgili kütüphaneyi kullanmak için öncelikle Intel çevre değişkenleri source edilmeli ve sonrasında ilgili modül dosyası yüklenmelidir.

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

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)
ACML

Bu kısmın düzenlenmesi sürdürülmektedir.

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.

Lüfer Kümesi

Lüfer kümesi ile ilgili bilgiye TRUBA-lüfer 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