Kullanıcı El Kitabı

TRUBA Wiki Sayfası sitesinden

Git ve: kullan, ara

Konu başlıkları

TRUBA Hakkında

TÜBITAK ULAKBIM, kuruluşundan itibaren sırası ile araştırma ağları, yüksek başarımlı hesaplama, veri yoğun hesaplama ve bilimsel veri ambarları servislerini sunmaktadır. Sağlanan hizmetlere günümüz itibarı ile bakıldığında e-Altyapıların sürekli ve sağlıklı işleyebilmesi için gerekli bütün bileşenleri içerdiği görülmektedir. Bulut hesaplama ve Yeşil Bilişim Teknolojileri (Green IT) gibi yeni teknolojik gelişmelere yönelik projeler, merkezler ve üretilen politikalar yakından takip edilerek e-Altyapının tüm bileşenleriyle birlikte çalışılabilirliğine büyük önem verilmektedir.
Yüksek başarımlı hesaplama, veri yoğ un hesaplama, bilimsel veri ambarları ve bulut hesaplama gibi servisler TÜBİTAK ULAKBİM Yüksek Başarımlı Hesaplama Grubu tarafından işletimi yapılmakta olan ve 2010 yılı sonuna kadar TR-Grid, 2011 itibariyle TRUBA olarak adlandırılan altyapıda sağlanmaktadır.
2003 senesinde kurum bütçesi ile TÜBİTAK ULAKBIM,satın aldığ ı 128 adet PC ile yüksek başarımlı hesaplama çalışmalarına başlamış, daha sonra gerek ulusal araştırmacılardan gelen talep, gerekse uluslararası projelerde kazanılan deneyim ve başarıların etkisiyle TUGA (Türk Ulusal Grid Altyapısı / TR-Grid) projesini gerçekleştirmiştir. TÜBİTAK Bilim Kurulu onayı ile TARAL kapsamında desteklenen TUGA projesi kapsamında 2006-2008 döneminde altyapı desteklenmiş ve önemli ölçüde genişletilmiştir.
2009 yılında DPT Araştırma Altyapısı Proje Çağrısına başvurularak "TR-Grid Araştırma e- altyapısının Güçlendirilmesi" projesi sunulmuştur. Bu proje kapsamında eski adı ile TR-Grid olarak adlandırılan TRUBA,2011 yılı sonuna kadar DPT tarafından desteklenmiştir. 2012 yılından itibaren bir önceki projenin devamı niteliğindeki "Türk Ulusal e-Bilim e-Altyapısını Güçlendirmesi" projesi ile Kalkınma Bakanlığı’ndan alınan destek ile altyapının genişletilmesi ve mevcut teknolojilerle güncelleştirilmesi sürdürülmektedir.
TRUBA, 160 farklı üniversiteden 1700 aratırmacıya bilimssel çalışmalarına katkıda bulunmak üzere doğrudan hizmet veren, farklı kamu kurumları ve araştırma enstitüleriyle ortak projeler gerçekleştirilen ve son altı yılda 10 Avrupa Birliği Çerçeve Program Projesinde yer alınmasını sağlayan ulusal anlamada stratejik önemi çok büyük ve benzersiz birUlusal e-Altyapıdır.
TRUBA Oluşumu'nun genel amaçları aşağıdaki gibi sıralanabilir:
* Yüksek başarımlı, grid ve bulut hesaplama ve depolama altyapısını işletmek ve genişletmek.
* TRUBA’da farklı merkez ve araştırma grupları ile oluşturulan çalışma modellerinin kapsamının genişletilerek ülke genelinde standartların ve yol haritaları ile oluşturulmuş ulusal e-Altyapı oluşturulmak.
* TRUBA’nın e-Altyapılardaki yeni teknolojik gelişmelere entegrasyonu sağlamak.

Kullanıcı hesapları

Kimler kullanabilir

Grid üzerinde çalışabilir uygulamalara sahip Türkiye'deki tüm üniversite, araştırma kurumu ve enstitülerden araştırmacılar, öğretim üyeleri, öğrenciler TRUBA kaynaklarını kullanmak üzere TRUBA kullanıcısı olabilir.
Ticari kullanıcılar ve endüstriyel işbirlikli akademik projeler TRUBA oluşumu tarafından değerlendirilerek kabul edilir.
Altyapının kullanılması için çalışabilir uygulamalar aşağıdaki özelliklerden en az birini içermesi beklenmektedir:
* Birçok farklı bağımsız alt göreve bölünebilen yüksek geçişli hesaplamalar,
* Büyük miktarda verinin işlenmesini gerektiren yüksek performanslı hesaplamalar,
* Küçük bir zaman diliminde çok sayıda işlemin yapılmasını gerektiren işlemci merkezli hesaplamalar,
* Verilerin bir araya getirilmesi, saklanması ve çözümlenmesini de gerektirebilen veri merkezli hesaplamalar.

Başvuru ve hesap açılma prosedürü

Henüz öğrenci durumundaki araştırmacıların hesaplarının açılabilmesi için birlikte çalıştıkları akademik personelden, başvuranın kendisi ile çalıştığına dair bir onay e-postası göndermesi gerekmektedir.
Yukarıdaki, ve başvuru sayfasındaki kullanım şartlarını sağlayan ve Linux işletim sistemi temek kullanım bilgisine sahip araştırmacı www.truba.gov.tr adresinden yeni kullanıcı hesap açma başvurusunda bulunduklarında, kendilerine kısa süre sonrasında bilgilendirme e-postaları gönderilecektir. Başvurunun kurumsal bir e-posta adresi ile yapılması gerekmektedir. Gmail, hotmail vs yapılmış, yada sonu edu, edu.tr gov, gov.tr uzantıları ile bitmeyen e-posta adresleri ile yapılmış başvurular dikkate alınmayacaktır.
Ön onaydan geçen araştırmacı, bağlı bulunduğu kuruma ait kimlik belgesinin ve T.C nüfus cüzdanın birer kopyasını birimimize iletmelidir. Belgelerin fotokopileri posta ile gönderilebileceği gibi, elektronik kopyalarının e-posta ile gönderilmesi de yeterlidir.


Belgelerin gönderilmesinin ardından, kullanıcının sistem üzerindeki kullanıcı hesabı (user account), ve kümeye iş gönderebilmesi için kaynak yöneticisi hesabı (bank account) kısa süre içerisinde açılarak, kullanıcıya e-posta ile geri bildirim yapılacaktır. Hesabı açılan araştırmacı, kullanıcı hesabı başvuru sayfasındaki kullanım politikasını kabul eder, ve bu şartlara göre çalışmalarını yürütür.

Standart kullanıcı hesabı özellikleri

Güncel olarak tüm kullanıcı hesaplarının tüm kuyruklara iş gönderme yetkisi vardır. Her bir kullanıcı sistemde yeterli kaynak miktarı olduğu sürece aynı anda en fazla 196 çekirdeğe kadar hesaplama kaynağı kullanabilir. Sistem üzerinde çalışmalara, yoğunluğa ve güncellemelere bağlı olarak bu miktar zaman içerisinde azaltılabilir yada arttırılabilir.
Tüm standart kullanıcı hesaplarının ev dizini kotaları 600 GB kadardır. Yine zaman içerisinde TRUBA bu miktarı değiştirme esnekliğine sahiptir.
TRUBA tarafından standard kullanıcılara verilen hizmet best-effort niteliğindedir. Bu nedenle kullanıcılara hizmetin devamlılığı, kalitesi, verilerin saklanması ve korunması, ve diğer TRUBA hizmetleri konusunda TRUBA'nın herhangi bir sorumluluğu yoktur, herhangi bir güvence yada garanti sunmaz.

Ayrıcalıklı kullanım / ARDEB Projeleri

Standart kullanıcı hesaplarına tanınan hesaplama kaynaklarının yeterli olmadığı Ya da, zaman kısıtlı projelerin yürütülmekte olduğu durumlarda, cüzi bir hizmet bedeli karşılığında kuyruk önceliği olan, ayrıcalıklı hizmet almak mümkün. Talep edilen kaynak miktarı için verilecek hizmet bedeli, ilgili donanımın talep edilen kullanım süresinde harcayacağı elektrik enerjisi miktarı ve altyapı bakım-onarım maliyetleri göz önüne alınarak hesaplanmaktadır.
ARDEB'e proje başvurusunda bulunacak kullanıcılar proje başvurusu sırasında, yeni hesaplama donanımı alımı için fon talebinde bulunabilecekleri gibi, uygulamalarının TRUBA üzerinde çalışması mümkünse, hesaplarını TRUBA'da yürütmeyi tercih edebilirler.
Bu kapsamda TRUBA kaynakalarının ayrıcalıklı kullanımı ile ilgili ayrıntılı bilgiye Ayrıcalıklı Kullanım linkinden ulaşabilirsiniz.

TRUBA Kullanıcı Politikası

TRUBA kullanıcısının aşağıdaki ilkelere uyması beklenmektedir;
* TRUBA kaynakları bu politika metninde belirtilen ilkeler doğrultusunda kullanılabilir.
* TRUBA kaynaklarını kullanarak elde edilmiş sonuçların doğrudan yada dolaylı olarak kullanıldığı tüm makale, bildiri, tez (yüksek lisans, doktora) veya diğer (poster, vb) çalışmalarında, kullanıcının TRUBA oluşumuna teşekkür etmesi zorunludur. Teşekkür örneklerine bu www.grid.org.tr/kullanicilarimiz/yayinlari/ bağlantısından ulaşılabilir.
* Kullanıcıların TRUBA'ya başvuru sırasında belirtilmiş uygulamalardan farklı bir iş çalıştırmaması beklenir. Böyle bir ihtiyaç durumunda kullanıcının grid-teknik@ulakbim.gov.tr adresine e-posta atarak yeni uygulamalar konusunda yeniden kullanıcı talebinde bulunması gerekmektedir.
* Arayüz makinası veya portal kullanıcı hesabı şifresinin güvenli bir şekilde saklanmasından kullanıcı sorumludur.
* Kullanıcılar tarafından TRUBA kullanıcı sertifikası güvenliğinin sağlanması gerekmektedir.
* Depolama elemanlarının uygulamalar dışında farklı amaçlar için kullanılmaması gerekmektedir.
* TRUBA kaynakları yasadışı herhangi bir amaçla, altyapının yönetimini ve güvenliğini tehdit edecek biçimde kullanılamaz.
* Sistemde bir güvenlik açığı gören yada böyle bir durumdan şüphelenen bir kullanıcının hemen grid-teknik@ulakbim.gov.tr e-posta adresini kullanarak yada 0 312 298 93 63 numaralı telefon numarasını arayarak altyapı işletenlerini uyarması gerekmektedir.
* Kullanıcının Grid kullanımında karşılaşabileceği sorunlardan TRUBA Oluşumu sorumlu değildir. Gridin sürekli çalışır durumda kalacağının, kullanıcının çalışma ortamına uygun olacağının yada uygun hale getirileceğinin garantisi yoktur.
* Kayıtlı kullanıcı bilgisi TRUBA tarafından sadece yönetsel, operasyonel, kaynakların kullanımında kimlik doğrulama ve güvenlik amaçlı kullanılabilir. Bu amaçlar dışında kimlik bilgilerinin gizli tutulması esastır.
* Kaynak sağlayıcılar, sanal organizasyonlar, grid site yöneticileri yönetsel, operasyonel yada güvenlik amaçlı olmak üzere gride erişimi düzenlemede yada sonlandırmada tam yetkilidir. Kullanıcılar bu düzenleme yada değişiklikleri kabul etmek durumundadır.
* TRUBA altyapısı uygulama geliştirme amaçlı kullanılamaz. Kullanıcılar ancak geliştirilmiş uygulamalarını (arayüz makinasında yada kendi makinalarında derlenmiş çalıştırılabilir iş ve veri dosyalarını) TRUBA altyapısına aktarabilirler.
* Kullanıcı arayüz makinasından konsol aracılığıyla gridi kullanan kullanıcılar programlarını arayüz makinasında derleyip derlenmiş çalıştırılabilir dosyalarını küme bilgisayara yada gride göndermek durumundadırlar.
* P-GRADE web portalından gridi kullanan kullanıcılar derlenmiş çalıştırılabilir programlarını gride göndermek durumundadırlar.
* TRUBA kullanıcılarının yürütmekte oldukları çalışma ve projeler yıllık olarak değerlendirilecektir. Bu değerlendirme sonucunda verimsiz ve yetersiz çalıştığı görülen kullanıcı/kullanıcı grubunun kullanım hakkı TRUBA Danışma Kurulu üyeleri tarafından değerlendirilerek gerek görülmesi halinde kapatılacaktır.
* Kullanıcı kabul edilebilir kullanım politikasında yer alan şartlardan herhangi birine uymamasından doğacak sonuçlardan sorumludur.

