DAĞITIK PARALEL SİSTEMLER HAKKINDA KIYASLAMALI BİR ÇALIŞMA: PVM VE MPI A COMPARATIVE STUDY ON DISTRIBUTED PARALLEL SYSTEMS: PVM AND MPI



Benzer belgeler
Paralel Gözlemleme Sistemleri Hakkında Kıyaslamalı Çalışmalar

Paralel Hesaplama ve CUDA

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Bilgisayar İşletim Sistemleri BLG 312

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

İŞLETİM SİSTEMLERİ. (Operating Systems)

Büyük Ölçekli Paralel Nükleer Kabuk Modeli Hesaplamaları

Bilgisayar Sistemlerine Genel Bakış

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Küme Bilgisayarlarda PBS Kuyruk Sistemi

Yazılım Mühendisliğine Giriş 2018 GÜZ

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Yazılım Mühendisliği 1

MONTE CARLO BENZETİMİ

Açık Kaynak Kodlu Yazılım

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Linux e Giriş ve Dağıtımlar

C# nedir,.net Framework nedir?

İşletme ve Devreye Alma Planı Yerel Okul Sunucusu Uygulama Yazılımları Prototipi TRscaler Technology Solutions

Java Temel Özellikleri

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

PBS Betiği Hazırlama ve PBS Komutları. Feyza Eryol

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgisayarım My Computer

UHeM ve Bulut Bilişim

Paralel Hesaplama ve MATLAB Uygulamaları

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

SOME-Bus Mimarisi Üzerinde Mesaj Geçişi Protokolünün Başarımını Artırmaya Yönelik Bir Algoritma

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

BİT in Temel Bileşenleri (Yazılım-1)

Intel Parallel Studio ile Paralel Hesaplama

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

4. Bölüm Programlamaya Giriş

Bilişim Teknolojilerine Giriş

EGE Üniversitesi Mühendislik Fakültesi Bilgisayar Müh. Bölümü Öğretim Yılı Lisans Tezi Önerileri

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Bilgisayar Yazılımları

Hasan ARMUTLU 1 Muammer AKÇAY 2

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

ODTÜ Kampüs Izgara Hesaplama Uygulaması

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

PROGRAMLAMA TEMELLERİ

Çok İşlemcili Yapılarda Sinyal İşleme Yazılımlarının Geliştirilmesi Uygulaması. Sinan Doğan, Esra Beyoğlu

Bilgisayarım My Computer. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

MİKROİŞLEMCİ MİMARİLERİ

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Temel Bilgisayar (Basic Computer) Yazılım (Software)

BİLGİSAYAR DESTEKLİ ÖĞRETİM GENEL BAKIŞ

Sanallaştırmada Özgür Yazılım Çözümleri. Alper YALÇINER

Yazılım Mühendisliğine Giriş 5. Hafta 2016 GÜZ

Bilgisayar İşletim Sistemleri BLG 312

Android e Giriş. Öğr.Gör. Utku SOBUTAY

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

Dağıtık Ortak Hafızalı Çoklu Mikroişlemcilere Sahip Optik Tabanlı Mimari Üzerinde Dizin Protokollerinin Başarım Çözümlemesi

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

Yazılım Mühendisliği Bölüm - 3 Planlama

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Bilgisayarın Yapıtaşları

GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

İşletim Sistemleri. Discovering Computers Living in a Digital World

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

NETFİLTER VE LİNUX TABANLI BİR FİREBOX TASARIMI

Bilgisayarda Programlama. Temel Kavramlar

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Linux İşletim Sistemi Tanıtımı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Ünite-3 Bilgisayar Yazılımı.

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Intel Parallel Studio ile Paralel Hesaplama Muammer AKÇAY 1, Hüseyin Aşkın ERDEM 2 1 Dumlupınar Üniversitesi, Bilgisayar Mühendisliği Bölümü, Kütahya

Web Servis-Web Sitesi Bağlantısı

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

BM-311 Bilgisayar Mimarisi

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

İşletim Sistemlerine Giriş

Ağ Trafik ve Forensik Analizi

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

Bilgisayar Ağları ve Dağıtık Programlama

İşletim Sistemi. BTEP205 - İşletim Sistemleri

BM-311 Bilgisayar Mimarisi

Bilgi ve iletişim teknolojileri

