Modüller

TRUBA Wiki Sayfası sitesinden

Git ve: kullan, ara
Modül dosyaları ve çevre değişkenler
Herhangi bir uygulamayı çalıştırabilmek içim, sistemin o uygulamanın dosyalarının, o uygulamayı derlerken kullanılan kütüphanelerin nerede olduğunu bilmesi gerekir. Bu bildirim LD_LIBRARY_PATH, PATH ve diğer bazı çevre değişkenlerin ayarlanması ile yapılır. Bu değişkenlerin ayarlanması ile yapılmış olan değişikliği gerli almak için ya logout olup tekrar login olmak yada, bu değişkenlerin içerisinden, ilgili kısımın geri çıkarılması gerekmektedir. Bu işlem zor olmamakla birlikte, kullanılacak her uygulama için, her bağlantıda yapılması kullanıcılar üzerinde bir iş yükü oluşturmaktadır. Örnegin ortak uygulama alanında kurulu Espresso 5.0.2 uygulamasını çalıştırmak için LD_LIBRARY_PATH ve PATH değişkenlerine aşağıdaki gibi değerlerinin atanması gerekmektedir.
export LD_LIBRARY_PATH=/truba/sw/centos6.4/app/espresso/5.0.2-impi-mkl/lib:$LD_LIBRARY_PATH
export PATH=/truba/sw/centos6.4/app/espresso/5.0.2-impi-mkl/bin:$PATH


Çevre değişkenlerinin otomatik olarak ayarlanması, yada yapılan ayarlanmanın geri alınmasını otomatize etmek için module dosyaları kullanılmaktadır.
Merkezi dosya sisteminde bulunan uygulama, kütüphane ve derleyicilerin bazıları için module dosyaları oluşturulmuştur. Mevcut modul dosyalarının listesi “module avail” komutu ile
$>module avail
centos7.3/app/abinit/8.6.1-openmpi-1.8.8-gcc-4.8.5-AMDOPT
centos7.3/app/abinit/8.6.1-openmpi-1.8.8-gcc-4.8.5-E5V1
centos7.3/app/abinit/8.6.1-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4
centos7.3/app/espresso/6.1-impi-mkl-PS2016
centos7.3/app/espresso/6.1-openmpi-1.8.8-gcc-4.8.5-AMDOPT
centos7.3/app/espresso/6.1-openmpi-1.8.8-mkl-PS2013-E5V1
centos7.3/app/espresso/6.1-openmpi-1.8.8-mkl-PS2013-E5V3
centos7.3/app/espresso/6.1-openmpi-1.8.8-mkl-PS2013-E5V4
centos7.3/app/gromacs/5.1.4-impi-mkl-PS2016
centos7.3/app/gromacs/5.1.4-openmpi-1.8.8-gcc-4.8.5-AMDOPT
centos7.3/app/gromacs/5.1.4-openmpi-1.8.8-gcc-4.8.5-E5V1
centos7.3/app/gromacs/5.1.4-openmpi-1.8.8-gcc-4.8.5-E5V3
centos7.3/app/gromacs/5.1.4-openmpi-1.8.8-gcc-4.8.5-E5V3-cuda
centos7.3/app/gromacs/5.1.4-openmpi-1.8.8-gcc-4.8.5-E5V4
centos7.3/app/lammps/17Nov16-impi-mkl-PS2016
centos7.3/app/lammps/17Nov16-openmpi-1.8.8-gcc-4.8.5-AMDOPT
centos7.3/app/lammps/17Nov16-openmpi-1.8.8-mkl-PS2013-E5V1
centos7.3/app/lammps/17Nov16-openmpi-1.8.8-mkl-PS2013-E5V3
centos7.3/app/lammps/17Nov16-openmpi-1.8.8-mkl-PS2013-E5V4
centos7.3/app/namd/2017-11-10-multicore
centos7.3/app/namd/2017-11-10-multicore-cuda
centos7.3/app/namd/2.9-multicore-cuda
centos7.3/app/siesta/4.1-b3-mp-gcc-4.8.5-AMDOPT
centos7.3/app/siesta/4.1-b3-mp-gcc-4.8.5-E5V1
centos7.3/app/siesta/4.1-b3-mp-gcc-4.8.5-E5V3-E5V4
centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-AMDOPT
centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V1
centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4

görülebilir. Kullanılmak istenilen uygulama yada kütüphane “module load <module_adı>” komutu ile yüklenebilir, yüklü modullerin listesi “module list” komutu ile görülebilir. Silinmek istenilen modül “module unload <module_adı>” komutu ile silinebilir.
$>module load ccentos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4
$>module unload centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4


Modül hakkında detaylı bilgi almak için module show komutu kullanılabilir.
module show centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4
-------------------------------------------------------------------
/truba/sw/centos7.3/modulefiles/centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4:

module-whatis	  loads the Siesta-4.1-b3  Openmpi version  for Intel Xeon E5V3, E5V4 and E7V3    
prepend-path	 --delim=: PATH /truba/sw/centos7.3/app/siesta/4.1-b3/bin 
setenv		 SIESTA_DIR /truba/sw/centos7.3/app/siesta/4.1-b3/ 
setenv		 SIESTA siesta-openmpi-1.8.8-gcc-4.8.5-E5V4 
-------------------------------------------------------------------