Yeni Sertifika Başvurusu

Kullanıcı hesabının açılmasının ardından (yada aynı zamanda) kullanıcının sertifika başvurusunda bulunması gereklidir. www.truba.gov.tr adresindeki sertifika otoritesi menüsünden yeni kullanıcı sertifikası başvurusunda bulunulabilinir ( www.truba.gov.tr/sertifika/istek/sertifika_basvuru.php). TRUBA sertifika otoritesi (CA) tarafından hazırlanıp imzalanacak sertifika daha sonra hem sisteme VPN aracılığı ile erişim hemde daha sonra web üzerinden verilecek diğer hizmetlere erişim için kullanılacaktır.
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 tarafından ilk sertifika başvurusu için gönderilen e-postadaki başvuru linkini tıklayarak yeni sertifika başvurusunda bulunabilirsiniz. Eğer önceki e-postayı saklamıyorsanız, ca@grid.org.tr adresi ile iletişim kurarak başvuru linkini yeniden isteyerek sertifikanızın yenilenme sürecini başlatabilirsiniz.
Not: Sertifika başvuruları 5 iş günü içerisinde cevaplanmaktadır.

Hesaplama Kümeleri

Şu an için TRUBA iki farklı küme ile (Lüfer ve Levrek kümesi) hizmet vermektedir. TRUBA-lufer kümesindeki donanımlar lüfer sunucularından ve mercan sunucularının bir kısmından oluşmaktadır. TRUBA-levrek kümesinde ise levrek sunucuları ve mercan sunucularının bir kısmı bulunmaktadır.
TRUBA, her yıl yapılan düzelni alımlarla adım adım geliştirilmektedir. Yapılan her alım, zamanın ihtiyaçları ve mevcut sunucu teknolojileri gözüne alınarak yapıldığından, alınan hesaplama sunucularının modelleri, işlemcileri, çekirdek sayıları ve bellek mitarı farklılı göstermektedir.

TRUBA Kaynakları

2003 yılında faaliyete geçen TÜBİTAK ULAKBİM Yüksek Başarımlı ve Grid Hesaplama Merkezi'nde bulunan kaynaklar TRUBA'ya dahildir. Günümüzde TRUBA ~15.000 işlemci çekirdeği, 36 adet GPU ve toplamda 4PB Lustre dosya sistemi ile araştırmacılarımıza hizmet vermektedir.
Yıl Adet CPU/GPU İşlemci Modeli SPECfp_rate_base2006 Teorik Gflops Bellek Tanımı
2003 128 1 çekirdek x 1 CPU Pentium IV 2.66GHz - - 1 GB Kullanım dışı
2006 64 2 çekirdek x 2 CPU Xeon 5110 1.60GHz 17 - 4 GB Kullanım Dışı
2006 36 2 çekirdek x 2 CPU Xeon 5110 1.60GHz 17 - 4 GB Kullanım Dışı
2007 30 4 çekirdek x 2 CPU Xeon X5355 2.66GHz 56.3 - 16 GB Grid Sitesi
2008 16 4 çekirdek x 2 CPU Opteron 2356 1.15GHz 81.3 36.8 16 GB Grid Sitesi
2009 154 4 çekirdek x 2 CPU Xeon X5550 2.67GHz 184 85.44 24 GB Grid Sitesi & Özel Küme
2010 12 12 çekirdek x 4 CPU Opteron 6174 2.20GHz 574 422.4 128 GB Grid Sitesi & Federe Bulut Altyapısı
2011 192 12 çekirdek x 2 CPU Opteron 6176 2.30GHz 294 220.8 128 GB Mercan Kümesi
2013 128 8 çekirdek x 2 CPU Xeon E5-2690 2.90GHz 487 371.2 256 GB Levrek Kümesi
2014 48 12 çekirdek x 2 CPU Xeon E5-2680 v3 2.50GHz 763 960 256 GB LevrekV2 kümesi
2014 16 12 çekirdek x 2 CPU +2 x Nvidia M2090 Xeon E5-2680 v3 2.50GHz 763 960 Gflops + 2x 1330 Gflops 256 GB + 2x 6GB GDR5 Levrek-cuda Kümesi|
2016 1 14 çekirdek x 16 CPU Xeon E7-4850 v3 2.20GHz - 7.9Tflops 4TB Orkinos Kümesi
2017 128 14 çekirdek x 2 CPU Xeon E5-2690 v3 2.60GHz 970 1164Gflops 256 GB Sardalya Kümesi
2018 120 20 çekirdek x 2 CPU Xeon Scalable 6148 2.40GHz 1400 2048Gflops 384 GB Barbun Kümesi
2018 24 20 çekirdek x 2 CPU +2 x Nvidia P100 GPU Xeon Scalable 6148 2.40GHz 1400 2048Gflops +9400Gflops 384 GB + 2x16 GB HBM2 Barbun-cuda kümesi

Güncel Sunucu Aileleri

Güncel olarak kullanımda olan hesaplama kaynaları aşağıdaki gibidir.

Lüfer (Hizmet Dışı)

Lüfer kümesi 120 adet Dell R-815 sunucularından oluşmaktadır. Her bir sunucu üzerinde 4 adet 12 çekirdekli AMD Opteron 6174 işlemcisi, yani toplamda 48 adet çekirdek bulunmaktadır. Her bir sistem üzerinde 128GB DDR3 ECC bellek bulunur. Sunucular kullanıcı ev dizinlerine ve performans disk alanına üzerlerindeki 2 adet Qlogic QDR 40Gbps Infiniband kartı ile bağlıdırlar.
Sunucular üzerinde işletim sistemi olarak RedHat Enterprise Linux türevi olan Scientific Linux 6.2 versiyonu koşturulmaktadır.

Mercan

Mercan kümesi 192 adet HP SL165 sunucularından oluşmaktadır. Her bir sunucu üzerinde 2 adet 12 çekirdekli AMD Opteron 6176 işlemcisi, yani toplamda 24 adet çekirdek bulunmaktadır. Her bir sistem üzerinde 128GB DDR3 ECC bellek bulunur. Sunucular kullanıcı ev dizinlerine ve performans disk alanına üzerlerindeki 1 adet Mellanox Connectx2 QDR 40Gbps Infiniband kartı ile bağlıdırlar.
Sunucular üzerinde işletim sistemi olarak RedHat Enterprise Linux türevi olan Scientific Linux 6.2 versiyonu koşturulmaktadır.

Levrek

Levrek sunucuları 128 adet Huawei Tecal RH1288 V2-8S model sunuculardan oluşmaktadır. Her bir sunucu üzerinde 8 çekirdeki Intel E5-2690 serisi işlemci, toplamda 16 çekirdek bulunmaktadır. Sistem üzerindeki bellek miktarı 256GB dir. Sunucular kullanıcı ev dizinlerinin ve performans alanının bulunduğu dosya sistemlerine üzerindeki Mellanox Connectx3 FDR Infiniband kartı ile bağlıdırlar.
Sunucular üzerinde Redhat Enterprise 7 türevi olan Centos 7.3 Linux işletim sistemi koşturulmaktadır.

Levrekv2

Levrekv2 sunucuları 64 adet Dell R630 model sunuculardan oluşmaktadır. Her bir sunucu üzerinde 8 çekirdeki Intel E5-2680v3 serisi işlemci, toplamda 24 çekirdek bulunmaktadır. Sistem üzerindeki bellek miktarı 256GB dir. Sunucular kullanıcı ev dizinlerinin ve performans alanının bulunduğu dosya sistemlerine üzerindeki Mellanox Connectx3 FDR Infiniband kartı ile bağlıdırlar.
Sunucular üzerinde Redhat Enterprise 7 türevi olan Centos 7.3 Linux işletim sistemi koşturulmaktadır.
16 LevrekV2 sunucusunun üzerine 2 şer adet Nvidia M2090 GPU kartları bulunmaktadır.

Orkinos

Sunucu üzerinde 4128 GB bellek, 224 adet Intel Xeon e7-4850 V4 çekirdeği bulunmaktadır. Yüksek belleki bir SMP sunucusudur. Üzerinde Redhat 7.2 işletim sistemi bulunmaktadır.. Ortak dosya sistemine Infiniband ağ katmanı ile bağlıdır.. Ortak dosya sistemi üzerindeki uygulamaların büyük bir çoğunluğu bu sistem üzerinde çalışabilir durumdadır. Ancak uygulamalardın yüksek verimde çalışması için Intel derleyiciler ve MKL kütüphanesi ile yada GCC derleyicileri ve kütüphaneleri ile derlenirken V3 işlemcilerin vektör komut setlerinin (AVX2) kullanılması için özellikle parametre girilmesi gerekmektedir.

Hamsi (Hizmet Dışı)

154 adet IBM HS22 serisi blade sunculardan oluşmuştur. Her bir sunucu üzerinde 4er çekirdekli 2 adet Intel Xeon X5550 serisi işlemci kullanılmaktadır. Her bir sunucu üzerinde 24 GB ECC bellek bulunmaktadır.
Hamsi kümesi doğrudan kullanıcıların kullanımına açık değildir. Ancak kullanıcılar EGI Federated Cloud altyapısını kullanarak buradaki sistemleri bulut altyapısında kullanabilirler.

Hadoop (Hizmet Dışı)