Transkript:

5. Uluslararası İleri Teknolojiler Sempozyumu (IATS 09), 13-15 Mayıs 2009, Karabük, Türkiye DAĞITIK PARALEL SİSTEMLER HAKKINDA KIYASLAMALI BİR ÇALIŞMA: PVM VE MPI A COMPARATIVE STUDY ON DISTRIBUTED PARALLEL SYSTEMS: PVM AND MPI Ahmet Çelik a, * ve Ahmet Özmen b a, * Dumlupınar Üniversitesi, Elektrik-Elektronik Müh. Böl., Kütahya, Türkiye, E-posta: ozmen@dpu.edu.tr Özet Bu çalışmada, dağıtık paralel sistemler irdelenmiş, daha sonra mevcut dağıtık paralel sistemlerden PVM (Parallel Virtual Machine) ve MPI (Message Passing Interface) tanıtılmıştır. Dağıtık sistemler araştırma kurumları, üniversiteler veya yüksek performanslı bilgisayar ihtiyacı olan yerler için ekonomik çözümler sunmaktadır. PVM ve MPI dağıtık sistemleri, mevcut kişisel bilgisayarlara işletim sistemine ek olarak kolayca kurulabilmektedir. Seri programlar aynı kurulumda sağlanan kütüphane desteği ile paralele dönüştürülebilmektedir. Dağıtık paralel sistemlerin kurulumu kolay olmasına rağmen, programlanması zordur. Çalışmada, bu sistemlerin kurulumu, paralel uygulamaların bu sistemler üzerinde koşturulması bir örnekle anlatılmıştır. Anahtar kelimeler: Paralel bilgi işleme, dağıtık paralel sistemler, PVM, MPI. Abstract In this work, distributed parallel systems examined, and then PVM (Parallel Virtual Machine) and MPI (Message Passing Interface) are introduced as existing distributed parallel systems. Distributed systems provide economical solutions to organizations such as research centers and universities when high performance computer is needed. PVM and MPI can be installed to existing personal computers as an extension to the operating system. Serial programs can be converted to parallel with provided libraries. Although distributed systems are set up easily, they are difficult to program. The paper presents, how these systems are set up, and how parallel programs run on these systems with an example. Keywords: Parallel computing, distributed parallel systems, PVM, MPI. 1. Giriş Mühendislik uygulamalarında yüksek performanslı bilgisayarlara ihtiyaç her geçen gün daha da artmaktadır. Yüksek performanslı bilgisayarların yetenekleri ile üretime giden tasarım sürecinde bazı evreler ortadan kalkmış olup (örneğin prototip gerçekleme ve testler), bu işlemler artık benzetim yoluyla yapılmaktadır. Böylece, geliştirme sürecinde zaman ve paradan tasarruf edilmekte, yeni ürünlerin piyasaya çıkma periyodu kısalmaktadır. Yüksek performanslı sistemler işlemci saat frekansının arttırılması veya donanımın paralel kullanılmasıyla elde edilebilir. İşlemci saat frekansının arttırılması bir noktadan sonra ya ekonomik nedenlerle veya fiziksel sınırlar nedeniyle mümkün olmamaktadır. Bu nedenle daha fazla donanımın paralel olarak kullanılmasıyla performans arttırılması en çok tercih edilen yoldur. Bu yaklaşım kendini önce işlemci içinde paralellik ile gösterdi. Üretim hattı (pipeline) mimarisinde işlemci içine ilave edilen donanım ile aynı anda birden fazla komut icra edilebilir hale getirildi. Böylece komut seviyesinde paralellik yoluyla performans artırılmış oldu. Artık günümüz genel amaçlı bilgisayarlarında kullanılan işlemcilerinin hepsinde pipeline yapı kullanılmaktadır. Bu sistemlerde paralellik komut ölçeğinde olduğundan, kullanıcı açısından bir sorun veya değişiklik oluşmaz. Paralellik için gerekli düzenlemeler derleyici veya donanım içindeki alt birimler tarafından gerçeklenir. Gelişen yarıiletken teknolojisi ile daha çok miktarda donanım aynı pul (wafer) üzerinde gerçeklenebilir oldu. Günümüz teknolojisiyle, yakın geçmişteki işlemcilerden 2, 4, 8 gibi sayılardaki çoklu kopyaları ve ara lojik devreleri aynı pul üzerinde sentezlenebilmektedir. Yaygın olarak kullanımda olan bu işlemcilere günümüzde çok çekirdekli işlemciler denilmektedir. Bu yaklaşımda paralellik, hem çekirdek içinde (pipeline) ve hem de çekirdekler arasında kullanılmaktadır. İşlemci içindeki paralellik bir komutun evreleri veya komutlar arası ölçekte olmaktadır. Bunun yanında, bir görevin bölümleri bir grup işlemci arasında eşit dağıtılmak suretiyle de paralellik gerçeklenebilir. Başlangıçta belirlenen kurala ve dağıtılmış verilere göre, her işlemci kendi işini yapar sonucunu yine başlangıçta belirlenmiş işlemciye gönderir. Görev dağıtımı yoluyla paralellik yazılım yoluyla gerçeklendiğinden, diğer yöntemlere göre esnek ve ekonomiktir. Bu çalışmanın konusu küçük ve orta ölçekli kurumlarda zaten var olan bir grup bilgisayarın hızlı bir ağ ile birbirine bağlanması suretiyle yüksek performanslı bir bilgisayar elde edilmesidir. Bu amaçla işletim sistemine ek olarak geliştirilmiş ve yaygın olarak kullanımda olan iki sistem mevcuttur: PVM (Parallel Virtual Machine) ve MPI (Message Passing Interface) [1, 2]. Çalışmada bu sistemlerin kurulması, uygulamaların derlenmesi ve koşturulması konuları kıyaslamalı olarak incelenmiştir. Ayrıca, bir matris çarpımı programı değişen makine sayısı ve problem boyutu için çalıştırılmış ve sonuçlar analiz edilmiştir. 2. Paralel Sistemlerin Sınıflandırılması Görev paylaşımlı paralel sistemler ortak bellekli (shared memory) ve dağıtık bellekli (distributed memory) olmak üzere iki ana sınıfa ayrılmaktadır. Bu sistemlere sıkı bağlı IATS 09, Karabük Üniversitesi, Karabük, Türkiye

