Module Komutu ile Çevre Değişkenlerinin Ayarlanması

UHeM sitesinden
Atla: kullan, ara

module komutu çalıştırmak istediğimiz programların gerektirdiği çevre değişkeni ayarlamalarının kolayca yapmak için kullanılır. Programları kuranlar module paketi yada module dosyası denen ve temelde bir program için gereken çevre değişkenlerinin tanımlandığı bir dosya olan module dosyasını hazırladılarsa, kullanıcı olarak bizler module programı ile bu dosyanın varlığını görüp, sadece bir tek module komutu ile bu ayarlamaların yapılmasını sağlayabiliriz.


Bu yaklaşımın geleneksel bashrc/profile dosyalarında çevre değişkenleri tanımlamaya üstünlüğü, istediğimiz zaman bir komutla başka bir program ayarına geçebilmemizdir. Oysa bashrc/profile dosyalarına bu ifadeleri yazdığımız zaman birbiri ile çelişen ayarlamalardan sadece birini seçmek zorunda kalırız. Diğerine geçmek ise oldukca zorlaşır.


Mevcut module Paketlerini Görmek

Sistemde yüklü olan module paketlerini görmek için module avail komutunu çalıştıralım:


$ module avail
 
--------------------------------------------------- /RS/progs/modules/3.2.9c/Modules/versions ---------------------------------------------------
3.2.9
 
---------------------------------------------- /RS/progs/modules/3.2.9c/Modules/3.2.9/modulefiles -----------------------------------------------
fftw                             gnu/lapack-3.4.0                 intel/composer_xe_2013           intel/netcdf-4.1.3
globus/5.2.4                     gnu/mvapich2.x86_64              intel/composer_xe_2013_sp1.1.106 intel/petsc-3.0.0-p12
globus-5.2.4-modulefile-template gnu/netcdf-4.1.3                 intel/espresso-5.0               intel/regcm-4.3.5.6
gnu/atlas-3.8.4                  gnu/openfoam-2.1.1               intel/espresso-5.0.2             intel/tau-2.19.1
gnu/fftw-2.1.5                   gnu/openmpi-1.3.2                intel/fftw-2.1.5                 intel/trilinos-11.0.3
gnu/fftw-3.3.1                   gnu/openmpi-1.4.1                intel/fftw-3.3.1                 netcdf
gnu/gcc-4.6.3                    gnu/openmpi-1.4.4                intel/hdf5-1.8.8                 others/cuda-6.0
gnu/gcc-4.8.0                    gnu/openmpi-1.6.5                intel/icmkl-10.1.1               others/namd-multicore-cuda
gnu/gcc-4.8.2                    gnu/scalapack-2.0.0              intel/impi-3.0.no.compiler       prace
gnu/gcc-4.9.0                    gnu/valgrind-3.9.0               intel/impi-3.1
gnu/gromacs-4.6.5                hdf5                             intel/impi-3.1.no.compiler
gnu/hdf5-1.8.8                   intel/11.1.107                   intel/mkl-10.3.1
 
$


Burada listelenen paket adları kullanmaya hazırdır.


Bir Programın Ayarlarını Yüklemek

Mesela, bir kod derlemek istiyorsak, yukarıdaki listeden bir derleyici paketi yükleyerek kullanımı için gereken ayarlamaların yapılmasını sağlayabiliriz. Ama önce mevcut durumda gcc komutunu kullanırsak hangi dosya çalıştırılacak bir bakalım:

$ which gcc
/usr/bin/gcc
$


Mevcut hesabımızda gcc değişkenleri ayarlı olmadığından öntanımlı /usr/bin/gcc dizinini gösteriyor. Şimdi gcc'nin 4.9.0 nolu sürümünü yükleyelim:


$ module load gnu/gcc-4.9.0
$


Tekrar duruma bakalım, gcc komutunu kullanırsak hangi dosya çalıştırılacak:

$ which gcc
/RS/progs/gnu/gcc/4.9.0/bin/gcc
$


Böylece gcc-4.9.0 sürümü için gereken ayarlamaları tek bir komutla yapmış olduk.


Yüklü module Paketlerini Görmek

Biz which komutu ile gcc'nin ayarlarının değiştiğini gördük ama yüklü paketlerin listesi module komutuna da sorabiliriz:


$ module list
Currently Loaded Modulefiles:
  1) gnu/gcc-4.9.0
$


Biz sadece gnu/gcc-4.9.0 paketini yüklediğimizden sadece bu paket listelendi, ama başka paketler de yüklemiş olsaydık tümünü bu listede görecektik.


Yüklü module Paketini Kaldırmak

module komutunun en önemli avantajı, yüklediğimiz bir paketi kolayca kaldırabilmemizdir. Mesela, gnu/gcc-4.6.3 derleyicisini kullanmak için zaten yüklü bulunan gnu/gcc-4.9.0 paketini kaldıralım:


$ module unload gnu/gcc-4.9.0
$


Bir kez daha yüklü paketlerin listesine bakalım:


$ module list
No Modulefiles Currently Loaded.


Bir module Paketinin İçeriğine Bakmak

Bir de module paketinin içeriğine bakalım. Hangi değişkenleri ayarladığını görelim:


$ module show gnu/gcc-4.9.0
-------------------------------------------------------------------
/RS/progs/modules/3.2.9c/Modules/3.2.9/modulefiles/gnu/gcc-4.9.0:
 
module-whatis	 loads the environments for GNU C Compiler
prepend-path	 PATH /RS/progs/gnu/gcc/4.9.0/bin
prepend-path	 LD_LIBRARY_PATH /RS/progs/gnu/gcc/4.9.0/lib:/RS/progs/gnu/gcc/4.9.0/lib64:/RS/progs/gnu/gcc/4.9.0/libexec
prepend-path	 INCLUDE /RS/progs/gnu/gcc/4.9.0/include:/RS/progs/gnu/gmp/5.1.1/include:/RS/progs/gnu/mpc/1.0.1-2/include
-------------------------------------------------------------------
$


Son olarak şunu da belirtelim: module programını bashrc/profile dosyanızda da kullanabilirsiniz. Her zaman yüklü olmasını istediğiniz paketleri bashrc/profile dosyanıza yazarsanız, başka bir ayar gerektiğinde module unload komutu ile kolayca kaldırabilirsiniz.