Hadoop çalışması yapmak isteyen kullanıcıların kullanımına açık 36 adet HP DL140 sunucudan oluşmaktadır. Her bir sunucuda 8 çekirdek ve 8 GB bellek bulunmaktadır. Küme, kaynak yöneticisinden bağımsız olarak doğrudan kullanıma açıktır.

Sardalya

Sardalya sunucuları 153 adet Huawei Tecal RH1288 V3 model sunuculardan oluşmaktadır. Her bir sunucu üzerinde 2 adet Intel Xeon E5-2690 V4 işlemci ve toplam 28 adet işlemci çekirdeği bulunmaktadır. Sunucular birbirlerine EDR (100Gbps) Infiniband ağ kartları ile non-blocking yapıda bağlıdırlar.

Barbun ve Barbun-cuda

Barbun sunucuları 120 adet Dell R640, Barbun-cuda sunucuları R740 model sunuculardan oluşmaktadır. Her bir sunucu üzerinde 2 adet Intel Xeon Scalable Gold 6148 işlemci ve toplam 40 adet işlemci çekirdeği bulunmaktadır. Sunucular birbirlerine EDR (100Gbps) Infiniband ağ kartları ile non-blocking yapıda bağlıdırlar.


Kuyruklar (partitions)

Her iki kümede iş kuyruğu adları ve özellikleri aynı şekilde yapılandırılmıştır.
Zaman zaman bazı kuyruklardaki kaynak miktarı arttırılabilir yada azaltılabilir. Bazı kuyruklar kullanımdan kaldırılabilir. Herhangi bir kuyruğun bilgisine aşağıdaki komutla erişilebilir:
$>scontrol show partition=kuyruk_adi
Kuyrukların kullanım durumuna, paylaşılan dolu yada boş olan node ve çekirdeklerin durumuna “sinfo” komutu ile erişilebilir.
Tüm kuyrukların varsayılan çalışma süresi 2 dakikadır. Betik dosyasında zaman bilgisi girilmeyen işler 2 dakika sonunda otomatik olarak, zaman bilgisi girilen işler, belirtilen zaman sonunda eğer sonlanmamışsa, otomatik olarak sonlandırılmaktadır.
Her sunucu ailesinde, sunucu üzerindeki çekirdek sayısına ve bellek miktarına bağlı olarak bellek sınırlamaları mevcuttur.. Eger betik dosyalarında (yada srun komutunda) herhangi bir bellek değeri girilmemişse, ilgili iş için, çekirdek sayısı x DefMemPerCore kadar bellek ayrılır. Betik dosyalarında (yada srun komutunda) işler için --mem-per-core yada --mem parametreleri daha fazla bellek talebinde bulunulabilir, ancak talep edilen bellek miktarı hiç bir koşulda maxMemPerCore degerini geçemez.. MaxMemPerCore ve DefMemPerCore değerleri her suncu aileri için farklıdır.. Tüm sunucular için bu verilere, Donanım kısmındaki tablodan erişilebilir.

Single

Bu kuyruğa tek çekirdeklik (genelde seri) işler gönderilir. Toplam çekirdek sayısı 1 den fazla ise, iş başka bir kuyruğa gönderilmiş olsa bile, otomatik olarak bu kuyruğa yönlendirilir.
Bu kuyruktaki herhangi bir işin çalışma süresi en fazla 15 gündür. 15 Gün içinde tamamlanmamış işler sistem tarafından otomatik olarak öldürülür.

Short

Kısa sürmesi beklenen işle bu kuyruğa gönderilmelidir. Kuyruktaki işler en fazla 8 saat çalışır. 8 saat içerisinde tamamlanmamış işler sistem tarafından otomatik olarak sonlandırılırlar.

Mid1

Bu kuyrukta çalışma süresi en fazla 2 gün olan işler çalıştırılır. Bu süre içinde tamamlanmamış işler sistem tarafından otomatik olarak sonlandırılır.

Mid2

Mid2 kuyruğundaki işlerin çalışma süresi en fazla 7 gündür. 7 gün içerisinde tamamlanmamış işler sistem tarafından otomatik olarak sonlandırılır.

Long

Long kuyruğundaki işlerin çalışma süresi en fazla 15 gündür. Bu süre zarfında tamamlanmamış işler sistem tarafından otomatik olarak sonlandırılır.

Cuda

Cuda kuyruğunda, Nvidia C060 CUDA kartlarının takılı olduğu 3 adet levrek sunucusu ve toplamda 32 M2090 CUDA kartlarının takılı olduğu 16 adet levrek(v2) sunucusu bulunmaktadır. Her bir sunucuda 2 şer adet CUDA kartı takılı durumdadır.. Kartların özelliklerin ve desteklenen uygulamalar www.cuda.com adresinde bulanmaktadır.
Bu kuyruğa gönderilen işler en fazla 15 gün çalışır. 15 gün içerisinde tamamlanmamış işler sistem tarafından otomatik olarak sonlandırılır.
Cuda kuyruğuna gönderilecek işlerde her bir Nvidia M2090 CUDA kartı başına 12 , her bir Nvidia C1060 CUDA kartı için 8 işlemci çekirdeği düşmektedir (levrekV2ler için). Kaynak talep edilirlen her bir kart için 8/12 çekirdek talep edilmesi sistemin daha verimli kullanılmasını sağlayacaktır.
Cuda kuyruğuna GPU talep edilmeden gönderilen işler in bu kuyruktaki önceliği düşüktür. GPU talep edilen işler otomatik olarak cuda kuyruğunun on sıralarına yerleştirilmektedir.

Smp

Smp kuyruğunda sadece orkinos1 sunucusu bulunmaktadır. Kuyruk rezervasyon yönetimi ile çalıştırılmaktadır. Bu kuyruğu kullanmak isteyen kullanıcıların e-posta ile başvuruda bulunarak sistemi ne kadar süre ile kullanacaklarını, ne kadar kaynağa (işlemci/bellek) ihtiyaç duyduklarını bildirmeleri, ve ihtiyaçlarına göre bir rezervasyon yaptırmaları gerekmektedir.

Sardalya

Her bir sunucuda 28 çekirdek ve 256GB bellek bulunmaktadır. Kuyrukta işlerin en fazla çalışma süresi 15 gündür. Gönderilecek işler en az 14 çekirdek talep etmelidir.
İşlerde bellek sınırlaması kullanılmaktadır. Gönderilen işlerin sunucuların bellek sınırlamalarına uygun olarak gönderilmesi gerekmektedir. Bu kuyruk ile ilgili ayrıntılı bilgi
scontrol show partition=sardalya
komutu ile görülebilir.


Barbun

Her bir sunucuda 40 çekirdek ve 384GB bellek bulunmaktadır. Kuyrukta işlerin en fazla çalışma süresi 15 gündür. Gönderilecek işler en az 20 çekirdek talep etmelidir.
İşlerde bellek sınırlaması kullanılmaktadır. Gönderilen işlerin sunucuların bellek sınırlamalarına uygun olarak gönderilmesi gerekmektedir. Bu kuyruk ile ilgili ayrıntılı bilgi
scontrol show partition=barbun
komutu ile görülebilir.


Barbun-cuda

Her bir sunucuda 40 çekirdek ve 384GB bellek ayrıca 2'şer adet Nvidia P100 16GB GPU kartı bulunmaktadır. Kuyrukta işlerin en fazla çalışma süresi 15 gündür. Gönderilecek işler en az 20 çekirdek ve 1 GPU talep etmelidir.
İşlerde bellek sınırlaması kullanılmaktadır. Gönderilen işlerin sunucuların bellek sınırlamalarına uygun olarak gönderilmesi gerekmektedir. Bu kuyruk ile ilgili ayrıntılı bilgi
scontrol show partition=barbun-cuda
komutu ile görülebilir.

Dosya Sistemleri

Hesaplama kümelerindeki sunucuların kendi üzerlerindeki yerel disklerden bağımsız olarak, sunucular kullanıcı verilerin saklanması ve kullanıcı işlerinin çalıştırılması amacı ile paylaştırılmış merkezi dosya sistemlerini kullanırlar. Merkezi dosya sistemleri yüksek başarımlı LUSTRE parelel dosya sistemi kullanarak yapılandırılmıştır.
Kullanım amacına göre dosya sistemleri farklı boyutlarda, ve farklı özellikteki donanımlarla hazırlanırlar. Örnegin, kullanıcı ev dizinleri performans dosya sistemine göre boyut olarak daha büyük olmasına rağmen, hız bakımından performans dosya sistemi daha başarılıdır.

Ev dizinleri ve Ortak yazılımlar

Kullanıcı ev dizinleri ve TRUBA tarafından sağlanan yazılımların (derleyici, uygulama ve kütüphaneler) kaydedildiği alan için “kullanıcı ev dizini” terimi kullanılmaktadır. Kullanıcı ev dizinleri için iki farklı dosya sistemi kullanılmaktadır. Lufer ve Mercan kümelerinde kullanıcı ev dizinleri (home_palamut1, home_palamut2 ve home_eymir) için /home_palamut dosya sistemi kullanılmaktadır (Hesaplama kümesi kullanım dışı olduğu için bu dosya sistemi de kullanım dışıdır). Levrek kümesinde kullanıcı dizinleri /truba/ dosya sistemi altında bulunmaktadır. Kısa zaman sonra, /home_palamut dosya sistemi kullanımdan kaldırılarak, tüm veri /truba dosya sistemine aktarılacaktır. Bu nedenle kullanıcıların ivedilikle /truba dosya sistemi üzerinde çalışmaya başlamaları ve yeni uygulamalarını bu dosya sistemi üzerinde derlemeri gerekmektedir.
Gerek home_palamut gerekse truba dosya sistemlerinde kullanıcılar için kota uygulaması söz konusudur. Tüm kullanıcıların disk kotaları eşit olarak ayarlanmıştır. ARDEB vasıtası ile hesap açılan ve projeleri kapsamında işlerini çalıştıran kullanıcılar için, standart kota miktarından farklı olarak, projelerinde öngörülen disk kotası miktarı uygulanmakdatır.
Kullanıcı ev dizinlerinin yedekleri alınmamaktadır. Bu nedenle buradaki kullanıcı verilerinin düzenli olarak kullanıcılar tarafından kendi kişisel bilgisayarlarına aktarılması, önemsiz verilerin ise yine kullanıcının kendisi tarafından silinmesi beklenmektedir. Kullanıcı ev dizinleri kesinlikle uzun vadeli bir depolama alanı olarak düşünülmemelidir.
Kullanıcı dizinleri hesaplama sunucuları tarafında read-only erişilebilir durumdadır.Kulanıcılar hesaplamaları sırasında bu dizindenlerden verilerini okuyabilirlerken, bu dizinlere herhangi bir çıktı yazamazlar. Bu nedenle işler ev dizinlerinde değil performans alanında (truba_scratch) çalıştırılmalıdır.
Kullanıcı ev dizinleri standart olarak sadece dizinin sahibi tarafından erişilebilecek şekilde oluşturulurlar. Ancak zamanla kullanıcılar dizin erişim hakklarını bilerek yada bilmeyerek değiştirebilirler. Kullanıcı ev dizinlerindeki verinin güvenliğinden yine kullanıcın kendisi sorumludur.
Lüfer/Mercan kümelerinde ortak yazılımlar /home_palamut1/software dizininde tutulurlar. Bu dizine tüm kullanıcıların read-only erişimleri vardır. Bu dizindeki yazılımlar genel olarak ücretsiz lisanslı yazılımlardır ve tüm TRUBA kullanıcılarının -yazılımın lisans haklarına uyulması şartı ile kullanımına açıktır.