(tightly coupled) ve gevşek bağlı (loosely coupled) sistemler de denmektedir. Paylaşımlı bellekli sistemlerde birbirinin tamamıyla aynı olan çok sayıda işlemci aynı saat frekansı ile sürülür ve aynı belleği paylaşırlar (Bkz. Şekil 1). İşlemciler arasında iletişim paylaşılan bellek üzerinden olduğundan veri paylaşımı oldukça hızlıdır. Bu tür sistemlerde tek işletim sistemi tüm işlemcileri ve belleği yönetir ve bilgisayar genelde tek bir kasa içinde gerçeklenir. Kullanıcı, donanımsal farklılığı (tek işlemcili sistemlere göre) pek hissetmez. Uygulama yazılımlarının paralelleştirilmesi donanım, derleyici ve işletim sistemi yardımıyla gerçeklenir ve kullanıcıya sadece ihtiyaç duyduğu işlemci sayısını belirlemek kalır. Bu nedenle bu tür sistemleri kullanmak, bu tür sistemler için yazılım geliştirmek diğer paralel sistemlere göre daha kolaydır. Ancak, bu mimarideki paralel sistemler genelde sınırlı miktarda imal edildiklerinden pahalı, farklı amaçlar için kullanımı zor ve yeniden düzenlenmeye, yapılandırılmaya esnek değildir. Islemci 1 Islemci 2 Islemci n Paylasimli Bellek Mimarisi Bus Bellek Şekil 1. Paylaşımlı bellek mimarisinde paralel bir bilgisayarın şematik görünüşü. Dağıtık mimari, paylaşılan bellek mimarisinin dezavantajlarını gidermek için geliştirilmiştir. En büyük avantajı, ağa bağlı ve zaten kullanılmakta olan bilgisayarlardan ihtiyaç duyulan kadarını yazılım yoluyla yapılandırıp tek bir hızlı bilgisayara (süper-bilgisayara) dönüştürebilmesidir. Ayrıca, sisteme ilave edilen bilgisayarların, mimarileri ya da işletim sistemleri farklı olabilmektedir. Dağıtık mimaride, işlemci içindeki paralellikten farklı olarak komutlar arası paralellik değil de gruplar halindeki komutlar arası paralellik ön plana çıkmaktadır. Şekil 2 de dağıtık mimaride paralel bir bilgisayarın blok diyagramı görülmektedir. Sistemi meydana getiren bireysel bilgisayarların kullanıcıları isterlerse her an bilgisayarlarını kullanmaya devam edebilirler. Yüksek performans taleplerine ekonomik çözüm sunduğu için bu yaklaşım araştırma kurumlarında, üniversitelerde ve hatta orta ölçekli kurumlarda tercih edilmektedir. Bununla birlikte, dağıtık sistemlerin temel problemi programlama zorluğudur. İş yükünün dağılımını, işlemciler arasındaki veri paylaşımını ve senkronizasyonu programcının kendisi tasarlamalı ve uygulamasını ona göre yapılandırmalıdır. Bu nedenle, bu sistemlerde çalışmak üzere tasarlanan uygulama yazılımlarının önceden performans gözlemlenmesi yapılmalıdır. Aksi halde sistemden beklenen performans elde edilemez. Bellek 1 Islemci 1 Dagitik Bellek Mimarisi Bellek 2 Islemci 2 Bellek n Hizli anahtar Islemci n Şekil 2. Dağıtık bellek mimarisinde paralel bir bilgisayarın şematik görünüşü. Bu tür sistemlerde icra süresi ilk prosesin icraya başlamasından son prosesin icrayı sona erdirmesine kadar geçen süredir. İcra süresi içinde her proses zamanın bir kısmını hesaplamayla (işlemcide geçen süre), bir kısmını iletişimle (mesajlaşma), bir kısmını da sistem içinde geçirir. Sistemde harcanan süre genelde diğerleri yanında ihmal edilebilir boyuttadır. Ancak, paralel bir uygulamanın iletişimde harcadığı sürenin, hesaplamada (işlemcilerde) harcanan süreye oranı ne kadar küçük olursa, paralellik o oranda başarılı olmuş olur. Bu oran büyüdükçe verim düşer, performans tek işlemcili sistemden bile daha kötü olabilir. Piyasada dağıtık bellekli, tek işletim sistemi ile yönetilen bilgisayarlar da kullanılmıştır [3]. Bu sistemler kullanıcılarına türlü kolaylıklar sunmakla beraber, hem pahalı ve hem de esnek değildirler. Bunun yanında, her tür mimari ve işletim sistemine kolayca ilave edilebilen iki yaklaşım (PVM, MPI) yaygın olarak tercih edilmektedir. Bu sistemlere ait paket programlar Internette ücretsiz olarak indirilip eğitim veya ticari maksatlı olarak kullanılabilmektedir. Aşağıdaki bölümler bu yaklaşımların kurulumu, çalıştırılması ve üzerinde program koşturulması ile ilgili bilgiler içermektedir. 2. PVM: Paralel Zahiri Makine (Parallel Virtual Machine) PVM, Oak-Ridge ulusal laboratuarlarında Tennessee Üniversitesi işbirliği ile geliştirilmiştir. Kısa zamanda birçok üniversite tarafından eğitimde ve daha sonra ticari, endüstriyel ve tıp uygulamalarında kullanılmaya başlanmıştır [4]. PVM bir yazılım pakedi olarak i) sunucu (PVM daemon), ii) statik kütüphaneler (pvm.h gibi), iii) dinamik kütüphaneler (libpvm.a gibi) ve iv) örnek programlarla birlikte gelmektedir. Bu yazılım paketinin derlenmiş ve derlenmemiş (kaynak kodlu) paketlerini indirmek mümkündür. Derlenmemiş, kaynak kodlu olarak indirildiğinde, derleme aşamalarını ve kurulum aşamalarını anlatan yardımcı dosyalar paket içinde mevcuttur. Bunun yanında kapsamlı bir dokümantasyon desteği de web aracılığı ile sunulmaktadır. PVM bir grup makineye kurulup aktif hale getirildiğinde her makinede PVM sunucusu (pvmd daemon) arka planda çalışır. Makineler arası iletişim grup içinde farklı makinelerde uygulamaların çalıştırılması rsh (remote shell: uzak kabuk) altyapısına dayanmaktadır. Bu nedenle

