Yüksek Başarımlı Hesaplama Laboratuvarı

Bilişim Enstitüsü 1999 yılında Türkiye'de bu alanda kurulmuş ikinci enstitüdür. Farklı disiplinleri bir arada bulunduran çalışmaların bilişimsel gereksinimlerini karşılanması amacıyla, 2001 yılında Türkiye’de ilk defa İTÜ Bilişim Enstitüsü bünyesinde Hesaplamalı Bilim ve Mühendislik (HBM) programı kuruldu. Bu kapsamda, 2001-2009 yılları arasında Devlet Planlama Teşkilatı (DPT) tarafından desteklenen program bünyesinde, Türkiye’de ilk defa kapsamlı ve gelişmiş sunucu sistemlerini bünyesinde barındıran Yüksek Başarımlı Hesaplama laboratuarı kurulmuştur. Yeni hesaplamalı teknik ve yöntemler üretmek için gerekli araştırma ve geliştirme aktivitelerini destekleyerek akademik çalışanları ve endüstri kuruluşlarını bir araya getirmek amacıyla hizmet veren laboratuar, İTÜ Bilişim Enstitüsü Hesaplamalı Bilim ve Mühendislik Yüksek Lisans ve Doktora Programı bünyesinde yer almaktadır. İTÜ Yüksek Başarımlı Hesaplama Laboratuarı, hesaplamalı bilim ve mühendisliğin gelişmesi için gerekli hesaplamalı teknolojilerin geliştirilmesi ve bunların kullanımı için gerekli kaynak ve servisleri sağlamayı amaçlamaktadır. Bu laboratuarın bir diğer amacı da sadece hesaplamalı bilim ve mühendislik alanında başta İTÜ olmak üzere akademik camiada kritik kitleyi oluşturmaktır.

         Mars Sunucu Sistemi :

1. DONANIM ÖZELLİKLERİ

Mars hesaplama küme sistemi, temelde farklı iki mimariye sahip yapılardan oluşmaktadır. Bu farklı mimariler HP ProLiant DL360 grubu ve HP ProLiant BL2x220c G5 serisi blade şasedir. Bu sistemlerin teknik ayrıntıları aşağıdaki gibidir:

 

Makina Türü

HP ProLiant DL360

HP ProLiant BL2x220c

Toplam düğüm sayısı

16

26

İşlemci özellikleri

2x Dual Core

2x Quad Core

İşlemci

Intel(R) Xeon(R) CPU 5160

@ 3.00GHz

Intel(R) Xeon(R) CPU E5430

@ 2.66GHz

Toplam Çekirdek Sayısı:

64

208

Cache Boyutu

4096 KB

6144 KB

Bellek

8 GB,

DDR2,

Synchronous,

667 MHz,

DIMM

16GB,

DDR2,

Synchronous,

667 MHz,

DIMM

Toplam Disk Alanı:

6.5 TB

Bellek Mimarisi

Düğümler arası dağıtık, düğüm içi paylaşımlı

Performans Ağ Bağlantısı

InfiniBand (4x, DDR, 16 Gbit/s)

İşletim Sistemi

RHEL 5.2 (Tikanga)

2. YAZILIM BİLGİSİ

 

@page { margin: 0.79in } P { margin-bottom: 0.08in }

Yazılım

Üretici

Sürüm

Lisans Bilgisi

LSF HPC

Platform

7.2

Lisanslı

Gaussian

Gaussian

0.9

Lisanslı

Fluent

Fluent Inc. Joins ANSYS Inc.

6.2

Lisanslı

 

Kütüphane

Üretici

Sürüm

Lisans Bilgisi

Intel CMKL

INTEL

9.1

Lisanslı

Intel MKL

INTEL

11.1.069

 

Intel Trace Analyzer & Collector

INTEL

7.0.1

 

MVAPICH

The Ohio State University

1.1.0

GNU

OpenMPI

 

1.2.8

GNU

OpenMP

 

2.5

GNU

 

Derleyiciler

Üretici

Sürüm

Lisans Bilgisi

Intel Compiler Suite

C/C++/Fortran

INTEL

9.1.047

11.1.069

Lisanslı

 

GNU C/C++

GNU

3.4.6 4.1.2

GNU

GNU Fortran 95

GNU

4.1.2

GNU

 

scp dosya_adi \ kullanici_adi@mars.be.itu.edu.tr :/gonderilecek/dizin/

 

scp dosya_adi \ kullanici_adi@160.75.90.222 :/gonderilecek/dizin/yolu/

 

3. SİSTEME ERİŞİM

Sistemin kullanıcı arayüzü olan mars.be.itu.edu.tr (160.75.90.222) makinasına uzaktan ssh ile bağlanılmaktadır. Mars sistemine erişim örnekleri aşağıdaki gibidir:

 