Scratch dizini (/truba_scratch)

Hem Mercan/Lüfer kümesinde hemde Levrek kümesinde hesaplama performans alanı okarak /truba_scratch dosya sistemi kullanılmaktadır.
Yapısı gereği kullanıcı ev dizinlerine göre boyut olarak daha küçük ancak daha hızlı çalışacak şekilde yapılandırılmıştır. Kullanıcıların işlerini bu dosya sisteminde çalıştırması amaçlanmıştır.
Hesap sırasında oluşacak dosyaların boyutları tam olarak kestirilemediğinden bu dosya sisteminde kota uygulanmamaktadır. Ancak bu dosya sistemindeki dosyalar düzenli olarak kullanıcı tarafından silinmelidir. Dosya sisteminde, 30 gün boyunca hiç erişilmemiş dosyalar düzenli olarak sistem yöneticisi tarafından silinmektedir.
Bu dosya sistemi kesinlikle kalıcı bir dosya depolama alanı olarak düşünülmemelidir. Dosya sistemindeki verilerin güvenliğinden kullanıcının kendisi sorumludur.

Sisteme Bağlantı

Kullanıcılar kullanıcı arayüzü sunucularına SSH ile bağlantı sağlayarak, hesaplama kümelerine iş gönderebilir, dosya düzenleme işlerini gerçekleştirebilir, verilerini kendi kişisel bilgisayarlarına aktarabilirler. Şu an için iki adet kullanıcı arayüzü kullanıcılara hizmet vermektedir.
lufer1.ulakbim.gov.tr: Lüfer (lüfer sunucuları ve mercan sunucularının bir kısmı) kümesine iş göndermek için ve /home_palamutX dosya sistemlerinde işlem yapmak için kullanılır (Artık kullanılmamaktadır).
levrek1.ulakbim.gov.tr: Tüm kuyruklara iş göndermek için ve /truba/home dosya sisteminde işlem yapmak için kullanılır.
sardalya1.ulakbim.gov.tr: Sardalya kuyruğundaki sunucularda kümenin geri kalan sunucularındakinden farklı olarak centos7.3 kurulu bulunmaktadır. Bu kuyrukta çalıştırılacak işlerin bu sunuculara uygun bir şekilde derlenebilmesi için kullanıcılar bu sunucuya bağlanıp, derleme ve test çalışmalarını gerçekleştirip, sardalya ve diğer kuyruklara da iş gönderebilirler... Bu sunucuya şu an için sadece levrek1 sunucusu üzerinden geçiş yapılabilmektedir.
mercan9.ulakbim.gov.tr: Mercan kuyruğundaki sunucularda centos7.3 kurulu bulunmaktadır. Bu kuyrukta çalıştırılacak işlerin bu sunuculara uygun bir şekilde derlenebilmesi için kullanıcılar bu sunucuya bağlanıp, derleme ve test çalışmalarını gerçekleştirip, mercan ve diğer kuyruklara da iş gönderebilirler... Bu sunucuya şu an için sadece levrek1 sunucusu üzerinden geçiş yapılabilmektedir.

Doğrudan Erişim

Bulunduğu kurumda, bilgisayarı için sabit ve gerçek bir IP tanımlanmış kullanıcılar, bu adresleri TRUBA Operasyon Merkezine bildirdiklerinde, bu IP üzerinden gelen SSH ve SFP bağlantı isteklerine izin verilebilmektedir.
Kullanıcıların bildirecekleri IP adresleri, sadece kullanıcının bilgisayarı tarafından kullanılmalı ve sabit olmalıdır. Herhangi bir laboratuvar veya bilgisayar grubunun ortak internet çıkışına ait olmamalıdır.

OpenVPN Baglantısı

Bilgisayarına sabit ve gerçek bir IP adresi tanımlama şansı olmayan kullanıcılar, OpenVPN kullanarak ile TRUBA ağına dahil olabilirler ve kullanıcı arayüzü suncusuna ulaşabilirler. OpenVPN bağlantısı, sadece kullanıcı adı ve parola kullanarak gerçekleştirilebileceği gibi, bunu desteklemeyen versiyonlarda, TRUBA 'dan temin edilecek geçerli bir sertifika ile de gerçekleştirilebilir.


Kullanıcı adı ve parola ile OpenVPN Erişimi

OpenVPN bağlantısını, herhangi bir sertifikaya ihtiyaç olmadan, TRUBA kullanıcılarının sistem üzerindeki kullanıcı adları ve parolalarını kullanarak gerçekleştirmeleri mümkündür. Kullanıcı adı ve parola kullanarak farklı işletim sistemleri üzerinden bağlantı gerçekleştirmek için openvpn 'in ilgili sürümü indirilerek, ilgili yapılandırma dosyası OpenVPN kurulum dizinindeki config dizinine kopyalanmalıdır.
OpenVPN'nin eski sürümleri kullanıcı adı - parola doğrulamasını desteklemediği için, daha önce yüklenmiş olan OpenVPN programlarının da güncellenmesi gerekmektedir.
OpenVPN genel yapılandırma dosyası
OpenVPN android yapılandırma dosyası
OpenVPN Ios yapılandırma dosyası
Viscocity genel yapılandırma dosyası
NOT: Kaydedilen dosya adının ovpn ile bitmesi önemlidir. Bazı sistemlerde ve web tarayıcılarda dosya adının sonuna txt eklenebilmektedir.
VPN bağlantısını bu şekilde yaptıktan sonra, kullanıcı arayüzüne aşağıdaki adreslerden herhangi bir ssh istemcisi ile ulaşılabilir.
levrek1 için levrek1.yonetim yada 172.16.7.1
sardalya1 için sardalya1.yonetim yada 172.16.10.1
barbun1 için barbun1.yonetim yada 172.16.11.1
Windows 10'da OpenVPN Kurulumu
Bu wiki belgesini takip edebilmek ve kurulumu tamamlayabilmek için aşağıdaki gereksinimlerin sağlanmış olması gereklidir.
Kullandığınız bilgisayar Microsoft Windows 10 işletim sistemini çalıştırmalı, ve tüm güncellemeleri ve yamaları yapılmış olmalıdır.
Kullandığınız bilgisayar üzerinde yönetici haklarına sahip olmanız beklenmektedir.
Kullanıcının ağ bağlantısında OpenVPN bağlantılarını engelleyen bir güvenlik cihazı ya da yapılandırma bulunmamalıdır.

OpenVPN'in Kurulumu

OpenVPN ile ilgili yapılandırmanın yapılmasından önce işletim sistemine OpenVPN kurulumunu yapmanız gerekmektedir. Eğer daha önceden sisteminize OpenVPN kuruldu ise, OpenVPN versiyonunun 2.4.0'dan yüksek olması gerekmektedir. Daha eski OpenVPN sürümleri bu belgedeki yapılandırma adımları ile uyumlu değildir ve bağlantı kurmakta başarısız olacaktır.

OpenVPN'in İnternetten İndirilmesi

OpenVPN, yazılımın ana sayfasından, openvpn.net adresinden indirilebilmektedir. OpenVPN istemcisinin indirme sayfasına buradan ulaşabilirsiniz.
Karşınıza gelen web sayfasında, en yukarıda belirtilen sürüm her zaman en güncel sürümdür. Bu belgedeki adımlara uygun şekilde kurulum yapabilmek için ekran görüntüsünde de görülen tablonun en alt satırındaki "Installer, Windows Vista and Later" ile belirtilmiş olan .exe dosyasını indirmeniz gerekmektedir. Bu dosyayı indirilip, kaydedildikten sonra dosyayı çalıştırarak kuruluma başlayabilirsiniz.

OpenVPN İstemcisinin Kurulması

OpenVPN istemcisinin kurulumunu başlatmak için indirdiğiniz dosyayı çalıştırmanız yeterlidir. İlk adımda programın sistemde değişiklik yapabilmesi için sizden izin istenecektir.
Kurulumu başlatabilmeniz için çıkan bu uyarıya Evet cevabı vererek devam etmeniz gerekmektedir. Bu adımdan sonra kurulum programı açılacaktır
OpenVPN kurulum yardımcısı sistem dilinden bağımsız olarak İngilizce olarak açılmaktadır. İlk ekranı Next'e basarak geçebilirsiniz.
Bir sonraki Ekranda OpenVPN lisans sözleşmesi gösterilecektir. "I Agree" butonuna basarak kabul edebilir ve bir sonraki adıma geçebilirsiniz.
Bu adımda ise OpenVPN istemci ile beraber kurulacak olan yan yazılımlar ve yazılım parçaları seçilmektedir. Bu adımda herhangi bir değişiklik yapmadan Next seçeneğini seçerek devam edebilirsiniz.


Bu adımda OpenVPN istemcinin nereye kurulacağını belirleyebilirsiniz. Sisteminizde özel bir düzenleme yok ise, bu adımda herhangi bir değişiklik yapmadan, Next seçeneğini seçerek devam edebilirsiniz.
Bu adımdan sonra kurulum başlayacaktır.
Kurulum sırasında yukarıdaki bir uyarı ile karşılaşabilirsiniz. Bu uyarı, OpenVPN'in sanal ağ bağdaştırıcı sürücüsünü kurup isteyip istemediğinizi sormaktadır. Bu sürücü istemcinin çalışması için gerekli olduğundan Yükle seçeneğini seçmeniz gerekmektedir. Daha sonra istemcinizi güncellerken bu soru ile karşılaşmak istemiyorsanız Her zaman "OpenVPN Technologies, Inc." kaynaklı yazılımlara güven seçeneğini işaretleyebilirsiniz.
Sanal ağ bağdaştırıcı sürücüsü de sisteme kurulduktan sonra kurulum tamamlanacaktır. Next seçeneğini seçerek devam edebilirsiniz.
Son ekranda ise README dosyasını okuyup istemek istemediğinizi seçtikten sonra Finish'e basarak kurulumdan çıkabilirsiniz.
OpenVPN kurulumu tamamlandıktan sonra, OpenVPN istemcisinin yapılandırılması gerekmektedir. Bir sonraki adımda bu işlemler detaylı şekilde anlatılacaktır.

OpenVPN İstemcisinin TRUBA Bağlantısı için Yapılandırılması

