ITU-PRP : Paralel İşlem Platformu Java İçin Paralel Programlama Aracı

thumbnail.default.placeholder
Tarih
2015-10-23
Yazarlar
Spahi, Enis
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Fen Bilimleri Enstitüsü
Instıtute of Science and Technology
Özet
Son yıllarda, Web teknolojilerinin kaydettiği gelişim ile birlikte Dağıtık ve Paralel İşleme sistemlerinde yeni kavramlar ortaya çıkmıştır. Artan İnternet kullanımı ve gelişen üst seviye programlama dilleri sayesinde, Mutli-Host Parallel Computing, Task Distribution, Peer-to-peer programlama gibi yeni kavramlar ortaya çıkmıştır. Özellikle İnternet tabanlı sistemlerin geliştirilmesinde öncü geliştrme ortamlarından biri olan Java, Paralel Programlama ile ilgili çalışmalarda yerini almaya başlayıp, çok sayıda Paralel Programlama arayüzünün ortaya çıkmasında rol oynamıştır. İlkel paralel programlama dillerinin kapsam genişletme ile ilgili yaşanan eksiklikler, paralel programlama uzmanlarının değişik çözümler üzerinde çalışmalarına yol açmıştır. Ayrıca, Multi-Host paralel sistemler Multi-Core (çok çekirdekli) paralel sistemler karşısında alternatif çözüm olarak değerlendirilmeye başlamıştır. Tez kapsaminda tasarlanan sistem, Java Geliştiricilerine uygulamalarını heterojen ve Multi-Host çalışan bir paralel paralel platforma taşıyabilecekleri bir framework sunmayi amaçlamaktadır. Bu sisteme göre geliştirilen uygulamalar Multi-Host bir ortamda paralel çalışarak performans iyileştirme sağlanacaktır. Framework kapsamında sunulan bir API kütüphanesi, paralel modellerin gerçeklenmesini sağlayacaktır. Üretilen paralel uygulamalar Parallel Running Platform (PRP) olarak adlandırılan bir ara katmana yüklenerek kayıt altına alınacaktır. İlgili ara katman paralel işlemlerin gerçeklenebilmesi adına kaynak yönetimi ve tahsis etme süreçlerini gerçekleştirmektedir. Bu ara katman, uygulamanın paralel modeline göre hızlı paralel işlem gerçekleştirebilme adına, eldeki en müsait durumdaki kaynak Host’lardan oluşan bir Görev Planı (Task Plan) oluşturmaktadır. Görev Planı önceden belirlenmiş bir plandan ziyade, kaynakların anlık durum ve müsaitliğine dikkate alınarak gerçek zamanda dinamik olarak oluşturulacaktır. ITU-PRP sistemi esas performans artışını büyük data kümelerini bölerek çoklu hostlara dağıtıp işleyerek elde etmektedir. Coarse-Grained Parallelism olarak adlandırılan bu modele göre dağıtılmış paralel görevler birbirinden bağımsız bir şekilde işlem sonuçlanana kadar işlem yapacaklardır. ITU-PRP paralel uygulama geliştiricilerine hem paralel çalışan uygulama geliştirebilecekleri hem de uygulamaların paralel çalışmasını sağlayan ortak bir çözüm sunmacaktır. ITU-PRP paralel yazılım geliştirme sürecinin basit, kolayca gerçeklenebileceği bir kütüphane sağlamayı amaçlamaktadır. İlgili kütüphane kullanıcılara bir JAR paketi halinde sunulmaktadır. İlgili kütüphane, implementasyon için gerekli arayüzlerden oluşmaktadır, ki bu arayüzler sıralı kodlamaya benzeyen özerk paralel görevler yazmaya imkan tanıyacaktır. Ek olarak, ITU-PRP paralel işleme için gerekli kaynakları hazırlayan bir ara katman sağlamaktadır. Task Execution Middleware olarak isimlendirilen bu ara katman sistemdeki değişken şartları göz önüne alarak dinamik kaynaklar sağlayacaktır. Paralel Programlama Framework’ü paralel işlemleri soyutlayarak kullanıcıdan gizlemektedir. Multi-Host paralel işlemler de yine kullanıcılara yansıtılmayan paralel işlemlerdir. Kullanıcı parallel görevlerin dağıdımı, çalıştırılması, paralel görevlerin birleştirilmesi, sonuç toplam, senkronizasyon ve bağlantı konularıula uğraşmayacaktır. Sadece uygulamaya ve gerçeklenen implementasyona ait bazı parametre girişlerini yapacaktır. Kullanıcılar geliştirdikleri uygulamaları sisteme yüklemektedirler. Sonrasında çalıştırma işlemlerini gelecekte yapacaklardır. Sisteme yüklenen uygulamalar Task olarak adlandırılıp görev olarak değerlendirileceklerdir. Kullanıcılar ITU-PRP sistemine kullanıcı bilgileriyle web tabanlı bir arayüz üzerinden giriş yapmaktadırlar. Bu web uygulama kullanıcılara Task Execution Middleware katmanının hizmetlerini sağlayacaktır. Yetkili kullanıcılar görev işlemlerini başlatmakta, ayrıca sonuçları ilgili ekranlardan görüntüleyebilmektedirler. ITU-PRP sistemi web tabanlı bir sistem olarak tasarlanmıştır. İlgili web sayfalarında Java Applet teknolojisi kullanılarak Java eklentisi ve prosesi çalıştırılmaktadır ve paralel işlemler bu proses içinde başlatılmaktadırlar. Sisteme giriş sonrası, yaratılan applet prosesleri kullanıcıya ait lokal verileri toplayarak Task Execution Middleware katmanına iletirler ve kayıt altında tutulurlar. İlgili Proses ve Thread’ler boşta oldukları sürece kaynak Host olarak davranmaktadırlar ve görev ataması için hazırda beklemektedirler. Kullanıcı görev talebinde bulunduğunda ise ilgili proses Client olarak davranacaktır ve gerekli işlemleri yapacaktır. ITU-PRP paralel çalıştırma kaynaklarının sağlanabilmesi için kullanıcılardan katkı beklemektedir. ITU-PRP sistemine bağlı bütün kullanıcılar potansiyel kaynak durumundadırlar. Sisteme bağlı Client’lar Host olarak kayıtlıdırlar, diğer kullanıcılara görev işlem talepleri için yardımcı görevini yürütmektedirler. Kullanımda olmadıkları süre içinde potansiyel kaynak durumunda kalacaklardır. Birçok bilgisayarın çoğunlukla boşta olduğu, tüm kaynaklarını kullanmadığı düşünüldüğünde, bu yaklaşım yüksek performans paralel uygulama gerçeklenmesi için bir yöntem olarak düşünülmüştür. Proje kapsamındaki Paralel Processing yöntemi Multi-Threaded task dağıtım modeline göre gerçeklenmektedir. ITU-PRP tasarımı, bir ana görevin çok sayıdaki alt görevi paralel bir döngü ile Host’lara dağıttığı, nesne yönelimli paralel modellerden oluşmaktadır. Bu tasarıma göre alt görevler paralel işlenmektedir. Sistemin nesne yönelimli olması, diğer ilkel paralel modellere göre bir artı olma özelliği taşımaktadır. ITU-PRP’nın veri paralelleştirme yaklaşımı kullanıcıya özelleştirilebilir bir yapı sunma yönündedir. Veri dağıtımı işleminin alt sınıfa Object Serialization yapılarak uygulanması kullanıcının veri paralelleştirme üzerinde kontrolünü sağlamaktadır. Veri dağıtımın nesne bazlı olması, mesaj bazlı yapıya kıyasla kullanıcıya alt görev veri tiplerini belirlemesi açısından esneklik sağlamaktadır. ITU-PRP için tasaralanan peer-to-peer protokolü proje kapsamını belirleyen önemli bir unsur olmuştur. İnternet üzerinde ağ erişim kısıtlamaları göz önüne alındığında farklı peer’lerin birbirlerine bağlanması zorlayıcı bir çalışma olmuştur ve bu konuda derin literatür araştırması yapılmıştır. 3 farklı NAT traversal tekniği olarak bilinen Relaying, Connection Reversal ve UDP Hole Punch Teknikleri kombine edilip internet üerindeki farklı Host’ların birbirine bağlanması sağlanmıştır. Yapılan tasarıma göre, bütün Host’lar birbirine bağlanacaktır ve bağlantılarını sisteme bağlı oldukları sürece aktif tutacaklardır. Ek olarak, Peer gruplama kavramı bölgesel host gruplarının oluşturmayı veya belirli görev gruplarının oluşturulabilmeyi amçlamaktadır. Ancak, bu uygulama sistemde kullanıcı sayısının artmasıyla daha anlamlı olacaktır, gelecekte yapılmak üzere şimdilik kapsam dışında bırakılmıştır. Deney sonuçları minimal sayıda kaynak Host’la yapılan Paralel Uygulama çalıştırmanın bir performans artışı sağlamadığını gstermiştir. Ancak, kaynak Host sayısının artmasıyla birlikte deney sonuçlarının istenilen performans artışını sağladığı gözlemlenmiştir. Ek olarak, kaynak sayısı attıkça ağ iletişim gecikmelerinin etkisinin azaldığını göstermiştir. Ayrıca, Sequential çalıştırılma süreleri nispeten yüksek olan uygulamaların ITU-PRP’ye uyarlanmasının daha olumlu performans iyileştirme sağlayacağı görülmüştür. Deneyler sırasında en yüksek Client-to-Host bağlantı gecikmesi 360ms olarak hesaplanmıştır. Ancak, gerçek Dünya’daki ağ iletişim sorunları göz önüne alındığında bu değerin daha yüksek olabileceği düşünülmektedir. Prensip olarak 2 saniye üzerinde sequential çalıştırma süresi olan uygulamaların ITU-PRP’nin paralel kalıplarına uyarlanması önerilmektedir. Çalıştırma süresi arttıkça, ITU-PRP’ye üzerinde başarım artışı daha fazla beklenmektedir. Her ne kadar ITU-PRP bir paralel programlama aracı olsa da, performans için diğer paralel programlama araçlarıyla yarışmamaktadır. ITU-PRP’nin asıl amacı global bir ortamda yüksek başarımlı uygulamaların çalıştırılabileceği Multi-Host ve heterojen bir sistem sağlamaktır. Ayrıca, kullanıcılar için bireysel işemci kaynaklarının global işlemci kaynağına dönüştürülmesi amaçlanmaktadır. Farklı Paralel programalama framework’lerinin performans karşılaştırmalarının yapılması için kullanılan Benchmark araçlarının ITU-PRP’nin performans ölçümleri için kullanılabilmesi sözkonusu olamamaktadır. Bunun nedeni heterojen ve Multi-Host çalışan ve global peer-to-peer protokolüyle çalışan farklı karakterli bir sistem olmasıdır. Ayrıca, üst kısımda da bahsedildiği üzere, ITU-PRP’nin amacı başka ürünlerin performansları ile yarışmak değil, farklı karakteristikleri olan özgün bir sistem sağlayarak, maliyetsiz, yüksek başarımlı ve global bir sistem sağlamaktır. Daha etkin bir sistem ancak yeterli sayıda kullanıcının katılımıyla sağlanabilecektir. Bu amaçla bir kullanıcı katılım ödüllendirme sistemi kurulacaktır. Kullanıcı sayılarının artmasıyla birlikte daha gerçekçi performans ölçümleri yapılım geleceğe yönelik sonuçlar incelenecektir ve ona göre sistemde iyileştirmeler yapılacaktır.
During past decades, developments on Web technologies have brought various new concepts on Distributed and Parallel Computing systems. Increased Internet usage along with evolved capabilities of high level programming technologies, leaded to new concepts such as Multi-Host parallel computing, task distribution, peer-to-peer programming, etc. Especially, Java as the leading programming environment used on Internet basis systems, attracted the attention of Parallel Programming Studies, which resulted with the invention of many Parallel Programming Frameworks. The lack of native Parallel Programming Frameworks to provide High-Scale Parallel systems, oriented parallel programmers to develop various solutions. Also, multi-host parallel systems have become reasonable alternative solutions over multi-core parallel systems. The System built in these study aims providing a Parallel Programming Framework for Java Developers on which they can adapt their sequential application code to operate on a heterogeneous multi-host parallel environment. Developers would implement parallel models, by the help of an API Library provided under framework. Produced parallel applications would be submitted to a middleware called Parallel Running Platform (PRP), on which parallel resources for parallel processing are being organized and performed. The middleware creates Task Plans (TP) according to application’s parallel model, assigns best available resource hosts, in order to perform fast parallel processing. Task Plans will be created dynamically in real time according to resources actual utilization status or availability, instead of predefined/preconfigured task plans. ITU-PRP achieves better efficiency on parallel processing over big data sets and distributes divided base data to multiple hosts to be operated by Coarse-Grained parallelism. According to this model distributed parallel tasks would operate independently with minimal interaction until processing ends.
Açıklama
Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2015
Thesis (M.Sc.) -- İstanbul Technical University, Instıtute of Science and Technology, 2015
Anahtar kelimeler
Paralel Programlama, Dağıtık Sistemler, Paralel Sistemler, Paralel İşlem, Paralel Bilgisayarlar, Java, Parallel Programming, Distributed Systems, Parallel Systems, Paralel Processing, Paralel Computers, Java
Alıntı