paralel sisteme ilave edilen makineler rsh için yapılandırılmalıdır. Tüm makinelere PVM paketi kurulduktan sonra bir makine konsol olarak belirlenir ve tüm sistem oradan yönetilir. İlk yapılacak iş paralel sistem içinde yer alacak makineleri sisteme ilave etmektir. Bu amaçla konsol makinede kabuktan pvm yazılır, ve arkasından paralel sistemin diğer üyeleri zahiri sisteme add komutuyla ilave edilir. Belirli sayıda ve özellikteki makineleri barındıran bir sistemi kısa sürede oluşturmak için bilgisayar adları bir dosyaya yazılabilir. Bu şekilde tek komutla istenilen kadar bilgisayar hemen sisteme ilave edilmiş olur. PVM görsel arayüz üzerinden de kontrol edilebilmektedir. Görsel arayüz yazılımı XPVM olarak adlandırılmış olup, ayrı bir paket olarak indirilip sadece konsol makineye kurulabilmektedir [5]. Şekil 3 te sisteme ilave edilmiş 9 makine XPVM hosts arayüzünde görülmektedir. zaman-uzay ( time-space ) diyagramı görülmektedir. Bu şekilde yeşil renkli çubuklar ilgili işlemcinin uygulamayı icra ettiğini, sarı renkli kısımlar sistemde geçen süreyi, beyaz kısımlar ise bekleme (boş) zamanı göstermektedir. Çubuklar arsındaki kırmızı çizgiler ise mesajlaşmayı göstermektedir. Şekil 4. İcra halindeki bir PVM uygulamasının zaman-uzay arayüzündeki görünümü. XPVM paralel sistemdeki makinelerin, program icrasının dışında başka arayüzleri de sunmaktadır (mesaj kuyrukları, utilization gibi). Burada yer darlığından dolayı diğer arayüzlere ait çıktılar verilmemiştir. Şekil 3. PVM grafik arayüzü XPVM de sanal makineye dahil edilmiş bilgisayarların görünümü. Paralel sistem oluşturulduktan sonra, çalıştırılacak yazılımların hazırlanması gerekmektedir. Bu işlem için ya problemimizi çözecek paralel bir programı kendimiz yazmalıyız veya problemimize çözüm olan mevcut bir programı paralel sistemde koşturmalıyız. Paralel programı yazmak, paralel algoritma geliştirmek bu çalışmanın kapsamı dışında olduğundan, biz ikinci kısma odaklanacağız. PVM de çalışacak programlar Fortran veya C dilinde yazılmış olabilirler. Bir Linux bilgisayarda Fortran ve C derleyicileri mevcuttur. PVM uygulamalarını derlemek için bu derleyicilerden yararlanılabilir. Bunun için statik ve dinamik kütüphanelerin yerini belirtmek ve derleme satırına ilgili anahtarları koymak gereklidir (-lpvm3 gibi). Program derlendikten sonra, tüm makinelere kopyalanmalıdır. Bazı programlar ana ve uydu olarak iki icra edilebilir dosyadan oluşabilir, bu durumda hangi makinede hangi icra edilebilir kısım çalışacaksa uygun şekilde kopyalanmalıdır. Bu işlem ftp yoluyla çok hızlı bir şekilde halledilebilmektedir. Bazı sistemlerde network file system olabilir, böyle durumlarda ise kopyalamaya gerek kalmayabilir. Kopyalama tamamlandıktan sonra konsoldan paralel uygulama çalıştırılabilir. Uygulama yazılımının veri girişleri ve sonuçların sunumu genelde konsol makineden yapılır. Benzer şekilde çalışmakta olan bir paralel uygulamanın evreleri grafik arayüzden izlenebilmektedir. Şekil 4 te XPVM etkin paralel program geliştirmede, mevcut programların en iyi konfigürasyonla çalıştırılmasını ve dolayısıyla paralel sistemden azami istifade edilmesini sağlaması bakımından çok faydalı bir araçtır. Ancak, görsel arayüz için toplanan veriler paralel programa ait verilerle aynı ağda seyahat ettiklerinden sistemin gözlemlenen sistemi etkilemektedir. Bu etki seri programlardakinden daha fazladır [6,7]. 3. MPI: Mesaj Geçiş Arayüzü (Message Passing Interface) MPI, PVM den sonra ABD deki çeşitli üniversiteler tarafından ayrı sürümler olarak geliştirilmiştir. FT-MPI: Tennessee Üniversitesi, LA-MPI: Los Alamos Ulasal lboratuarı, LAM/MPI: Indiana Üniversitesi tarafından geliştirilmektedir. Bir de tüm araştırmacıların desteği ile geliştirilen Open-MPI bulunmaktadır. MPI, kurulum açısından PVM e çok benzemekle beraber uzak makinelerde uygulama çalıştırılması için ssh (secure shell kullanmaktadır. ssh PVM in kullandığı rsh oluşturduğu güvenlik açıklarının kapatılmasını sağlamıştır. Bu nedenle daha çok tercih edilmektedir. MPI yazılım paketi ücretsiz olarak Internet ten indirilebilmektedir. MPI, PVM de olduğu gibi hemen tüm mimarileri ve işletim sistemlerini desteklemektedir. İcra edilebilir ve derlenmemiş, kaynak kodu olarak indirilip doğrudan veya derlemek suretiyle kurulabilir. MPI nda grafik arayüzü XMPI paket olarak bulunmaktadır. Grafik arayüz paralel sistemin durumunu, çalıştırılacak uygulamanın seçimini, icra halindeki programın durumunu görsel olarak ekrana dökebilmektedir. Şekil 5 te 9 makineden oluşan paralel sistemin anlık durumu

görülmektedir. Bu görünümde petek şekli sistemdeki bilgisayarları, trafik işareti ise o bilgisayarın o anda ne yaptığını göstermektedir. Örneğin yeşil ışık ilgili bilgisayarın hesaplama yaptığını, kırmızı ışık ise beklediğini göstermektedir. Şekil 6. İcra halindeki MPI uygulamasının zaman-uzay görünümü. Şekil 5. MPI grafik arayüzü XMPI da paralel sistemde bulunan bilgisayarlar ve o anki durumları görülmektedir. MPI Fortran, C++ veya C programlama dillerini desteklemektedir. Bu dillerde yazılmış paralel uygulamalar paket ile birlikte gelen derleyici ile derlenir (LAM/MPI için derleyici adı mpicc ). Derlenen uygulamanın icra edilebilir çıktıları tüm makinelerde bilinen bir yere kopyalanır. Daha sonra konsol olarak seçilen bir makineden mpirun girilerek paralel uygulama çalıştırılır. Paralel uygulamanın veri girişi ve verilerin sunumu, dosyaya kaydedilmesi genelde konsol makinede yapılır. Çalışan programın icra sırasındaki evreleri görsel arayüzden görülebilmektedir. Şekil 6 çalışan bir paralel programın zaman-uzay görünümünü göstermektedir. Burada yeşil kısımlar işlemcinin problemle ilgili çalıştığını, kırmızı kısımlar ise beklemede olduğunu göstermektedir. Yazılımcının veya sistemi idare eden kişinin sistemin verimliliğini arttırmak için, Şekil 6 da görülen kırmızı kısımları en aza indirmek temel görevi olmalıdır. Aksi takdirde sistemden beklenen performans elde edilemez. XMPI ile birlikte paralel uygulamanın gözlenmesini kolaylaştıran diğer başka arayüzler de vardır (kiviat, matrix gibi), burada çok yer kapladığından gösterilememiştir. 4. Örnek Çalışma Çalışmanın bu kısmında paralel bir uygulamanın PVM ve MPI ile çalıştırılması ve zaman ölçümlerinin yapılması anlatılmıştır. Bu amaçla bilgisayar laboratuarındaki 9 makineye PVM ve LAM/MPI kurulmuştur. Makinelerin her biri eşdeğer olup Pentium-4 2.4 GHz işlemci ve 256 MByte RAM hafızaya sahiptir. Ağ altyapısı ise 100 MBit/s lik standart bir anahtar ve CAT-5 kablolaşmadan oluşmaktadır. Seçilen paralel uygulama bir matris çarpımı programıdır. Program fox algoritmasına göre paralelleştirilmiş olup MPI çağrılarıyla başkaları tarafından kodlanmıştır [fox, kodlayan]. Program değişen makine sayısı (m) ve problem boyutu (n) için çalıştırılmış icra süreleri kaydedilmiştir. Problem boyutu olarak çarpıma giren kare matrislerin boyu alınmıştır. Uygulama her bir n, m konfigürasyonu için 5 defa çalıştırılarak icra süresi olarak bunun ortalaması alınmıştır. Deney sırasında n için 4, ve 9, m için ise 150 den 510 a kadar değerler alınmıştır. Ölçülen zaman ve diğer bilgiler çizelge 1 de sunulmuştur. Çizelge 1. Çeşitli boyutlarda matrisin 4 ve 9 makineyle MPI ile icra süreleri. n m t (sn) n m t (sn) 150 4 0,64 4 2,33 390 9 0,93 9 1,85 180 4 0,83 4 3,68 420 9 1,02 9 2,45 240 4 1,14 4 4,26 450 9 1,32 9 3,08 300 4 1,49 4 4,86 480 9 1,52 9 3,50 330 4 1,78 4 6,65 510 9 1,78 9 3,56

Şekil 7 den de görüldüğü gibi küçük boyutlu problemler için makine sayısını arttırmak icra süresini azaltmamıştır. Mesajlaşmada geçen zaman, hesaplamada geçen zamana göre oldukça fazla olduğunu göstermektedir. Bu tür verimsiz çalışma durumları zaman-uzay arayüzünden de görülebilmektedir. Icra süresi (t) sn 7 6 5 4 3 2 1 0 4 makine 9 makine 150 180 240 300 330 390 420 450 480 510 Problem boyutu (n) Şekil 7. Paralel matris çarpımı programının MPI ile 4 ve 9 makinede icra süreleri. Kaynaklar [1] Geist A, Beguelin A, Dongarra J, Jiang W, Manchek R, Sunderam V. PVM 3 User s Guide and Reference Manual. Oak Ridge National Labs. September 1994.. [2] LAM/MPI User s Guide Version 7.1.4. The LAM/MPI Team, Open Systems Lab., July 2007. [3] Convex Computer Corporation. Convex CXpa Reference(2nd edn). December 1994. [4] www.ornl.gov.tr. [5] Geist G.A, Kohl J, Papadopoulus P. Visualization, Debugging and Performance in PVM. Proceedings of Visualization and Debugging Workshop. 1994. [6] Özmen A. A Minimal Overhead Instrumentation System. Proceedings of the Fifteenth International Symposium on Computer and Information Sciences (ISCIS XV). 2000;102 110. [7] Özmen A., "An Entropy-Based Algorithm for Data Elimination in Time-Driven Software Instrumentation", Journal of Systems and Software, (Article In Press, DOI: 10.1016/j.jss.2008.12.028). Yukarıdaki örnek PVM üzerinde de aynı makine sayıları ile çalıştırılmış ve benzer sonuçlar elde edilmiştir. Dağıtık paralel sistemler için program yazmak oldukça güçtür. Sorun, yükü dengeli bir şekilde makinelere dağıtabilme problemidir. Programcılar makinelerin yük ve performanslarını önceden öngörerek paralel yük dağılımını yapmaları gerekmektedir. Dağıtık bir paralel program çalışırken yükü diğer makinelere kaydırabilme (dinamik olarak) imkânı yoktur. Bu nedenle bir yazılım geliştirildiğinde, problemin boyutuna ve eldeki makinelerin performansına göre, çalıştırılabileceği en iyi makine sayısını da belirlemek gerekmektedir. Mevcut gözlemle araçları bu problemlerin çözümünde yardımcı olmaktadır. 5. Sonuçlar Bu çalışmada dağıtık paralel sistemler incelenmiş, bu sistemlerden PVM ve MPI tanıtılmıştır. PVM ve MPI, araştırma kurumları ve üniversitelerin yüksek performanslı bilgisayar (süper-bilgisayar) ihtiyaçlarına ekonomik çözümler sunmaktadır. Kurumlarda zaten mevcut olan sıradan bilgisayarların küme halinde bir süper-bilgisayara dönüştürüldüğü bu yazılım paketleri ücretsiz olarak indirilip kolayca kurulabilmektedir. Bu sistemlerde çalışacak programları yazmak zor olsa da, bu sistemlere ek olarak verilen gözlemleme araçları (monitörler) yazılım geliştirmeyi veya bu sistemleri etkin kullanmayı kolaylaştırmaktadır.