3.1. Linux/Unix/MacOS işletim sistemlerinden Mars küme sistemine erişim:

Makina adiyla erişim:

ssh mars.be.itu.edu.tr –l kullanici_adi

ssh kullanici_adi@mars.be.itu.edu.tr

 

IP ile erişim:

ssh 160.75.90.222 –l kullanici_adi

ssh kullanici_adi@160.75.90.222

 3.2. Windows işletim sisteminden Mars küme sistemine erişim:

 

Mars küme sistemine Windows işletim sistemlerinden erişebilmek için Putty programını (http://www.putty.org/) adresinden indirebilirsiniz. Hostname (veya IP address) kısmına mars.be.itu.edu.tr ya da 160.75.90.222 IP’sini bağlanarak erişebilirsiniz. Gelen ekranda “Login as” kısmına kullanıcı adınızı ve “password” kısmına şifrenizi yazarak sisteme bağlanabilirsiniz. 

 

 

4. DOSYA AKTARIMI

 

Sistemine dosya aktarımı Linux/Unix ve MacOS işletim sistemlerinden scp ya da sftp komutları yardımıyla yapılabilirken, Windows işletim sistemi için WinSCP (http://winscp.net) programından faydalanılabilir:

4.1. Linux/Unix/MacOS işletim sistemlerinden Mars küme sistemine dosya aktarımı:

 

Yerel makinadan Mars kümesine dosya aktarımı:

 

Komutlar yerel makina üzerinde çalıştırılmalıdır.

scp kullanici_adi@mars.be.itu.edu.tr :/alinacak/dosya /yerel/dizin/

scp kullanici_adi@160.75.90.222 :/alinacak/dosya /yerel/dizin/

 4.2. Linux/Unix/MacOS işletim sistemlerinden Mars küme sistemine dizin aktarımı:

Yerel makinadan Mars kümesine dizin aktarımı:

 

Komutlar yerel makina üzerinde çalıştırılmalıdır.

scp  –r dizin_adi kullanici_adi@mars.be.itu.edu.tr :/gonderilecek/dizin/

 

scp –r dizin_adi \ kullanici_adi@160.75.90.222 :/gonderilecek/dizin/yolu/

Mars küme sisteminden yerel makinaya dizin aktarımı:

 

Komutlar yerel makina üzerinde çalıştırılmalıdır.

scp –r kullanici_adi@mars.be.itu.edu.tr :/alinacak/dizin /yerel/dizin/

 

scp –r kullanici_adi@160.75.90.222 :/alinacak/dizin /yerel/dizin/

4.3. Windows işletim sistemlerinden Mars küme sistemine dosya/dizin aktarımı:

 

Windows işletim sistemi için WinSCP (http://winscp.net) programından faydalanılabilir:

WinSCP programı çalıştırıldığında gelen ekranda “hostname” kısmına mars.be.itu.edu.tr ya da 160.75.90.222 yazılmalıdır. Kullanıcı adınız ve şifrenizi yazarak sisteme erişelebilir. Şekilde de gösterildiği gibi ikiye bölünmüş pencere çıkacaktır. Bu pencerenin sol tarafı yerel makinadaki dosyalarınızı gösterirken, sağ tarafı Mars küme sistemindeki dosyalarınızı ve dizinlerinizi göstermektedir. Sürükle-bırak yöntemiyle dosya/dizin aktarımı kolayca gerçekleştirilmektedir.

5. KUYRUK BİLGİSİ:

Mars küme sisteminde iş çalıştırabilmek için LSF (Load Sharing Facility) yazılımı kullanılmaktadır. Bu yazılımla herbir kullanıcıya ayrı ayrı kuyruk tanımlanabildiği gibi birden fazla kullanıcının aynı kuyruk yapısı içerisinde olması da sağlanmaktadır. Mars küme sistemindeki kuyruk yapısında herbir kullanıcının ihtiyacına göre bir ya da birden fazla kuyruğun üyesi olması mümkündür. Mars küme sisteminde tanımlanan kuyrukların uzantıları hangi mimarinin kullanılacağını belirtmektedir. Örneğin kuyruk_adi.dlq şeklinde tanımlanan bir kuyruk HP ProLiant DL360 düğümlerini kullanabilirken, kuyruk_adi.bladeq şeklinde tanımlanan kuyruk blade şaşesi içerisindeki düğümleri kullanabilmektedir. Eğer kuyruk, kuyruk_adi.allq şeklinde tanımlanmışsa Mars küme sistemi üzerinde bulunan heriki mimari yapısını da kullanabilmektedir.

 

Komut

Açıklama

bqueues­uall

Mevcut kuyrukları listelemektedir

bqueues­ukullanici_adi

Kullanıcının kullanabileceği kuyrukları listelemektedir

bjobs [-a]

 

Bjobs çalışan işlerin durumu hakkında bilgi verirken, “-a” parametresi ile yakın zamanda sonuçlanmış işler hakkında da bilgi vermektedir.

 

Mars küme sistemi üzerinde seri iş çalıştırma örneği:

bsub ­q kuyruk_adi ­o cikti.%J ­e hata.%J ./program.x

 

Job <9427> is submitted to queue <kuyruk_adi>.

Burada %J iş numarası anlamına gelip standart ekran çıktılarının yönlendirildiği “cikti” ve standart hata çıktılarının yönlendirildiği “hata” isimli dosyanın sonuna eklenmektedir.

6. MPI İŞİ DERLEME ve ÇALIŞTIRMA:

Mars küme sistemi üzerinde MPI haberleşmeleri için infiniband performans ağ bağlantısını kullanan MVAPICH 1.1.0 MPI kütüphanesi kuruludur. Bu kütüphanenin farklı derleyiciler ile derlenmiş sürümleri sistem üzerinde bulunmaktadır. mpi-selector komutu yardımıyla aşağıda belirtilen MPI kütüphanelerinden birini seçmek mümkün olmaktadır.

impi_intel-3.0

impi_intel-3.1

mvapich_gcc-1.1.0

mvapich_intel-1.1.0

mvapich_pgi-1.1.0

openmpi_gcc-1.2.8

openmpi_intel-1.2.8

openmpi_pgi-1.2.8

Sistem üzerinde mvapich_intel-1.1.0 tanımlı durumdadır. Bu tanımlama

mpi-selector --set mvapich_intel-1.1.0 --yes

 

komutuyla yapılmaktadır.

MPI programı

mpicc program.c –o program.x

 

komutuyla derlenebilir. MPI programının LSF kuyruk sistemi üzerinden çalıştırılması

bsub -q kuyruk_adi \

-n islemci_sayisi \

-o %J.cikti \

-e %J.hata \

-a mvapich \

mpirun.lsf ./program

komutuyla gerçekleştirilir. Burada, koyu ile gösterilenler komutun olmazsa olmazları olup açık

tonla gösterilenler ihtiyaca göre belirlenmelidir.

 

7. FLUENT İŞİ ÇALIŞTIRMA:

Mars küme sistemi üzeriden Fluent 6.3.26 sürümü bulunmaktadır. Fluent işi çalıştırabilmek için aşağıdaki adımlar izlenmelidir:

  • Fluent yazılımı Mars küme sistemi üzerinde “/RS/progs/Fluent.Inc” dizini altında kuruludur. Yazılımı kullanabilmek için kullanıcı .bash_profile dosyasına “path” tanımlamasını yapmalıdır.

 

export LM_LICENSE_FILE= 7241@lmserver.be.itu.edu.tr

export FLUENT_ARCH=lnamd64

export PATH=$PATH: /RS/progs/Fluent.Inc/bin

 

  • Çalıştırılacak Fluent işi için girdi dosyaları oluşturulmalıdır. Bu dosyaların uzantıları .cas, .dat gibi olmaktadır. Ayrıca “journal” dosyası (.jou) da oluşturulmalıdır (dosyalar Fluent’in kullanıcı arayüzü [ing. GUI, Graphical User Interface] ile oluşturulabilir). Bu işlem için Mars küme sisteminin kullanıcı arayüzü olan mars.be.itu.edu.tr makinasından X-Window görüntüsünün kendi yerel bilgisayarınızın ekranına yönlendirilmesi gerekmektedir. Bunun için ssh bağlantısı yapılırken “–X” parametresinden faydalınabilir.
  • Aşağıda LSF üzerinde Fluent çalıştırmak için kullanılan örnek LSF betiklerini bulabilirsiniz. Kullanıcı bu betikleri kopyalayarak ilgili satırları kendi işine uygun şekilde düzenleyip LSF sistemine teslim etmelidir.

     

    Fluent’i LSF üzerinde çalıştırmak için fluent.lsf ve fluent_fl isimli iki dosya bulunmaktadır.

     

    • fluent_fl

      İçerisinde çalışacak olan iş hakkında teknik tanımlamalar yapmanıza olanak vermektedir. Bu dosya içerisinde Fluent yazılımının kurulduğu dizin, sistemin mimarisi, kullanılacak çekirdek (core) sayısı gibi tanımlamalar yer almaktadır.

       

      #!/bin/sh

      FLUENT_ARCH=lnamd64

      export FLUENT_ARCH

      PATH=$PATH:/RS/progs/Fluent.Inc/bin

      export PATH

      ARCH=-64

      NUM_PROC=2

      COMMUNICATOR=pib

      PATH1=/RS/home/groups/admins/akinci/fluent_test

      PATH2=/RS/home/groups/admins/akinci/fluent_test

      SMT=-lsf

      fluent 3ddp $ARCH -t$NUM_PROC -$COMMUNICATOR -g \

      -i $PATH1/fluent.jou $SMT> $PATH2/fluent.out

    • fluent.lsf

LSF ilgili tanımlamalar yer almaktadır. Fluent journal ve veri dosyalari Fluent arayüzü ya da kelime işleme (text editor) yardımıyla oluşturulduktan sonra, fluent.lsf (Fluent LSF betik dosyası) oluşturulan dosyalar ile aynı dizin içerisinde olmalıdır. Ilgili satırlar düzenlenerek LSF sistemine iş gönderilir.

#!/bin/sh

# Calisacak isin adi

#BSUB -J FLUENT

# Checkpoint dizisinin tam yolu (full path)

#BSUB -k /RS/home/groups/admins/akinci/fluent_test/ckp

# Kuyruk adi

#BSUB -q kuyruk.adi.q

# Standart ekran ciktilarinin yonlendirilecegi dosyanin adi

#BSUB -o %J.out

# Standart hata ciktilarinin yonlendirilecegi dosyanin adi

#BSUB -e %J.err

# Cekirdek sayisi

#BSUB -n 2

PATH1=/RS/home/groups/admins/akinci/fluent_test

$PATH1/fluent_fl

fluent.lsf dosyası hazırlandıktan sonra LSF kuyruk sistemine aşağıdaki komut yardımıyla gönderilir.

bsub < fluent.lsf

8. GAUSSIAN İŞİ ÇALIŞTIRMA:

Mars küme sistemi üzerinde Gaussian09 yazılımı “/RS/progs/gaussian” dizini altında yeralmaktadır. Gaussian yazılımını kullanabilmek için kullanıcının gaussian grubuna üye olması gerekmektedir. Bu işlem için sistem yöneticisine başvurulmalıdır. Gaussian09 yazılımının kullanılabilmesi için kullanıcı ev dizininde yer alan .bash_profile dosyasında aşağıdaki satırların tanımlanması gerekmektedir:

g09root="/RS/progs/gaussian"

GAUSS_SCRDIR="."

export g09root GAUSS_SCRDIR

. $g09root/g09/bsd/g09.profile

LSF kuyruk sistemi üzerinde iş çalıştırabilmek için gerekli olan LSF betiği gaussian.lsf olarak isimlendirilmiştir.

#!/bin/bash

# gaussian.lsf betigi

# -----------------------------------------------------------------

# Version : v1.0

# Hazirlayan : Ozden AKINCI [ ozden.akinci@be.itu.edu.tr ]

# -----------------------------------------------------------------

#

# Calisacak isin adi

#BSUB -J gaussian_test

# Standart ekran ciktilarinin yonlendirilecegi dosyanin adi

#BSUB -o %J.out # LSF stdout dosyasi ismi

# Standart hata ciktilarinin yonlendirilecegi dosyanin adi

#BSUB -e %J.err # LSF stderr dosyasi ismi

# Kuyruk adi

#BSUB -q hpccq # kuyruk ismi [kullanicinin ismi olan kuyruk]

# Cekirdek sayisi

#BSUB -n 4

# Kac makina kullanilacagi bu deger 1 olarak durmalidir.

#BSUB -R "span[hosts=1]"

# ----------------------------------

# Gaussian09 ayarlari

g09root="/RS/progs/gaussian"

GAUSS_SCRDIR="."

export g09root GAUSS_SCRDIR

. $g09root/g09/bsd/g09.profile

# Gaussian09 ayarlari bitti

#

# Asagidaki satirda ilgili girdi (*.com, *.gjf) dosyasini yaziniz.

 

PATH1=/RS/home/groups/admins/akinci/Gaussian_test

g09 $PATH/gaussina.deneme.com

9. NWCHEM İŞİ ÇALIŞTIRMA:

Mars küme sistemi üzerinde NWCHEM programını kullanabilmek için kullanıcınn gaussian grubuna üye olması gerekmektedir. Kullanıcı aşağıda belirtilen komutu ev dizininde çalıştırmalıdır.

ln -s /RS/progs/nwchem-6.0-bin/etc/default.nwchemrc .newchemrc

Kullanıcı .bash_profile dosyasına aşağıdaki satırı eklemelidir:

export PATH=$PATH:/RS/progs/nwchem-6.0-bin/bin