OpenVPN istemcisi kurulduktan sonra TRUBA altyapısına bağlanabilmeniz için gerekli olan yapılandırma dosyasını indirmeniz gerekmektedir. İlgili dosyaya yukarıdaki bağlantıdan ulaşabilirsiniz.
Not: Eğer tarayıcınız dosyayı indirmek yerine pencerede açar ise, lütfen bağlantıya sağ-tıklayarak kaydediniz. Firefox için bu seçenek Bağlantıyı farklı kaydet... dir.
İndirdiğiniz dosyayı kullanmak için taşıyabileceğiniz iki konum bulunmaktadır. Bunlardan bir tanesi bağlantıyı sadece sizin kullanmanızı sağlarken, diğeri sistemdeki tüm kullanıcıların kullanmalarına izin vermektedir.
Sizin kullanımınız için (önerilen): C:\Kullanıcılar\<kullanıcı_adınız>\OpenVPN\config
Genel kullanım için: C:\Program Files\OpenVPN\config
Dosyayı kopyaladıktan sonra masaüstünüzde kurulum sırasında oluşmuş olan OpenVPN GUI bağlantısına çift tıklayarak istemciyi çalıştırabilirsiniz.
İstemciyi çalıştırdığınız zaman saatin yanında istemcinin simgesi belirecektir.
Bu simgeye sağ tıkladığınız zaman bir menü açılacaktır. Buradan Bağlanı seçerek bağlantınızı kurabilirsiniz.
Bağlantı kurduğunuzda OpenVPN istemcisi sizden kullanıcı adınızı ve parolanızı isteyecektir. Kullanıcı adı ve parolanız arayüz makinesine bağlantı için kullandığınız kullanıcı ve parola ile aynıdır.
Not: Eğer sisteminize ilk defa OpenVPN kuruyorsanız, Windows Güvenlik Duvarı aşağıdaki gibi bir pencere ile bağlantı izni isteyebilir. Bütün ağ türlerini seçtikten sonra Erişime izin ver seçeneğini seçmeniz gerekmektedir.
Bu noktada OpenVPN bağlantınız kurulmuş olacaktır. Bağlantı başarılı bir şekilde kurulduğunda aşağıdaki gibi bir bildirim gelecektir. Atanan IP kısmı aşağıdaki resim ile farklılık gösterebilir ve her bağlantınızda değişebilir, bu bir problem değildir.

Sertifika ile OpenVPN erişimi

