Paralel Mimariler Dersi Ödevi Mesaj Aktarım Mimarisi Hazırlayan Öğrenci No : Şenol HAZAR : 1098105258 Trakya Üniversitesi F.B.E. Bilgisayar Müh. Doktora Öğrencisi Mesaj Aktarım Mimarisi 1. 2. 3. 4. 5. 6. Mesaj Aktarımına Giriş Mesaj Aktarım Ağlarında Yönlendirme Mesaj Aktarımında Anahtarlama Mekanizmaları Mesaj Aktarım Programlama Modelleri Mesaj Aktarımı İçin İşlemci Desteği Örnek Mesaj Aktarım Mimarileri 1. Mesaj Aktarımına Giriş Bir mesaj aktarım mimarisi, genel bir belleğe ihtiyaç duymadan bir grup işlemci arasında veri iletişimi sağlamak için kullanılır. Tasarının temeli, her işlemcinin kendine ait yerel bir belleğinin olması ve mesajlar kullanarak diğer işlemcilerle iletişim kurmasıdır. Çok İşlemcili Mesaj Aktarım Mimarisinde Temel Bileşenler Ni düğümü Pi işlemcisini ve Mi belleğini barındırır. Düğümler birbirleri ile linkler ve birbirine bağlı statik ağlar üzerinden haberleşir. Mesaj Aktarım Ağı Kurulurken Dikkat Edilmesi Gereken Hususlar Mesaj aktarım ağı kurarken dikkat edilmesi gereken iki önemli faktör vardır; Bağlantının bant genişliği : Birim zamanda iletilebilen bit sayısı (bit/s) Ağ gecikme süresi : Ağ üzerinde bir mesaj aktarımının tamamlanması için gereken süre 2. Mesaj Aktarım Ağlarında Yönlendirme Yönlendirme; bir mesajın ağ kanalları üzerinde izleyeceği yolu seçme tekniğinin belirlenmesi. Mesajın hedefe ulaşmasında kullanılabilecek makul yolların bir tanım kümesine ve de bu kümeden bir yol seçecek bir n fonksiyonuna ihtiyaç duyar. Yönlendirme Teknikleri Uyarlanabilir yönlendirme tekniğinde; (bir kaynak ve hedef ikilisi için) mesajın izleyeceği yol, ağ tıkanıklığı gibi ağın yoğunluğuna bağlıdır. Kararlı yönlendirme tekniği ise; ağın durumundan bağımsız olarak sadece hedef ve kaynağa dayanarak yol seçer. Bu teknik, kaynak ve hedef arasındaki müsait bant genişliğini verimsiz kullanır. Yayınlama ve Çoğa Gönderim Mesaj iletim sistemlerinde iki tip iletişim işlemi vardır; Birebir (uç uca veya tekyöne); Bir düğüm bir mesajı sadece bir hedefe gönderebilir Kollektif; Bir düğümden çok hedefe (Çoğa gönderim) Bir düğümden tüm hedeflere (Yayınlama) Yönlendirmede Potansiyel Problemler Yönlendirme mekanizmalarının kullanımının sebep olabildiği problemler; Deadlock (Kördüğüm) Livelock Starvation (Beslenme Yetersizliği) Yönlendirmede Potansiyel Problemler Deadlock (Kördüğüm); İki mesaj, devam etmek için, birbirlerinin ihtiyaç duydukları kaynakları tutmaktadır ve iki mesaj da bloklanır. Kaynaklara döngüsel bir bağımlılık var olduğu zamanlarda oluşan bir durumdur. Genel bir çözüm, kördüğüm oluşumundan kaçınmaktır. Bu da ağ kaynaklarını ve talep eden mesajları monoton bir şekilde sıralamakla sağlanır. Kaynakların kullanımındaki bu sınırlı yöntem, döngüsel beklemeyi ve kördüğüm oluşumunu engeller. Yönlendirmede Potansiyel Problemler Livelock; Mesaj ağ içerisinde dolanıp durur, ancak, asla hedefe ulaşamaz. Mesajların hedeflerine ulaşmak üzere tekrar yönlendirildiği uyarlanabilir yönlendirme algoritmalarının kullanımından ortaya çıkan bir fenomendir. Düğümlerin, mesajlarını iletişim ağına rasgele zamanlarda göndermesi durumunda ortaya çıkar. Önlemek için gerekli politikalar; 1. 2. Mesajlar önceliklerine göre yönlendirilmelidir. Mesaj bir kere gönderildiğinde, eşit veya daha yüksek öncelikli mesaj gönderimi sınırlı sayıda olmalıdır. Yönlendirmede Potansiyel Problemler Starvation (Beslenme Yetersizliği); Bir düğümün ağa enjekte edecek bir mesajı var ve bunu yapmasına asla izin verilmiyorsa o düğüm için beslenme yetersizliğinden bahsedilir. Bu durumun oluşumundan kaçınmak için uygulanacak politikaların en basiti, her düğümün ağa enjekte etmek istediği mesajları bulundurduğu kendi enjeksiyon kuyruğunun olmasıdır. Mesaj enjeksiyon derecesi yüksek olan bir düğüm ağdaki diğer düğümleri yavaşlaması oluşacak ana dezavantajdır. 3. Mesaj Aktarımında Anahtarlama Mekanizmaları Giriş kanalından veriyi alıp çıkış kanalına yerleştiren mekanizmalardır. Ağın gecikme süresi kullanılan anahtarlama mekanizmasına büyük ölçüde bağlıdır. Başlıca mekanizmalar; Devre anahtarlama, Sakla-ilet, Sanal yol açma, Solucan deliği, Ardışık düzenli(boru hattı) devre anahtarlamadır Mesaj Aktarımında Anahtarlama Mekanizmaları Devre anahtarlamalı ağlar; Kaynak ve hedef arasındaki yol kararlaştırılır. Yol üzerindeki tüm bağlantılar rezerve edilir. Düğümlerde tamponlara(buffer) ihtiyaç kalmaz. Veri aktarıldıktan sonra, rezerve edilen bağlantılar başka mesajların kullanması için serbest bırakılır. Kaynak ve hedef arasında bağlantı kurulduğunda belli bir bant genişliği ve maksimum gecikme süresi garanti edilmiştir. Mesaj Aktarımında Anahtarlama Mekanizmaları Sakla-ilet anahtarlama mekanizması; Alternatif bir veri transfer tasarısı sağlar. Dinamik bant genişliği tahsisi sunar, böylece devre anahtarlama mekanizmasının temel eksikliği ortadan kalkar. Genel olarak iki tip sakla-ilet ağı kullanılır. Bunlar; Paket anahtarlamalı Sanal yol açmalı Mesaj Aktarımında Anahtarlama Mekanizmaları Paket Anahtarlama; Mesaj, paket adı verilen parçalar halinde gönderilir. Düğümler paketleri tutmak üzere tamponlara sahip olmalıdır. Paketler, hedefe doğru, müsait bağlantıları kullanarak düğümden düğüme ilerler. Bu süreçte, farklı yollar izlendiğinden paketler hedefe karışık sırayla ulaşır. Paketleri doğru sırayla birleştirmek için, uç uca mesaj bağlama şemasına ihtiyaç duyulur. Sanal Yol Açma; Bir sonraki kanal meşgulse, paket ara düğümlerde saklanır. Çıkış kanalı serbestse paket tamamen alınmadan diğer düğümlere gönderilerek; boş bir kanaldaki gereksiz tamponlamadan dolayı ortaya çıkacak gecikmeden kaçınılır. Mesaj Aktarımında Anahtarlama Mekanizmaları 4. Mesaj Aktarımı Programlama Modelleri Bir mesaj iletim mimarisi işlemlerin birbirleriyle iletişim kurmasını sağlamak için bir küme temel ilkeyi kullanır; Gönderme Bir hafıza tamponunu alır ve hedef düğüme gönderir. Alma Kaynak düğümden gelen bir mesajı kabul eder. Belirlenmiş bir hafıza tamponunda tutar. Yayınlama Bariyer Mesaj Aktarımı Programlama Modelleri İşlemler arası gönder/al ‘ın uygulanması, 3-yönlü bir protokol gerektirir; Gönderen işlem alan işleme gönderme isteği mesajı iletir. Alıcı bu isteği tutar ve bir cevap mesajı gönderir. Göndere karşı gelen bir al oluşturulduğunda, gönderen işlem cevabı alır ve sonunda veriyi transfere başlar. Blok kullanan gönder/al; Ne kaynakta ne de hedefte tampon gerektirmez. Gönder/al bloklamada kullanılan 3-yönlü el sıkışma, hem gönderen hem de alanın bir tam tur zamanı kadar bloklanmasını gerektirir. Bu süre esnasında işlemciler boş kalır. Ağ iletişiminde gecikmeye sebep olur. Ayrıca, bloklu gönder/al ile, ‘iletişim’ ile ‘işleme’ üst üste bindirilemediği için ağ bant genişliğinden tam olarak yararlanılamaz. Mesaj Aktarımı Programlama Modelleri Mesaj Aktarımı Programlama Modelleri Örnek : n tane bileşene sahip bir vektörün, p işlemcileri kullanılarak, tüm bileşenlerinin toplamı alınacaktır. (n, 2’nin bir kuvvetidir) vektör bileşenleri p işlemcileri arasında dağıtılmıştır. Başlangıç adımı : Her işlemci kendi sahip olduğu vektör bileşenlerin toplamını icra eder. 2’nin kuvvetlerinden k = 1 den n/2 ‘ye kadar indeks kullanılarak tekrarlanır. j ve j+k işlemcileri ikili gruplar halinde veri alışverişi yapar ve toplamı icra eder. Mesaj Aktarımı Programlama Modelleri 5. Mesaj Aktarımı İçin İşlemci Desteği Mesaj iletimini destekleyen işlemciler, süreçler arası mesaj iletişimini desteklemek için gerekli özel komutlar barındıran işlemcilerdir. Süreçler arası iletişimi desketlemek için bir takım özellikler gereklidir. Bunların arasında şu özelliklere ihtiyaç duyulur: Port iletişim kanalıdır. Görevler ve iş parçacıkları için bir referans nesnesidir. İki temel işlem gerçekleşebilir: gönder ve al Mesajlar, nesneler arasında iletişim için kullanılır. Mesaj, bir başlık ve bir gövde olarak ayrılır. Başlığın boyutu sabitken, gövdenin boyutu değişkendir. Mesaj işlemler arasında takas edilen bilgileri barındırır. Port kümeleri : Bir görev portlar üzerinde gönder ve al gibi birden fazla erişim hakkı barındırabilir. Birden fazla görev tek bir porta gönder erişimine sahip olabilir. Diğer yandan bir görev verilen bir zamanda al erişimine sahip olabilir. Port kümesinde, bir görev, bir port grubunun erişim haklarının tümüne ya da hiçbirine sahip olabilir. Portlar birbirinden bağımsız olmak zorundadır yani bir port verilen bir zamanda iki farklı kümede bulunamaz. 6. Örnek Mesaj Aktarım Mimarileri Caltech Hypercube Meiko CS-2 Cosmic Cube iPSC/2 Örnek Mesaj Aktarım Mimarileri Caltech Hypercube (Cosmic Cube); Global kontrol için Intermediate Host (IH) olarak bilinen tek sunucusu olan n boyutlu bir hiperküp sistemidir. Basit sakla-gönder yönlendirme mekanizması üzerine temel alınmıştır. Sistem, C ve FORTRAN destekleyen ve kristal işletim sistemi (CrOS) olarak bilinen rutin kütüphaneler kümesi ile başlar. Sistem sadece IH’ye/IH’den kolektif operasyonları destekler. Örnek Mesaj Aktarım Mimarileri Mekio Computing Surface CS-1; ilk Inmos Transputer T800 temelli sistemdir. Transputer, donanım haberleşmesinde hızlı görev anahtarlama özelliğine sahip 32-bit mikroişlemcidir. Sistem Occam adı verilen bir dille programlanmıştır. Dil, kanal olarak bilinen soyut bağlantılar kullanılır. Örnek Mesaj Aktarım Mimarileri Intel iPSC; Cosmic Cube’dan sonra geliştirilmiş en yaygın mesaj geçiş sistemidir. iPSC/1’de Intel 286 işlemci ile Intel 287 yardımcı işlemci kullanılmıştır. Her düğüm üzerinde bir adet işlem, bir adet de Girdi/Çıktı veri yolu olmak üzere 2 adet veri yolu bulunan tek kartlı bilgisayarlardan ibarettir. Düğümler “küp yöneticisi” tarafından yönetilmektedir. Her düğüm, diğer düğümlerle ve küp yöneticisi ile farklı kanallardan haberleşmesine olanak tanıyan yedi adet iletişim kanalından oluşmaktadır. Fortran ın mesaj akratım rutinleri desteklenmektedir.