T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Ödev Konusu : MESSAGE PASSING ARCHITECTURE Oğuz ATA MESSAGE PASSING ARCHITECTURE (Mesaj Geçiş Mimarisi) Mesaj geçiş mimarisi, iletişim ve çokluişlemci ile veri arasındaki hareket için alternatif metodlar sağlar.(Paylaşımlı hafızaya sahip çokluişlemcilerden farklı olarak) Bu araştırmada, sizlere Neslihan ve Özlem ile birlikte farklı yönleriyle mesaj geçiş sistemlerinin “mesaj yönlendirme(message routing)”, “network anahtarlama(network switching)”, “işlemcilerin mesaj geçiş desteği” gibi konularını anlatılmaya çalışılacağız. INTRODUCTION TO MESSAGE PASSING (Mesaj Geçişe giriş) Mesaj geçiş mimarisi, veriler ile işlemci arasındaki iletişimi, bilgisayarın genel hafızasına ihtiyaç duymadan sağlar. Mesajlaşmanın ana şemasını düşündüğümüzde Aşağıdaki şekilde çoklu işlemcili mesaj geçiş mimarisinin ana bileşenlerini gösterilmiştir. Şekli incelediğimizde 1’den n’e kadar değişken sayıda düğüm(node) görmekteyiz. Bu düğümler arabağlantı network’üne linklerle bağlanmıştır Bir Ni düğümü 2 bileşenden oluşur. Bu bileşenler Pi ile gösterilen İşlemci(processor) ve Mi ile gösterilen yerel hafızadır(local memory). Her Pi işlemcisinin bir adres alanı vardır. Düğümleri arabağlantı cihazlarıyla bağlayan linkler (called external channels) bir kanal görevi görür(Statik tipteki bir network gibi) Mesajların iletilmesini sağlayan kanallardan(links) bahsetmiştik. Mesaj geçiş esnasında link bandwidth (linkin bandgenişliği) ve the network latency(networkteki gecikme süresi) mesajın iletimi konusunda başlıca faktörlerdir. Link bandgenişliğini iletim kanalıyla iletilen veri bitlerinin zamana göre ölçümü olarak tanımlayabiliriz (bits/s). Network gecikmesi ise mesajın network üzerinden transferinin tamamlanıncaya kadar geçen süredir. İşlemciler bir programı çalıştırırken, programı eş zamanlı işlemlere bölerler. Bölünen bu işlemlerin her biri ayrı işlemcilerde koşulur. Gelen işlemlerin sayısı, işlemcinin koşabileceği işlem sayısından büyükse, yeni gelen işlem zaman paylaşımlı biçimde koşulmaya çalışılır. İşlemler yalnızca bir işlemci üzerinde koşuluyorsa, o işlemcinin iç kanallarını(internal channels) kullanarak değişim mesajları gönderilir. Ancak işlemler bazen koşulduğu işlemcinin dışında farklı işlemciler ile de koşulabilir. Bu durumda değişim mesajları dış kanallar (external channels) yolu ile iletilir.Mesaj geçiş şeması çok sayıda işlem içeren işlemcilerde, kolay ölçeklenebilirlik ve esneklik sağlar. Aşağıdaki şekilde mesj geçiş sisteminde gerçekleşen dört adet işlem görülmektedir. Şekilde yatay çizgiler işlemcilerin çalışmasını, yukarı ve aşağı uzatılan oklar ise işlemler arasında gidip gelen değişim mesajlarını göstermektedir. M’ler ile gösterilen mesajların, iletişimin mantıksal(lojik) birimleri olduğu söylenebilir. İletişim ortamını oluşturan bu mesajlar birer komut(nstruction), veri(data), senkronizasyon(synchronization) yada kesme sinyalleri (interrupt signals) olabilirler. Process Granularity (İşlem Boyutu) Mesaj geçiş sistemlerinde işlem boyutu(size) aşağıdaki formülle hesaplanır. Process Granularity = computation time / communication time Görüldüğü gibi işlem boyutu, hesaplama zamanının iletişim zamanına oranıdır. Üç tip boyutlama öne çıkmaktadır; 1 Coarse granularity(kaba boyut): Her işlem bir adet büyük sayılı komut dizisi tutar. Çalışma zamanına göre önem arz edeni alır. 2 Medium granularity: Coarse ve fine arası bir yaklaşımdır. 3 Fine granularity: Her işlem birkaç komut dizisi içerir. ROUTING IN MESSAGE PASSING NETWORKS (Mesaj Geçiş Ağlarında Yönlendirme) Yönlendirmeyi teknik olarak tanımlarsak bir mesajın network üzerindeki hangi yolu kullanacağının seçilmesidir denilebilir. Yönlendirme (routing) esnasında mesajın kullanılabileceği, izinli, mümkün olan yollar (permissible paths) belirlenir ve mesaj o an için en uygun olan yoldan geçerek hedefe ulaşır. Yönlendirme teknikleri, merkezi ve dağıtık olarak sınıflandırılabilir. Merkezi yönlendirmede seçilecek yolun kararı, henüz mesaj gönderilmeden önce belirlenir. Dağıtık yönlendirmede her düğüm gönderildikten sonra, o anki duruma göre hangi yolu kullanacağını kendisi belirler. Merkezi yönlendirme eksiksiz şekilde ağın durum bilgisine ihtiyaç duyar, dolayısıyla ağdaki düğümleri sürekli dinler. Dağıtık yönlendirmede ise mesaj gönderilmeden bir yol belirlenmediği için, gereken bilgi tüm ağın durumu değil, komşu düğümlerin durumudur. Routing for Broadcasting and Multicasting (Çoklu Gönderim ve Yayın için Yönlendirme) Mesaj geçiş sistemlerinde iki tip iletişim şekli vardır. Bunlar birebir iletişim (one-to-one / point-to-point / unicast communication) ve çoklu iletişim(collective communication) dir. Birebir iletişimde bir düğüm, tek bir mesajı tek bir hedefe yollar, bu da genelde hemen yakınındaki komşusudur. Bu yaklaşımdan ziyade kollektif yöntemler tercih edilir, bunlar broadcast(yayın) ve multicast(çoklu gönderim) yöntemleridir. Broadcast’de bir düğüm, aynı mesajı bütün düğümlere gönderir. Multicast’de ise bir düğüm aynı mesajı birden fazla düğüme gönderebileceği gibi, gönderilecek düğümleri de belirleyebilir. Routing Potential Problems (Potansiyel Yönlendirme Problemleri) Mesaj geçiş sistemlerinde karşılaşılan başlıca problemler deadlock(ölümcül kilitlenme), livelock, and starvation Deadlock Llivelock Starvation SWITCHING MECHANISMS IN MESSAGE PASSING (Mesaj Geçişlerinde Anahtarlama Mekanizmaları) Switching(anahtarlama)/geçiş mekanizmaları verinin giriş noktasından çıkış noktasına yönlendirilmesi demektir.Veriler bir kanaldan başka bir kanala geçiş yaparlar.Network ağlarında ki gecikme süreleri yüksek oranlarda bu mekanizmalara bağlıdır. Bu anahtarlama mekanizmaları şu şekildedir;depolama ve gönderme,devre-kesme,virtual cutthrough(sanal-kesmeler),ardışık devre-kesmesi.Bu bölüm de bazı teknik çalışmaları anlatacağım. Anahtarlama Ağları Devresi; Burada kaynak ve hedef arasındaki yol belirlenir,yoldaki bütün bağlantılar(linkler) ayrılmıştır ve bufferlara(depolanmaya) ihtiyaç duymazlar diğer node(düğümlere) ihtiyaçları vardır. Ayrılmış bağlantılar(linkler) veri aktarımından sonra diğer mesajlar tarafından kullanılmak üzere serbest bırakılır.Devre anahtarlama tekniğinin önemli karakterisliklerinden biri kaynak ve hedefin aralarında bir iletişim kurulduğunda belirli bir bant genişliği ve maksimum gecikmesi, garanti altında olmasıdır. Bu statik bant genişliğine bakılmaksızın devre anahtarlama yaklaşımındaki esas engel gerçek kullanımdır. Depolama ve Gönderme Anahtarlamaları; Depolama ve gönderme anahtarlama yapıları data transfer planlamalarında alternatif sağlar.Buradaki amaç mesajlara dinamik bant genişliğini olanağı sunmaktır,onlar ağ üzerinde ki akışlar gibidir,böylece devre anahtarlama mekanizmasındaki ana engelden kaçınılır.Gönderici ve alıcı arasında veri göndermeden önce bir bağlantı kurulur. Veri gönderme işlemi boyunca bu bağlantı tutulur ve işlem bitince bağlantı çözülür. Paket Anahtarlamalı Ağlar; a-İletim için ayrılmış bir kanalı yoktur.Paketler halinde ağ üzerinden yollanır. b-İletişim için kullanılan bant genişliği sabit olmayıp dinamiktir ve talebe göre değişir. c-İletişim yapılmadığı zamanlarda bant genişliği boşuna kullanılmaz. d-İletim hatası olmadığı varsayımında ,veri iletimindeki gecikme ve yayılma gecikmesine ek olarak yönlendiricilerde kuyrukta sıra bekleme ve işlem görme için geçen sürelerin toplamına eşittir. e-Her pakette ağ tıkanması yaşanabilir. Yolun uzunluğundan bağımsız olarak bir gecikme zamanı üreten ve bütün düğümlerde store-and-foward packetswitching tekniğine göre daha az depolama alanı gerektiren bir teknik olarak bilinir. Resim 5.5 ve 5.6 da SF ve WH nin çalışma prensiplerinin farklılıklarını gösterir. Bu şekilde L paketin (verinin) uzunluğunu bit olarak ,W kanalın band genişliğini bits/devir olarak, D kanal sayısını ve Tc döngü zamanını ifade eder.SF ve WH ın gecikme süresi şekildende anlaşılacağı gibi aşağıdaki gibi ifade edilir. WORMHOLE ROUTING IN MESH NETWORKS (Örgülü Ağlarda WormholeYönlendirmesi) N boyutlu bir örgü K0 K1 …… Kn_1 adet düğümün birbirine bağlanması ile oluşan yapılardır.Burda N ağın boyutu Ki ise boyutun kökleridir.Her düğüm (x0, x1, . . . , xn_1) şeklin de N kordine vektörü ile tanımlanır. 0 <xi < Ki1 aralığındadır.Yönlendirme tekniklerinden bir kısmı örgülü ağlarda kullanılmaktadır.Bunlar; dimension-ordered(sıralı boyut), dimension reversal( ters döndürmeli boyut), turn model(döndürme modeli), message flow model(mesaj akış modeli)şeklindedir. X-Y yönlendirmeli sıralı boyut modelin de mesajı ilk olarak X boyutu boyunca sonra Y boyutu boyunca gönderilir.Diğer bir deyişle en fazla bir dönüşe izin verilir ve bu dönüş X boyutundan Y boyutuna doğrudur.(sx ve sy) ve (dx ve dy) yi kaynak ve hedef düğümler olarak gösterilir. (gx, gy) =(dx sx, dy - sy) olduğu varsayılır. Şekil de 8*8’lik örgülü ağda kaynak düğümleri ile hedef düğümleri arasında yapılan X-Y yönlendirilmesi örneği gösterilmiştir VIRTUAL CHANNELS (Sanal Kanallar) Sanal kanal prensibi dead lock olmayan yönlendirme algoritmları dizayn etmek için bulunmuştur.Sanal kanallar , ek kablo kullanılmadan logic kanalların sayısının artırılılmasına imkan verir.Uyarlanan yönlendirme algoritmalrının birkaçı sanal kanalların kullanımı prensibine dayanır. Sanal kanalların olmadığı iletişim ağları tek şeritli sokaklardan oluşur.Karışık bağlantılı iletişim ağlarına sanal kanalları ilave etmek sokağa yeni bir şerit eklemeye benzer. Engellernen mesajlara geçme izni verir.Artan yayılmaya ek olarak, sanal kanallar iletişim ağlarında tahsis edilen kaynaklarda mesajlara ek serbestlik derecesi sağlar Şekilde basit iletişim ağını ele alalım.Bu örnekte X-A-B-Z ve Y-A-B-W yolları AB ortak bağlantısını paylaşırlar. Bu sebepden dolayı 2 yol arasında çoklu AB bağlantısına ihityaç duyulur(2 şerit).X den Z ye ve W ye değil, birinci yoldan gönderilen bilgiler ve benzer şekilde Y den W ye Z ye değil, 2. Yoldan gönderieln bilgiler şekilinde bir provision(şart, hüküm) ihityaç vardır. MESSAGE PASSING PROGRAMMING MODELS (Mesaj Geçiş Programlama Modelleri) Mesaj geçiş mimarisi ,izin verilen işlemlerin birbiriyle haberleşmesi için bir dizi ilkel adlar kullanır. Bu ilkel adlar gönderme (send), alma (receive), yayma (broadcast) gibi sayılabilir. Mesaj geçiş mimarisinde temel programlama dili kullanılır. Bir işlemci üzerindeki gönderilen istek ile diğer bir işlemci üzerindeki alınan istek ile eşleştirme amaçlıdır. Gönderme ve almanın gerçekleşmesinde process üç yollu iletişim ister. Bu iletişim yolları; gönderilen işlemin , alıcı işlemden mesaj göndermeyi talep eder ve alıcıdan veriyi almaya hazır olduğuna dair geri mesaj gönderir.gönderici işlem yanıtı aldığında veri transferi gerçekleşir. Ts = message start-up cost (mesajın başlangıç değeri) Tb= the per-byte cost (byte başına değer yüzdesi) Tfp= the average cost of floating-point operation (kayan nokta işleminin ortalama değeri) PROCESSOR SUPPORT FOR MESSAGE PASSING (Mesaj Geçiş İletişimi İçin İşlemci Desteği) Mesaj iletimini destekleyen işlemciler, işlemler arası mesaj iletim desteği için özel yönergelere ihtiyaç duyarlar. İşlemler arası iletişim desteği için bir dizi özellik gereklidir. Gerekli özellikler aşağıdaki gibidir Port Mesajlar Port Ayarları Intel iPax 432 doğrudan mesaj iletişimini kullanır ve destekler. Bu işlemci mesaj kuyruğu barındırır. Bir mesaj iletişimi aşağıdakilere bağlı olarak düzenlenir. Ulaşım zamanı ( “ilk giren ilk çıkar” gibi yani “first-in-first-out”, FIFO); Öncelik; Öncelikli mesaj geçerlilik süresi iPAX 432 koşullu olarak mesaj gönderim ve alım işlemi şeklinde özel bir yol kullanarak engellenemeyen bir mesaj üretir. Bu koşullu işlemlerin verisi belirli bir mantıksal etikettir. Böylece, eğer koşulsuz işleme karşılık gelen koşullu işlem engellendiyse, koşullu işlemin sonucu “false” olacaktır; engellenmemesi durumunda ise kolşullu işlemin değeri “true” olacaktır. Bu durumda koşullu işlemler, mesaj geçirme iletişimini desteklemek için her bir işlemde doğru bir iletişim ve etkileşimi doğrulamalıdır. Çünkü işlemci belli bir işlemi çalıştırmaya devam edecektir ki bu durumda da iletişim işlemini tamamlayamaz. Bundan dolayı iyi bir program, dönen değeri test ederek operasyona devam edip etmeyeceğine karar verebilmelidir. MESSAGE PASSING VERSUS SHARED MEMORY ARCHITECTURES (Mesaj geçiş ile paylaşımlı belleğin karşılaştırılması) Paylaşımlı bellek ve mesaj geçiş iletişim modellerinin her ikisi de uygulandıkları alanda kullanılırlar.Paylaşımlı bellek kendisin uygulama yazıcısına gösterirken, mesaj geçisi kendisini işletim sistemi dizayncısına gösterir. Bu sebepden dolayı Çoklu işlemcilerin genel amac doğrultusunda paylaşımlı bellek mesaj geçişi birleşitirilmiş olarak düşünülür. Resources : 1.Advanced Computer Architecture and Parallel Processing Hesham El-Rewini and Mostafa Abd-El-Barr, ISBN 0-471-46740-5 2. http://www.cs.wisc.edu/arch/www 3.http://domino.research.ibm.com/comm/research.nsf/pages/r .arch.html 4.http://www.eecs.berkeley.edu/~culler/book.alpha/index.html Dinlediğiniz için teşekkürler….