Sistemdeki modül dosyaları ilgili programın/kütüphanenin derlendiği işletim sistemi ve işlemci modeline göre hiyerarşik olarak hazırlanmıştır. Aynı kütüphanelerle ve aynı işletim sistemi üzerinde derlenmiş uygulamalar farklı işlemciler üzerinde genelde çalışabilirlen (örnegin Opteron işlemciler için hazırlanmış uygulamalar büyük ihtimalle Xeon işlemciler üzerinde de çalışacaktır), eğer işletim sisteminin farklı olduğu durumda büyük ihtimal çalışmayacaktır.


Module isimlendirme sistematigi
Merkezi alandaki uygulama veya kütüphaneler genel olarak ortak bir sistematik kullanılarak isimlendirilmektedir. Örnek olarak aşağıdai modül dosyasını inceleyecek olursak:
centos7.3/app/siesta/4.1-b3-openmpi-1.8.8-gcc-4.8.5-E5V3-E5V4
centos7.3 --> uygulamanın derlendiği işletim sistemi
app --> modülün türü; uygulamalar için app, kütüphaneler için lib, derleyiciler için comp
siesta --> uygulamanın / kütüphanenin adı
4.1-b3 --> uygulamanın /kütüphanenin versiyonu
openmpi-1.8.8 -->derleme sırasında kullanılan mpi kütüphanesi ve versiyonu.. Openmp/thread için mp, eğer herhangi bir paralelleştirme kullanılmamışsa serial ifadeleri gelebilir.
gcc-4.8.5 --> derleme sırasında kullanılan derleyici.. Eğer intel derleyiciler kullanılmışsa PS2013, PS2016 vs gelebilir. Eğer herhangi bir matematik kütüphanesi derleme sırasında kullkanılmışsa, bu alandan önce acml, mkl gibi ifadeler gelebilir. ACML sadece AMD işemciler ve gcc derleyici kullanılan uygulamalarda/kütüphanelerde, mkl ise intel derleyicilerle derlenen uygulamalarda/kütüphanelerde kullanılmaktadır.
E5V3-E5V4 --> Derlemenin hangi işlemci modeli için yapıldığını gösteren etikettir.
Altyapıdaki donanım farklı tarihlerde farklı ihalelerle alınmış olduğu için, altyapıda farklı işlemci üreticilerinden farklı işlemci mimarileri ve farklı işletim sistemleri yüklü olabilmektedir. Güncel donanım işlemci bilgisi (2018-02-22) aşağıdaki gibidir. Sunucu aileleri ile ilgili ayrıntılı bilgiye TRUBA Kaynakları sayfasından ulaşabilirsiniz.
Mercan sunucuları --> AMD Opteron 6176 (mercan kuyruğu)
Levrek sunucuları --> Intel Xeon E5 2690 V1 (single, short, mid1,mid2,long kuyrukları)
Levrekv2 sunucuları --> Intel Xeon E5 2680 V3 (cuda ve levrekv2 kuyrugu)
Sardalya sunucuları --> Intel Xeon E5 2690 V4 (sardalya kuyruğu)
Orkinos sunucusu --> Intel Xeon E7 4850 V3 (smp kuyruğu)
Barbun sunucuları --> Intel Xeon Scalable GOLD 6148(barbun, barbun-cuda kuyrukları)
Akya sunucuları --> Intel Xeon Scalable GOLD 6148(akya-cuda kuyruğu)


Farklı işlemci modellerinde, işlemcinin ve sunucunun performansını toptan etkileyen, farklı komut setleri bulunmaktadır. Herhangi bir uygulama derlenirken uygulamanın hangi işlemci ve hangi sunucu için derleneceğini bilmek ve buna uygun optimizasyon seçeneklerini kullanmak önem taşır.
Merkezi alandaki uygulamalar/kütüphaneler derlenirken, işlemcilerden en yüksek performansı alabilmek için, ilgili işlemci modeli için tüm optimizasyon seçenekleri kullanılmaktadır. Uygulamanın hangi sunucu için derlendiği, modül dosyasının sonuna eklenmiş olan E5V1, E5V3, E5V4, AMDOPT, GOLD kısaltmaları ile belirtilmiştir. Uygulama hangi kuyruk üzerinde çalıştırılacaksa, o sunucu/işlemci ailesi için derlenmiş modülü kullanılmalıdır.
İşlemci modeli ile ilgili herhangi bir ibare bulundurmayan modüller genel olarak herhangi bir sunucu üzerinde çalıştırılabilirler.. Ayrıca genel olarak, versiyon numarası yüksek olan işlemciler, versiyon numarası düşük olan işlemcilerdeki komut setlerini barındırırlar. Bu nedenle versiyon numarası düşük olan bir uygulama/kütüphane modülü, versiyon numarası yüksek olan bir işlemci modelinde sorunsuz olarak çalıştırılabilirler. Ancak bunun tersi her zaman mümkün olmayabilir.
Kişisel araçlar