Daha önceden sertifikası olan ancak, sertifikası zaman aşımına uğramış veya iptal edilmiş kullanıcılar grid-teknik@ulakbim.gov.tr adresine e-posta göndererek kendilerine özel sertifika başvuru linkinin kendilerine gönderilmesini sağlayabilirler.
Not: Sertifikasını sadece OpenVPN için kullanan araştırmacılarımız, bir önceki bölümde anlatılan [ Kullanıcı Adı ve Parola ile OpenVPN Erişimi https://wiki.truba.gov.tr/index.php/Kullan%C4%B1c%C4%B1_El_Kitab%C4%B1#Kullan.C4.B1c.C4.B1_ad.C4.B1_ve_parola_ile_OpenVPN_Eri.C5.9Fimi] sayfasından doğrudan bağlantı için gerekli bilgileri alabilirler.
Kullanıcı Sertifikasının Yedeklenmesi
TÜBİTAK ULAKBİM TRUBA kaynaklarına bilgisayara erişim izni olan kullanıcılar için daha önceden kullanıcı sertifikaları oluşturulmuş bulunmaktadır. Sertifika başvususu sırasında kullandığınız web tarayıcınızın sertifikalar ya da güvenlik ayarları kısmından bu sertifikalara ulaşabilirsiniz.
Firefox kullanıcıları aşağıdaki yönergeyi takip edebilirler.
Firefox programının menülerini kullanarak “Araçlar-->Seçenekler ” penceresini açınız. Açılan pencerenin “Gelişmiş” seçenekleri içinde “Şifreleme” sekmesini açınız.
“Onay belgelerini göster” düğmesine basarak mevcut sertifikalarınızı görüntüleyebilirsiniz. Açılan listede TRGrid CA tarafından onaylanmış sertifikanızı seçerek
“Yedekle” düğmesine basınız ve sertifikanın kayıt edilecegi dizini seçiniz.
Eğer OpenVPN uygulamasını daha önce yüklediyseniz, sertifikanızı OpenVPN'in yapılandırma dizini olan “C:\Program Files\OpenVPN\config” dizini içine “sertifika” adı ile kayıt ediniz. Eğer OpenVPN uygulamasını henüz yüklemediyseniz, sertifikanızı bilgisayarınızda herhangi bir dizine sertifika adı ile kayıt ediniz. Kayıt sırasında, bu sertifikanın kullanırken sorulacak şifreyi girmeniz istenecektir. Lütfen bu şifreyi unutmayacağınız bir şekilde belirleyiniz. Bu şifreyi daha sonrasında OpenVPN istemcisi ile birlikte kullanacağınız için sizin için önem taşımaktadır.
Kendi güvenli şifrenizi bu kısıma ilgili kısıma yazarak “yedekleme” işlemini tamamlayınız.
Windows İstemciler Üzerinde OpenVPN Kurulumu ve Yapılandırılması
OpenVPN istemcisinin kurulumunu birkaç adımda aşağıdaki gibi gerçekleştirebilirsiniz.
1-OpenVPN Uygulamasının İndirilmesi ve Kurulması:
https://openvpn.net/index.php/open-source/downloads.html adresinden indirebilirsiniz. İndirdiğiniz programı çalıştırarak kurulma başlayınız. Karşınıza ilk gelecek pencere:
Bu pencerede “Next” düğmesine basarak bir sonraki pencereye Geçiniz. Açılan pencerede
kullanıcı sözleşmesini kabul ederek bir sonraki pencereye geçiniz. Bu adımda OpenVPN programının hangi bileşenlerinin yükleneceği sorulmaktadır.
Bu kısımda hiç birşeyi değiştirmeyerek bir sonrakı pencereye geçiniz. Burada OpenVPN programın nereye yükleneceği sorulmaktadır.
Bu kısmı değiştirmeden “Install” düğmesine basarak kurulumu başlatabilirsiniz.
Kurulum sırasında karşınıza aşağıdaki gibi bir güvenlik uyarısı çıkabilir.
“Devam Et” düğmesine basarak kuruluma devam ediniz. Kurulumu
“Finish” düğmesine basarak Tamamlayınız.


2-OpenVPN Ayarlarının Yapılması
Aşağıdaki iki linkte verilen dosyaları OpenVPN yapılandırma dizini olan “C:\Program Files\OpenVPN\config” dizinine kopyalayınız.
Sertifika otoritesi dosyası: http://wiki.truba.gov.tr/ca.pem
OpenVPN yapılandırma dosyası http://wiki.truba.gov.tr/TRUBA.ovpn
3-OpenVPN Programının Çalıştırılması ve Bağlantının yapılması
Başlat menüsünden “Başlat-->Programlar-->OpenVPN-->OpenVPN GUI“ yolunu kullanarak OpenVPN programını başlatınız.

Not: Openvpn istemcisinin sisteme bağlanıp, gerekli yönlendirme ayarlarını yapabilmesi için, OpenVPN GUI'sinin yönetici hakları ile çalıştırılması gerekmektedir.
Program başladığında ekranın sağ alt köşesine kırmızı renkli iki küçük monitör işareti gelecektir. Bu monitörlerin üzerine farenin sağ tuşu ile tıklayarak bağlantı menüsünü açıp
“Connect” seçeneğini tıklayınız. İnternet bağlantınızda herhangi bir problem yoksa aşağıdaki pencere açılarak size sertifika yedeklemesi sırasında kullandığınız parola sorulacaktır.
Parolanızı yazıp “OK” düğmesine basarak VPN bağlantısını tamamlayabilirsiniz. Parolanızı doğru yazıp başarılı bir şekilde VPN bağlantısı oluşturulunca sağ alt köşedeki kırmızı/sarı monitör işaretleri yeşile dönüşecektir.
Kurulum sırasında karşınıza aşağıdaki gibi bir güvenlik uyarısı çıkabilir.


“Devam Et” düğmesine basarak kuruluma devam ediniz. Kurulumu
“Finish” düğmesine basarak tamamlayınız.
Not: Eğer bağlantıda hata alıyorsanız, OpenVPN'i Windows üzerinde "Yönetici Hakları" ile çalıştırınız.
Linux İstemciler Üzerinde OpenVPN Kurulumu ve Yapılandırılması
Linux bir sisteme OpenVPN istemcisi pek çok farklı yoldan kurulabilir. En basit ve güvenli yol ise kullandığınız dağıtımın paket yöneticisini kullanmak olacaktır.
Debian ve benzeri sistemlere OpenVPN programını yüklemek için:
$ sudo apt-get install openvpn
komutunu vermeniz yeterlidir.
Redhat ve türevi dağıtımlarda ise yum yada rpm'i kullanabilirsiniz.
$ sudo yum install openvpn
Komut Satırını Kullanarak Bağlantı Sağlanması
Öncelikle ev dizininizde sertifika ve yapılandırma dosyalarının bulunacağı bir dizin oluşturun.
$cd ~
$mkdir vpn
Yapılandırma dosyanız TRUBA.ovpn ve sertifika dosyalarınızı (sertifika.p12, ca.pem) bu dizin içerisine kopyalayın. TRUBA.ovpn dosyanızda ca ve pkcs ile başlayan satırlarında değişiklik yaparak dosyaların tam adreslerini belirtin.
client
dev tun
proto tcp
remote yengec.ulakbim.gov.tr 1194
nobind
;user nobody
;group nobody
persist-key
persist-tun
ca /home dizininizin tam dizin adi/vpn/ca.pem
pkcs12 /home dizininizin tam dizin adi/vpn/sertifika.p12
comp-lzo
verb 3
Burada "/home dizininizin tam dizin adi/vpn/" kısmında siz kendi ev dizininizin tam dizin yolunu belirtmelisiniz.
Aşağıdaki komutu vererek (kendi yapılandırma dosyanızın tam yolunu vermeniz gerekir) sunucu ve bilgisayarınız arasında bir sanal ağ oluşturabilirsiniz.
$sudo openvpn /home dizininizin tam dizin adi/vpn/TRUBA.ovpn
Not: sudo ile herhangi bir komut çalıştırabilmeniz için kullandığınız bilgisayardaki kullanıcı hesabınıza sudo hakkı verilmiş olması lazım. Ayrıca sudo komutu çalıştırıldığında ilk önce kullandığınız bilgisayardaki kullanıcı hesabınızın parolası sorulur. (genellikle)
Bağlantı sırasında size sertifikanızın yedeklenmesi sırasında tanımladığınız sertifika parolası sorulacaktır. Bu bilgiyi doğru verdiyseniz ve başka bir sorun da yoksa bağlantınız gerçekleşecek ve ekrana aşağıdaki satırlara benzer satırlar basılacaktır.
Tue Mar  2 12:04:00 2010 ROUTE default_gateway=193.140.94.1
Tue Mar  2 12:04:00 2010 TUN/TAP device tun0 opened
Tue Mar  2 12:04:00 2010 TUN/TAP TX queue length set to 100
Tue Mar  2 12:04:00 2010 /sbin/ifconfig tun0 10.0.0.6 pointopoint 10.0.0.5 mtu 1500
Tue Mar  2 12:04:00 2010 /sbin/route add -net 193.140.99.4 netmask 255.255.255.255 gw 10.0.0.5
Tue Mar  2 12:04:00 2010 /sbin/route add -net 193.140.99.9 netmask 255.255.255.255 gw 10.0.0.5
Tue Mar  2 12:04:00 2010 /sbin/route add -net 10.0.0.1 netmask 255.255.255.255 gw 10.0.0.5
Tue Mar  2 12:04:00 2010 Initialization Sequence Completed
Bağlantının başarılı olduğunu en alttaki "Initialization Sequence Completed" ifadesinden görebilirsiniz.
MACOSX İstemciler Üzerinde OpenVPN Kurulumu ve Yapılandırılması
MACOSX üzerinde openvpn için en yaygın kullanılan uygulama Tunnelblick'dir. Uygulamayı indirip kurduktan sonra, masa üstünde VPN adında bir dizin oluşturulur. Bu dizin içerisine sertifika.p12, ca.pem ve TRUBA.ovpn dosyaları kopyalanır.
TRUBA.ovpn dosyayasının içeriği aşağıdaki gibi olmalıdır:
client
dev tun
proto tcp
remote yengec.ulakbim.gov.tr 1194
nobind
;user nobody
;group nobody

persist-key
persist-tun 

ca ca.pem
pkcs12 sertifika.p12
comp-lzo
verb 3

Daha sonra VPN dizininin adı VPN.tblk ile değiştirilir. Bu değişiklik yapıldığında dizinin ikonu tunnelblick ikonu ile değişecektir. VPN.tblk dosyasının üzerinde farenin sağ tuşu ile iki kere tıklandığında, yapılandırma dosyası tunnelblick programı tarafından import edilecektir. (macosx yönetici kullanıcısı için parola istenebilir)
Bu şekilde yapılandırma tamamlanmış olacaktır. Sağ üst köşedeki tünel işaretine sol tuşla tıklanarak açılan menüden TRUBA bağlantısı seçilerek, sisteme OpenVPN üzerinden bağlantı sağlanmış olacaktır.

Kullanıcı Hesabının Kullanılır Duruma Getirilmesi

Altyapı bulunan bilgisayar kümelerine iş gönderebilmeniz için (özellikle paralel işler gönderebilmek için), hesabınıza özel ssh anahtarlarının üretilmesi ve bu anahtarların uygun yapılandırma dosyalarına kayıt edilmesi gerekmektedir.
Hesabınız açıldıktan sonra anahtarların oluşturulması ve gerekli ayarların yapılması bir kaç basit adımda bu gerçekleştirilebilir.Kullanıcı arayüz bilgisayarlarına, kefa.ulakbim.gov.tr, “login” oluduktan sonra komut satırından aşağıdaki komutları sırasıyla sisteme giriniz.
$>ssh-keygen (Sorulan tüm soruları “Enter” tuşuna basarak geçiniz)
$>cat .ssh/id_rsa.pub > .ssh/authorized_keys
Yukardaki komutları başarı ile çalıştırdıktan sonra sisteme sorunsuz olarak iş göndermeye başlayabilirsiniz.

Yazılımlar

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 sunuculari --> AMD Opteron 6176 (mercan kuyruğu)
Levrek sunuculari --> Intel Xeon E5 2690 V1 (single, short, mid1,mid2,long kuyrukları)
Levrekv2 sunuculari --> Intel Xeon E5 2680 V3 (cuda ve levrekv2 kuyrugu)
Sardalya sunuculari --> Intel Xeon E5 2690 V4 (sardalya kuyruğu)
Orkinos sunucusu --> Intel Xeon E7 4850 V3 (smp kuyruğu)
Barbun sunuculari --> Intel Xeon Scalable 6148 (barbun, barbun-cuda kuyrukları)
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 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.

Mevcut uygulamalar ve kütüphaneler

Kullanıcıların kullanımına sunulmuş, ve farklı işletim sistemleri ve farklı işlemci mimarileri için derlenmiş, lisansı ücretsiz uygulamalar merkezi yazılım alanına (truba/sw) yükkenmiş bulunmaktadır. Hiyerarşik olarak uygulamalar app, kütüphaneler lib derleyiciler comp dizinine yerleştirilmiştir.
Quantum Espresso, Namd, Amber gibi sık kullanılan uygulamların, Lapack, Blas, FFTW, petsc, mkl gibi kütüphanelerin ve Intel derleyicilerinin farklı versiyonları yazılım dizinlerine yüklenmiştir. Yazılımların yeni versiyonları çıktıkça ve talep oldukça yeni yazılımlar ve yeni versiyonlar yüklenilmeye devam edilecektir.
Ortak alanda bulunan yazılımlar tüm kullanıcılar düşümülerek hazırlandığı için genel opsiyonları ile derlenmiş olup, işlemci mimarisi için geçerli olan optimizasyonlar hariç hiçbirinde herhangi bir optimizasyon yapılmamıştır. Bu nedenle kullanıcıların bekledikleri performansları veremeyebilirler, Ya da yapmak istedikleri hesaplama türünü gerçekleştiremiyor olabilirler. Bu ve benzeri durumlar için, kullanıcıların kullanmak istedikleri uygulamaları kendi ev dizinlerinde kendilerinin derlemelerini, ihtiyaç duydukları optimizasyonu gerçekleştirmelerini öneriyoruz.
Lisansı ücretli olan yazılımlar, küme üzerinde çalışmasına izin verecek lisans edinildikten sonra kullanıcı tarafından kendi ev dizininde derlenmeli ve oraya yüklenmelidir. Bu tür yazılımların lisansları, kullanımları, kurulumları vb konularda her türlü sorumluluk kullanıcının kendisine aittir. Eğer yüklenecek lisanslı yazılım floating yada benzeri bir lisanslama modeli ile lisans doğrulama servisine (flexlm vs) ihtiyaç duyuyorsa, ilgili servis kullanıcının kendi kurumu tarafından sağlanmalı ve buradaki hesaplama sunucularının bu servise erişmesine izin verilmelidir.
Küme üzerinde sıklıkla kullanılan uygulamalar:
  • Quantum Espresso
  • NAMD
  • Amber
  • Siesta
  • Abinit
  • Meeb
  • Lammps
  • Gamess
  • Gromacs
  • Gaussian09
  • Vasp
Mevcut kütüphaneler:
  • Blas/Lapack
  • Scalapack
  • MKL
  • ACML
  • FFTW
  • CUDA
  • Openmpi
  • impi
Mevcut derleyiciler:
  • GNU derleyicileri
  • Intel composer XE 2013 sp1
Derleyiciler
  • Sistemde yüklü olan GCC derleyicileri
Kurulu bununan işletim sistemi ile birlikte gelen GCC 4.8.5 derleyici ve kütüphaneleri tüm kullanıcı arayüzlerinde ve hesaplama sunucularında kullanılabilir durumdadır. GCC'nin bu versiyonunu kullanmak için herhangi bir modülü yüklemeye gerek bulunmamaktadır. Ayrıca modüller içerisinde daha yeni versiyon GCC-6.4 ve gcc 7 derleyicileri de bulunmaktadır. Modül dosyalarını ile tanımlanmış uygulama ve kütüphanelerin kullanımı için kullanıcı el kitabındaki ilgili kısıma göz atınız.
  • Sistemde yüklü olan Intel derleyicileri
Intel derleyici ve matematik kütüphanelerinin pek çok farklı versiyonu altyapıda kurulu bulunmaktadır. Ancak lisans kısıtlamaları nedeni ile sadece Intel Parallel Studio XE SP1 ile birlikte gelen derleyiciler ve kütüphaneler kullanılabilir durumdadır.
icc 14.0.1, ifort 14.0.1, icpc 14.0.1
Intel derleyiciler, Intel Paralel Sdudio 2013-SP1 Update paketi ile gelmektedir. Bu paket içerisinde ayrıca Intel işlemciye sahip sunucular için optimize edilmiş Matematik kütüphanesi, Debug ve Trace araçları da bulunmaktadır.
  • 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 yeterlidir.
 $>source /truba/sw/centos7.3/comp/intel/PS2013-SP1/bin/compilervars.sh intel64
 
Ayrıca module sistematiğini kullanarak, ilgili derleyiciler ve kütüphaneler dinamik olarak load yad unload edilebilir.
CUDA
CUDA kütüphanesinin farklı versiyonları /truba/sw/centos7.3/lib/cuda dizini altında yüklüdür.. Kütüphaneler ve araçlar doğrudan bu dizin altından kullanılabileceği gibi, ilgili kütüphanelerin modülleri load edilerek de kullanılabilir.. Mevcut versiyonlar:
  • centos7.3/lib/cuda/7.5
  • centos7.3/lib/cuda/9.0
İlgili kütüphaneler, $TRUBA_SW/lib/cuda/7.5 ve $TRUBA_SW/lib/cuda/9.0 dizinlerinde bulunmaktadır. Bu dizinlerde ayrıca örnek CUDA kodları ve uygulama örnekleri bulunmaktadır. Kurulum alanında yer alan örnekler kaynak yöneticisi aracılığı ile CUDA desteki kuyruklarda ya da kullanıcı arayüz sunucusunda (levrek1) komut satırından çalıştırılabilir.
Intel Kütüphaneleri ve derleyicileri
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 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.
Nümerik Kütüphanaler
İşlemci üreticileri tarafından sağlanan ve ilgili işlemci markası için optimize edilmiş AMD ACML ve Intel MKL'nin farklı versiyonları ile birlikteblas, 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.
ACML modülleri:
  • 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.
Intel MKL
Intel Parallel Studio SP1 ile gelen MKL kullaanılabilir durumdadır.. Kütüphaneyi kullanabilmek için Intel'in tüm kütüphaneleri source edilebilir, yada modüller arasından intel derleyiciler load edilebilir.
$>source /truba/sw/centos7.3/comp/intel/bin/compilervars.sh intel64


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

Kaynak Yöneticisi ve İş Döngüsü

Mevcut hesaplama kaynaklarının verimli kullanabilmesini sağlamak amacı ile tüm hesaplama sunucuları hesaplama kuyrukları ile organize edilerek SLURM kaynak yöneticisi ile yönetilmekte ve kullanılmaktadır.. Kaynak yöneticisi hakkında detaylı bilgiye üreticinin web sayfasından (https://computing.llnl.gov/linux/slurm/) erişmek mümkündür.

Temel SLURM komutları

Temelde sbatch ve squeue komutları iş göndermek işinizin durumunu izlemek için yeterli olsa da ek bazı SLURM komutlarını biliyor ve kullanıyor olamak, kullanım sırasında karşılaşılabilecek pek çok sorunu hızlıca çözmek ve sistemin genelini daha iyi kavramak açısından önemlidir.
Aşağıda sık kullanılan bazı komutların temel fonksiyonları hakkında özet bilgiler verilmiştir. Ancak bu komutlar pek çok ek ve özelliği, komut yanına yazılacak parametrelerle sağlayabilmektedir. Komutların ek özellikleri ve detayları hakkında pek çok bilgiye, komutların yardım sayfalarından (man pages) yada SLURM'un web sitedinden ulaşılabilir. Komutların yarım sayfasına, kullanıcı arayüzü sunucularından aşağıdaki komutla ulaşılabilir.


$> man <komut_adi>
sinfo: İş kuyruklarının güncel kullanım durumunu ekrana basar. Buradan edilinecek bilgi ile kuyruğa gönderilecek işin kaynak miktarı planlanarak en hızlı şekilde başlayabileceği kuyruğa yönlendirilebilir.Kullanılacak ek parametrelerle, listelenecek bilginin türü ve miktarı değiştirilebilir.
squeue: Kullanıcının kuyrukta bekleyen ve çalışan işlerini görüntüler. Kullanılacak ek parametrelerle, listelenecek bilginin türü ve miktarı değiştirilebilir. Kullanıcının tüm işleri listelenebileceği gibi (varsayılan), işin iş numarası parametre olarak verilerek, o işe özel bilgilerin dökümü de alınabilir.
sbatch: Hazırlanan iş betiğini kuyruğa göndermek için kullanılır. Parametreler betik dosyasında verilebilecegi gibi komutun yanına da yazılabilir. İşin akışını, verimini ve kontrolünü sağlayacak pek çok parametresi vardır.
srun: Alternatif olarak işler sbatch yerine srun komutu ile de çalıştırılabilir. Srun kullanılırken çalıştırılacak komut doğrudan srun ve parametrelerinin sonuna yazılır. Basit ve küçük işleri çalıştırmak için hızlı bir yöntemdir. Sbatch'de olduğu gibi pek çok önemli parametresi vardır.
scancel : Kuyrukta sırada bekleyen yada o anda çalışmakta olan işleri iptal etmek için kullanılır.
salloc: Komut satırından interaktif iş çalıştırmak için kullanılır. Salloc komutu ile öncelikle istenilen kaynak miktarı “allocate” edilerek salloc komut satırına geçilir, sonrasında srun komutu işe işler interaktif olarak çalıştırılır. Çalışma sırasında kullanıcı işin çalışmasına müdehale edebilir.
scontrol: Küme, kuyruk (partition) yada herhangi bir iş ile ilgili bilgilerin dökümü alınabilir, izin verildiği ölçüde, müdehale edilebilir. Kuyruğa gönderilmiş olan işler üzerinde, işleri silmeden güncelleme yapılmasına imkan sağlar.
sacct: Beklemede, çalışmakta yada daha önce çalışmış ve sonlanmış olan işler yada tek bir iş hakkında ayrıntılı rapor ve bilgi alınmasına imkan verir. Pek çok parametre içerir. Örneğin belli tarihler arasında başlamış ve bitmiş işlerin listesi, çalışma süresi, kullandığı bellek miktarı, üzerinde çalıştığı sunucuların adresleri vs, gibi iş/işler ile ilgili bilgi alınması mümkündür.
sstat Çalışmakta olan işin kullandığı, kullanmakta olduğu sistem kaynakları hakkında bilgi verir. --format= ile verilecek bilgi türleri seçilebilir.

SLURM betiği özellikleri

Herhangi bir SLURM betiği aslında BASH kabuk betiğidir. BASH kabuk programlama dilinin tüm öğelerini bu betikte kullanarak, pek çok detaylı analizi iş kuyruklarında yaptırmak mümkün.dür. BASH dilini betikte kullanarak, SLURM'un (yada herhangi bir başla kaynak yöneticisinin) sağlayamayacağı esnekliği betiklere eklemek mümkündür. Kabuk programlama ile ilgili wiki sayfamızda bulunan “Temel Kabuk Programlama” dökümanına göz atabilirsiniz.


Kabuk programlamadan bağımsız olarak, Herhangi bir SLURM betiği temel olarak 3 ana bölümden oluşur. Başlangıç (Parametreler, tanımlar), gövde ve iş başlatma/çıkış.
Başlangıç
Bu bölümde, hesaplama sırasında kullanılacak banka hesabı ve işin çalışacağı yer, zaman sınırı, çekirdek ve node sayısı gibi işin temel özellikleri tanımlanır. Her tanım satırı #SBATCH işe başlar. Bu bölümde işin akışını belirleyecek pek çok tanım yapılabileceği gibi, temel birkaç tanımın yapılması işin çalışması için yeterlidir.
Bu tanımların bir kısmı betik dosyasının içerisinde yapılabilecegi gibi, bir kısmı sbatch komutu ile dosya kuyruğa gönderilirken komutun yanında parametre olarak da kullanılabilir. örnegin sbatch -N 4 -n 16 is_dosyasi_adi


#!/bin/bash Betiği yorumlayacak interptreter. Bu şekilde kalması gerekir.
#SBATCH -p İşin çalıştırılacağı kuyruk adı (partition)
#SBATCH -A İş için kullanılacak kullanıcak bankaccount. Grup halinde yapılan çalışmalarda kullanıcı adından farklı olabilir. ARDEB kanalı ile açılan TBAG proje hesaplarına ayrıcalıklı olarak iş göndermek için, bu kısıma ilgili (ve kullanıcı hesabınız için izin verilen) tbag hesabının yazılması gerekir.
#SBATCH -J İşin kuyrukta görülecek adı.
#SBATCH -n Görev sayısı (mpi işleri için, uygulamanın çalıştırılacağı kopya sayısı). Normalde sbatch herhangi bir görev çalıştırmaz. İş, çalışacağı sunucuya düşüp, master nodda çalışmaya başladığında, betik linux komut satırından çalıştırılmış gibi davranır. Betikte işin çalıştırılacağı komut satırında özel bir durum belirtilmemişse işin tek kopyası çalıştırılır. Ancak satırda mpirun yada mpiexec komutları kullanılmışsa, ilgili uygulamanın -n kopyası çalıştırılır.
#SBATCH -c Her bir görev için kullanılabilecek en fazla çekirdek sayısını belirtir (cores per task) . Varsayılan değeri 1'dir. Eğer hibrid işler (mpi+openmp) yada multitask (openmp sadece) çalıştırılacaksa, bu parametrenin kullanılması gerekir.. Değeri OMP_NUM_THREADS değişkeninin değeri işe aynı olacak şekide seçilmelidir. Değeri 1 sunucudaki çekirdek sayısından fazla olamaz.. Eğer aynı sunucusu uzerinden 1 den fazla task (n) çalıştırılacaksa, sunucu başına düşen görev sayısı x görev başına düşen çekirdek miktarı en fazla ilgili sunucudaki çekirdek sayısı kadar olabilir. Örnegin 2 adet 28 çekirdekli sunucunun tamamı kullanarak 8 processli (task) bir MPI+openmp hibrid işi çalıştırılacaksa, process başına en fazla 7 çekirdek kullanılabilir. (sunucu başına 4 process düşer, sunucuda toplam 28 çekirdek varsa, her bir process için en fazla 7 çekirdek kullanılabilir)
#SBATCH --threads işlemcilerin hyperthreading özelliklerini kullanmak için tanımlanır.. Mevcut işlemcilerde çekirdek başına 2 thread düşmektedir. Örnegin 28 çekirdekli bir sunucuda, bir openmp işini 56 threadle (OMP_NUM_THREADS=56) çalıştırabilmek için -N 1 -n1 -c28 --threads=2 tanımı kullanılabilir..
#SBATCH --mem= Bu parametre ile iş için toplamda en fazla ne kadaar bellek kullanılacağı belirtilmektedir. kullanımı zorunlu değildir. Eğer Bu parametre kullanılmazda her bir çekirdek için DefMemPerCore kadar bellek ayrılır.. Eğer daha fazla belleğe ihtiyaç duyulacaksa, bu parametre ile ihtiyaç duyulan bellek miktarı arttırılabilir. Ancak bu değer en fazla çekirdek_sayisi x MaxMemPerCore kadar arttırılabilir.
#SBATCH --mem-per-core= Bu parametre ile her bir çekirdek için ihtiyaç duyulan bellek miktarı belirtilir. Kullanımı zorunlu değildir. Eğer Bu parametre kullanılmazda her bir çekirdek için DefMemPerCore kadar bellek ayrılır.. Eğer daha fazla bellege ihtiyaç duyulacaksa, bu paramere ile ihtiyaç duyulan bellek miktarı arttırılabilir. Ancak bu değer en fazla MaxMemPerCore kadar olabilir.


#SBATCH –time= İşin en fazla çalışma süresi. Bu süre zarfında tamamlanmamış olan işler, zaman dolduğunda otomatik olarak öldürülürler. Burada verilecek değer ilgili kümenin sınırından yüksek olamaz. Herhangi bir değer verilmeden gönderilen işler, çalışmaya başladıktan 1 dakika sonrasında sistem tarafından otomatik olarak sonlandırılırlar.
#SBATCH –no-requeue İş çalışırkan bazı durumlarda, hesaplama suncusundan kaynaklı sebeplerle, iş hata alarak sonlanabilir, bu durumda işi kuyruğa otomatik olarak yeniden gönderilir. İşin kuyruğa yeniden gönderilmesi genelde faydalı bir özelliktir, ancak eğer iş kaldığı yerden devam edecek şekilde yapılandırılmamışsa yada kullanılan uygulamanın böyle bir özelliği yoksa ve o ana kadar üretilen verilerin üzerine yeni verilerin yazılma ihtimali varsa, bu opsiyon kullanılarak işin kuyruğa otomatik olarak yeniden gönderilmesi engellenebilir.


#SBATCH –output= İş çalışırlen, kullandığınız uygulamanın ya da betiğinizde kullandığınız bash programla öğelerinin ekrana basacağı (STDOUT) bilgilerin yazılacağı dosyabın tam adresi ve adı. Bu adresin scratch dizinde olması zorunludur.
#SBATCH –error= İş çalışırlen, kullandığınız uygulamanın ya da betiğinizde kullandığınız bash programla öğelerinin ekrana basacağı hata mesajlarının (STDERR) yazılacağı dosyanın tam adresi ve adı. Bu adresin scratch dizinde olması zorunludur.
Eğer --error ve --output parametreleri belirtilmezse, tüm ekran çıktısı otomatik olarak slurm-JOBID.out dosyasına yönlendirilir.


#SBATCH -N Hesaplama sırasında, kullanıcak çekirdeklerin kaç farklı node tarafından sağlanacağını belirler. Herhangi bir tanım girilmemişse, çekirdekler rasgele sayındaki nodelardan rastgele sayıda sağlanırlar. Node sayısı için herhangi bir tanımlama yapmamak işlerin mümkün olan en hızlı şekilde başlamasını sağlar, ancak performans testlerinde alıncak sonuç, her iş için farklı olabilir, Eğer talep edilen çekirdeklerin nodelar tarafından eşit sayıda sağlanması istemiyorsa, -n -N parametresi yerine --ntasks-per-node ve -N parametreleri birlikte kullanılmalıdır. Örnegin işiniz için toplamda 16 çekirdeğin 4 sunucu tarafından eşit sayıda sağlanmasını istiyorsanız -N 4 --ntasks-per-node=4 parametresini kullanmalısınız.
Not: --ntask-per-node parametresi openmpi-1.6.5 sürümü ile düzgün çalışmamaktadır. O nedenle eşit çekirdek sayısının elzem olduğu durumlarda en az openmpi-1.8.8 sürümü kullanılmalıdır. Bu parametre impi ve diğer mpi sürümleri ile kontrol edilmemiştir.


#SBATCH -M Birden fazla hesaplama kümesin tek bir arayüz üzerinden hizmet verdiği durumlarda, işin gideceği kümeyi belirtir. TRUBA'da şu an için farklı hesaplama kümeleri farklı kullanıcı arayüzlerinden hizmet vermektedirler.
#SBATCH –workdir= işin başlayıp, output err dosyalarının yazılacağı dizinin adresidir. Scratch dizini işaret ediyor olması zorunludur. Eğer herhangi bir tanımlama yapılmaz ise, varsayılan olarak iş gönderilirken o an içinde bulunan dizin workdir dizini olarak kabul edilir.
#SBATCH –gres= Ekstra özelliklerin sunulduğu kuytuklarda bu ekstra özelliklerin ve onlardan ne kadarının kullanılacağını belirtir. Cuda kuyruğundaki GPU kartlarını kullanabilmek için bu tanımın yapılması gerekir. Örnegin SBATCH –gres=gpu:1
#SBATCH –mail-type= İş kuyruğa gönderildikten sonra, iş ile ilgili ne tür e-postaların gönderileceğini tanımlar. BEGIN, END, FAIL, REQUEUE, ALL değerlerini alabilir. Herhangi bir tanım yapılmaz ise kullanıcı e-posta ile bilgilendirilmez.
#SBATCH –mail-user= Yukarıda tanımlanan durumlarda e-postanın gönderileceği adresi tanımlar.
Gövde
Her program ve kullanıcı için gövde kısmı farklı olabilir. Bu kısımda işi çalıştırmadan önce yapılması gereken ön çalışma yapılır; load edilmesi gereken kütüphaneler, varsa çevre değişkenler vs. yüklenir. Kabuk dili öğeleri kullanılarak ön kontroller yapılarak gereki dosyaların varlığı, içeriği vs. kontrol edilebilir. Bu kısım kullanıcın deneyimine ve ihtiyaçlarına göre şekillenir. Ancak standart olarak iş ile ilgili temel bilgilerin STDOUT'a yazılması daha sonra işi analiz yada debug etmek için faydalı olabilir. Örneğin: aşağıdaki kısım da herhangi bir gaussian işini çalıştırmak için ihtiyaç duyulan kütüphaneler load edilerek çevre değişkenleri ayarlanıyor ve kullanılan kaynağın özellikleri STDOUT'a basılıyor.


echo "SLURM_NODELIST $SLURM_NODELIST" 
echo "NUMBER OF CORES $SLURM_NTASKS" 
export OMP_NUM_THREADS=1 
export g09root=$HOME 
export GAUSS_SCRDIR=/tmp 
. $g09root/g09/bsd/g09.profile
İşin çalıştırılması ve bitiş
Gövde kısmında işin programın çalıştırılması için gereki kütüphaneler, çevre değişkenleri load edildikten ve gerekli kontroller yapıldıktan sonra, sıra işin çalıştırılmasına gelir. İş çalıştırma satırı, normalde işi komut satırından elle çalıştırırken kullanılan komut satırı ile aynıdır. Herhangi bir gaussian işi işin bu satır aşağıdaki gibi olabilir örnegin:


$g09root/g09/g09 < gaussian_egitim.com
exit
MPI işler için SLURM'un sağladığı bazı esneklikler ve kullanım kuralları vardır. Hesaplama sırasında kullanılak cekirdek sayısı ve host bilgisi yazılmasına OpenMPI (ve diğer bazı MPI kütüphanelerinde) gerek yoktur. Bu bilgi mpirun komutuna doğrudan kaynak yöneticisi tarafından sağlanır. Örneğin komut satırından bir MPI işini 4 çekirdek çalıştırıken normalde


mpirun -np 4 –machinefile=hosts_dosyasi <uygulamanin_tam_adresi_ve_adi>
exit


gibi bir komut verilmesi gerekirken SLURM betiğinde aşağıdaki satır kullanılmalıdır.


mpirun <uygulamanin_tam_adresi_ve_adi>
exit


Eğer işin o ana kadar kullanmış olduğu sistem kaynakları (bellek, walltime, runtime, disk vs) hakkında detaylı bilgi alınmak isteniyorsa exit satırından önce
sstat -j $SLURM_JOB_ID
komutunu yazabilirsiniz.

Örnek betik dosyaları

Her kullanıcın deneyimi, ve kullanacağı uygulamanın yeri, özellikleri, versiyonu , ihtiyaç duyduğu kaynak türü ve miktarı, derlendiği ortam ve kütüphanelere göre, herhangi bir uygulamayı çalıştırmak için kullanılabilecek betik dosyası farklılıklar gösterebilir.
Teknik birim tarafından, tüm kullanıcıların kullanımı için standart özelliklerle derlenerek ortak dizine kurulmuş uygulamaların pek çoğu için örnek betik dosyaları hazırlanarak, kullanıcıların kullanımına sunulmuştur.
Örnek betik dosyalarına /truba/sw/scripts dizininden ulaşılabilir. Kullanıcıların burdaki betik dosyalarını kullanabilmeleri için, onları scratch'deki kendi dizinlerine kopyalamaları ve betik dosyasında verilmiş tanımları kendi hesaplanın ve işlerinin özelliklerine göre değiştirmeleri gereklidir.
Betik dosyalarını içinde bulundukları dizinle birlikte kopyalamakta fayda vardır. Zira ilgili dizin içinde, uygulamanın test amacı ile çalıştırılması için örnek input dosyaları da bulunmaktadır.

İşlerin Önceliklendirilmesi ve Başlatılması

Herhangi bir iş kuyruğa gönderildiğinde, kaynak yöneticisi belli parametrelere göre işin öncelik değerini (priority) hesaplar, ve işi kuyruğa alır.. Öncelik değeri ne kadar yüksek ise, iş, iş kuyruğunun o kadar önünde yer alır.. Bu işin daha önce başlatılması anlamına gelir ( kullandığımız backfill algoritması, daha düşük öncelikli işlerin de başlatılmasına olanak verir).
Kullanıcılar işlerinin öncelik değerini squeue --format=%Q yada sprio komutları ile ögrenebilirler.
TRUBA'daki kuyruk sisteminde SLURM tarafından sağlanan multifactor algoritması kullanılmaktadır. Bu algoritmaya göre, herhangi bir işin önceliği hesaplanırken iş gönderilirlen tanımlanmış parametrelere ve sistem yöneticisi tarafından belirlenmiş parametre ağırlıklarına bakılır.
PriorityWeightAge, PriorityWeightJobSize, PriorityWeightPartition,PriorityWeightQOS değerleri, sistem yöneticisi tarafından belirlenmiş, her parametrenin öncelik hesaplamasında ne kadar ağırlığı olduğunu belirleyen değerlerdir. TRUBA'da bu değerler:
PriorityWeightAge =1000 
PriorityWeightJobSize =10000 
PriorityWeightPartition =10000
PriorityWeightQOS =10000
dir. Herhangi bir kullanıcı arayüzünde, kullanıcılar sprio -w komutu ile güncel değerleri görebilirler..
İş önceliği formulü:
Job_priority =
                       (PriorityWeightAge) * (age_factor) +
                       (PriorityWeightFairshare) * (fair-share_factor) +
                       (PriorityWeightJobSize) * (job_size_factor) +
                       (PriorityWeightPartition) * (partition_factor) +
                       (PriorityWeightQOS) * (QOS_factor) +
                       SUM(TRES_weight_cpu * TRES_factor_cpu,TRES_weight_<type> * TRES_factor_<type>,...)
TRUBA'daki öncelik hesaplamasında TRES ve Fairshare parametreleri hesaba katılmamaktadır. Dolayısı ile formülümüz aşağıdaki gibidir:
Job_priority =
                       (PriorityWeightAge) * (age_factor) +
                       (PriorityWeightJobSize) * (job_size_factor) +
                       (PriorityWeightPartition) * (partition_factor) +
                       (PriorityWeightQOS) * (QOS_factor) +


Job_size_factor'u şu şekilde hesaplanır:
Job_node_number_factor=(node_number_in_job/total_node_number_in_cluster)
Job_cpu_number_factor = (cpu_number_in_job/total_cpu_number_in_cluster)
job_size_factor= (Job_node_number_factor+ job_cpu_number_factor)
Eğer büyük işler öncelikliyse:
JOBSIZE_priority= (PriorityWeightJobSize/2) * job_size_factor
Eğer küçük işler öncelikliyse:
JOBSIZE_priority= PriorityWeightJobSize - (PriorityWeightJobSize/2) * job_size_factor
Örneğin 100 nodedan oluşmuş 1000 çekirdekli bir kümede, -n20 -N4 ile gönderilecek bir işin JOBSIZE_priority değeri:
jOBSIZE_priority=(10000/2) * ( 4/100 + 20/1000)
                          = 300 
Eğer küçük işler öncelikli ise:
jOBSIZE_priority=10000 -300 =9700 
olacaktır.


age_factor değeri şu şekilde hesaplanır:
Herhangi bir işin kuyrukta en fazla bekleme süresi MaxAge olarak sistem yöneticisi tarafından tanımlanır.
age_factor=job_age/MaxAge
dolayısı ile AGE_Priority
 AGE_priority=PriorityWeightAge*job_age/MaxAge
Örneğin en faza bekleme süresi 15 gün ve PriorityWeightAge değeri 1000 olan TRUBA'da herhangi bir kuyrukta 10 gün bekleyen işin AGE_priority değeri aşağıdaki gibi olacaktır.
  AGE_priority=(10/15)*1000 = 667 
Eğer iş kuyrukta 15 gün yada daha fazla bekleyecek olursa, işin AGE_priority değeri en fazla 1000 olacaktır.
QOS_factor değeri şu şeklde hesaplanır:
İşin gönderildiği anda, tüm hesaplar arasında, QOS tanımlarında priority değeri en yüksek olan hesabın priority değeri tavan limit olarak kabul edilir.. İşi gönderen kullanıcının QOS tanımındaki priority degeri bu tavan limitle normalize edilir.
QOS_factor=QOS_priority_of_user/max_qos_priorty_in_cluster
QOS_priority=PriorityWeightQOS*QOS_factor
QOS öncelik değeri 1500 olan bir kullanıcı, tavan limiti 5000 ve PriorityWeightQOS değeri 10000 olan bir kümeye iş gönderecek olursa, ilgili işin aşağıdaki gibi olacaktır.
QOS_priority=1500/5000 * 10000 = 3333


partition_factor değeri, öncelik değeri en yüksek olan kuyruğun değeri tavan kabul edilerek, işin gönderildiği kuyruğun değerinin bu tavan değere bölünmesi ile hesaplanır.
partition_factor = priority_value_of_partition_of_job/max_priortity_value_of_partitions
Partition_priority=PriorityWeightPartition*partition_factor
Kuyrukların öncelik değerleri scontrol show partition komutu ile görülebilir.
Kişisel araçlar