GRID HESAPLAMA TEMEL KAVRAMLAR VE GRID ÜZERİNDE VERİ YÖNETİMİ Fatih Türkmen İzmir Ekonomi Üniversitesi Bilgisayar Bilimleri Fakültesi [email protected] ÖZET Makalede Grid Hesaplama, gelişme evreleriyle beraber fazla detaya girmeden gereksinim nedenleriyle sunulur. Grid üzerindeki son gelişmelerin ipuçları verilir ve bu gelişmeler hakkında yorumlar yapılır. Ayrıca Grid sistemlerinin birinci sınıf vatandaşı olarak tabir edilen veri ve onun yönetimi hakkında varolan yaklaşımlar tartışılır. ABSTRACT In this survey, I present the Grid Computing basics with its development phases and the reasons. The clues of the latest developments and the tendencies in this field are given with comments. Current management approaches of data defined as the first class citizens of Grid systems are discussed. Anahtar Kelimeler: Paralel Hesaplama, Grid Hesaplama, Globus, Gridbus, Yüksek Performanslı Hesaplama, Anlamsal Grid 1. GİRİŞ Matematik, fizik, kimya gibi doğa bilimlerinde güçlü bilgisayar kullanım ihtiyacı ve; Simülasyon, Görüntü işleme, Güvenlik uygulamaları, Veri madenciliği, gibi yüksek hesaplama gücü ve büyük miktarlarda veriyle ilgilenmeyi gerektiren problemler/çalışmalar içeren alanlara olan ilginin artması, bu tip uygulamaların geliştirme ve çalıştırma ortamlarına olan ilgininde artmasına ve yüksek hesaplama kapasitesine sahip sistemlerin/ortamların oluşturulmasına sebep olmuştur. Bazı deneylerde günlerce hatta aylarca sonuç beklenmesi, kullanılan sistemlerin nasıl daha performanslı hale getirilebileceği konusunda araştırma yapılmasına ve yüksek performanslı hesaplamanın açık (çözülememiş) bir problem olarak kalmasına neden olmuştur [1]. Önceleri daha çok tercih edilen ya da zorunda bırakılan, çok yüksek hesaplama kapasitesine sahip çok işlemcili süper bilgisayarların kullanımı, maliyet, geri kazanç ve bilgi erişimi gibi bazı pratik nedenlerden dolayı yerlerini sıradan (ya da sıradana yakın) bilgisayarların bir araya getirilmesiyle oluşturulan kümelere (clustering) bırakmıştır. Özellikle DEC şirketinin VMS (Sanal Bellek Sistemi)’ine çıkış zamanına karşılık gelen 1980’li yıllardan itibaren akademik ve endüstriyel alanlarda daha az maliyetli sistem arayışı hız kazanmıştır [2]. 2. PARALEL HESAPLAMA Bilgisayarların daha etkin kullanılması amacıyla yapılan paralelleştirme çalışma ve uygulamalarına, bilgisayar sistemlerinin hemen hemen her seviyesinde rastlamak mümkündür. Birbirinden kısmen ya da tamamen bağımsız işlemlerin (process) birbirine paralel biçimde çalıştırılması prensibine dayanan paralelleştirme, işlemcilerin ya da diğer bilgisayar parçalarının tasarım aşamalarından, binlerce bilgisayarın bir araya getirilmesiyle oluşturulan bilgisayar kümelerinin oluşturulmasına kadar birçok yerde yoğun şekilde kullanılmaktadır. Sadece paralel ortamlar için tasarlanan homojen bilgisayarların maliyetleri, heterojen ve sıradan bilgisayarların biraraya getirilmesi ve farklı kümeleme tekniklerinin kullanılmasıyla minimum seviyeye çekilmiştir. Beowulf kümeleme [3] bu yöntemlerden en popüler olanıdır. Sıradan (commodity off the shelf) olarak tanımlanan bilgisayarların belirli standart ve konseptler kullanılarak biraraya getirilmesi olarak tanımlanan Beowulf kümeleme özellikle Linux gibi açık sistemler için önerilmiştir. Kümeleme konseptlerine uygun şekilde bir araya getirilen bilgisayarlar üzerinde paralel uygulamaların çalıştırılabilmesi için, paralel bleşenlerin (components) iletişimini sağlayacak yazılımsal mekanizmalara ihtiyaç vardır. Bu amaçla endüstri standardı olan MPI [4] (Mesaj Gönderme Arayüzü) ve yoğun olarak kullanılan PVM [5] (Paralel Sanal Makine) gibi paralel programlama kütüphaneleri geliştirilmiştir. Bu kütüphanelerle geliştirilen uygulamalarda birbirine paralel çalışan öbeklerin (node) yaptıkları işler arasında küçük farklar dışında fazla farklılık yoktur. Temel olarak bir bütün öbekler üzerinde çalışacak bir sistem tasarlanır ama bu sistemin tasarım süreci zordur. Paralel uygulamalar, kendilerine adanmış (dedicated) ortamlara ihtiyaç duyarlar. Dağıtık sistemlerin aksine senkronizasyon ve iletişime daha fazla vurgu söz konusudur. Bu karakteristik özellikler paralel sistemlerin maliyetlerini artıran temel faktörlerdir. hesaplama kaynaklarının, kullanıcıya konum şeffaflığıyla (location transparency) sunulmasındadır. 3. DAĞITIK HESAPLAMA Merkezi (centralized) sistemlerden farklı olarak dağıtık sistemler, fiziksel olarak dağılmış bilgisayarların biraraya getirilmesi ve koordine şekilde çalıştırılmalarıyla elde edilirler. Dağıtık sistemlerde, paralel sistemlerden farklı olarak senkronizasyon yerine, koordinasyona vurgu vardır. Ayrıca paralel sistemlerden farklı olarak dağıtık sistem öbekleri birbirlerinden tamamen farklı işler yapabilirler. Bu nedenle farklı öbeklerden elde edilen sonuçların birleştirilmesi ya da uygun şekilde değerlendirilmesi gereklidir. 4.1 Grid Hesaplama - Elektrik Soketleri Analojisi Dağıtık sistemlerin günümüzdeki örneklerine özellikle bu sistemlere uygun altyapıya sahip Internet ortamında rastlanmaktadır. Bunların en popüler olanı, tipik bir dağıtık sistem olan DNS (Domain Name Service) sistemidir. DNS sunucularının birer öbek olarak düşünülebileceği DNS sisteminde, istemcilerden gelen herhangi bir sorguya cevap koordine bir şekilde hiyerarşik olarak verilir. Diğer popüler bir dağıtık sistemde SETI (Search for Extraterrestrial Intelligence at Home) [6] projesidir. Dünya dışı yaşamın araştırıldığı SETI projesinde uydulardan ve teleskoplardan alınan büyük miktarlardaki veriler, Internet’e bağlantısı olan ve SETI ekibi tarafından geliştirilmiş bir ekran koruyucu uygulaması çalıştıran PC’ler aracılığıyla değerlendirilmektedir. Bunlara ek olarak Kazaa, Naspter gibi P2P uygulamaları dağıtık sistemlerin günümüzdeki yaygın örnekleridir. Evlerimizde ya da işyerlerimizde kullandığımız elektrik soketleri Grid Hesaplama’nın çıkış noktası olarak varsayılır. Bu soketleri, arka tarafında (daha ilerisinde) ne olduğunu bilmeksizin elektrik ihtiyacımızı karşılamak amacıyla kullanırız. Tek ihtiyacımız olan şey elektronik aletimizi çalıştıracak yeterli bir akımdır. Aynı şekilde Grid Hesaplama’da amaç ihtiyaca bu yaklaşımla bir çözüm sunmaktır. Grid ortamları büyük ölçekli (large scale) yani yüksek hesaplama gücü gerektiren problemlerin çözümünde kullanılırlar. Elektrik soketlerinde olduğu gibi, Grid ortamının sağlaması gereken, ortam detaylarının Grid kullanıcısından saklanmasıdır. Grid kullanıcısı, ortam detayları ki bunlar ortam öbeklerinin yazılımsal özellikleri , işletim sistemleri gibi, ya da donanımsal özellikleri ile ilgilenmemelidir. Kullanıcı kendi işi üzerinde yoğunlaşmalıdır. 4. GRID HESAPLAMA 4.2 Grid Ortamları Grid Hesaplama, yüksek performans isteyen uygulamaların geliştirilmesi için gerekli mimarinin (architecture) bulunması çabalarının son ürünüdür. Temelini elektrik soketlerinin çalışma mantığından alan Grid Hesaplama’nın, Internet’in çalışma yapısında ve anlaşılmasında bazı önemli değişiklikler yapacağı düşünülmektedir. Grid Hesaplama’nın önerilmesinden itibaren birçok laboratuar ve akademisyen grubu Grid ortamı geliştirmeye çalışmıştır. Bu çalışmalardan en önemlilerinden biri; ürün olarak Globus aracını veren, Amerika’daki Argonne Ulusal Laboratuar’larında çalışan Ian Foster ve ekibinin çalışması, diğeri Avustralya’daki Melbourne Üniversitesi, Dağıtık Sistemler Laboratuar’larında çalışan Raj Kumar Buyya ve ekibinin geliştirdiği GridBus sistemidir. Globus daha fazla olmakla beraber her iki sistem hem akademik hem de endüstriyel alanlarda kullanım bulmuştur. Grid konsepti coğrafik olarak ayrık süper ya da sıradan bilgisayarların birbirlerine bağlanması amacıyla ortaya çıkmış olmasına rağmen günümüzde orjinal amacını aşmış; işbirlikçi mühendislik (collaborative engineering), yüksek verimli hesaplama (high-throughput computing) ve dağıtık super hesaplama (distributed supercomputing) gibi alanlarda kazançlar sağladığı görülmüştür [7]. Grid Hesaplama da sanal organizasyon (virtual organization) kavramı vardır. Bu kavram sistemlerin ve bu sistemlerin kaynaklarının fiziksel özelliklerinden bağımsız, sanal olarak bir bütünmüş gibi algılanmasını temsil eder. Buradaki vurgu birbirinden çok farklı konumlardaki Şekil 1 Sanal Organizasyonlar 4.2.1 Globus Grid dünyasında de facto standart olarak gelişimine devam eden Globus, NASA, NSF, deprem ve dünya araştırmalarının yapıldığı birçok laboratuarda kullanılmaktadır [8]. Globus sistemi; içerdiği elemanlar (components) ve yazılımlarla kabul gören genel Grid modelini şekillendirmektedir. Globus temel olarak; güvenlik, bilgi altyapısı, kaynak yönetimi, veri yönetimi, iletişim, hata düzeltimi ve taşınabilirlikle ilgili yazılımlar içermektedir. Globus sistemi tek başına çalışabilen komple bir Grid sistemi olarak kullanılabileceği gibi, uygulama geliştirmek içinde kullanılabilir. Architecture) ve OGSI (Open Grid Services Infrastructure) standartlarının son versiyonları Web Servisleri standartlarıyla uyumlu hale getirilmiştir. Böylece OGSA ve OGSI standartları W3C, IETF ve OASIS spesifikasyonlarına uyumlu hale gelmiştir. Globus, Linux işletim sistemi gibi açık kaynak olarak gelişmiştir. Böylece gelişmeye daha açık ve hızlı uyumlu hale getirilmesi sağlanmıştır. Globus sistemi kullanılarak geliştirilen bilgisayar bilimleri projelerinden bazıları; Condor [9], SciDAC CoG [10], GridLab[11] ve GriPhyN[12]’dır. Bu projelerden Condor’da, dağılmış şekilde bulunan bilgisayar kaynakları üzerinde Yüksek Verimli Hesaplama (High Throughput Computing)’yı destekleyici mekanizma ve poliçelerin geliştirilmesi, denenmesi ve kurulması amaçlanmaktadır. SciDAC CoG projesinde, Grid sistemleri tarafından sağlanan servislerin daha üst seviyelerde erişilebilmesini sağlayarak, gelişmiş bilimsel uygulamaların, Web portallarının ve problem çözme ortamlarının oluşturulmasını kolaylaştırmak amaçlanmaktadır. GridLab çalışmasında araştırmacıların çalışmalarını test edebilmeleri amacıyla bir Grid test ortamı (testbed) yaratılmıştır. Son olarak GriPhyN projesinde özellikle fizik olmak üzere temel bilim dallarında Peta büyüklüklerde verilerin analizi ve işlenmesinde Grid teknolojilerinin kullanımı araştırılmakta ve geliştirilmektedir. 4.2.2 Gridbus Globus sistemine göre daha basit olan Gridbus, Globus sistemine alternatif olmaya çalışmakla beraber Grid mimarilerinde yeni açılımlar yapmaya çalışmaktadır. Globus sisteminden farklı olarak Gridbus, Microsoft .NET platformunu da desteklemektedir. Gridbus sistemi de açık kaynaklı olarak geliştirilmektedir. Gridbus projesiyle geliştirilen projelerden birisi ekonomik ve talep bazlı beyin aktivite analizi yapılması amaçlanan NeuroGrid projesidir. Projede Gridbus sistemiyle beraber çalışan Nimrod-G [13] kaynak brokeri (resource broker) kullanılmaktadır. Bir diğer projede ilaç tasarımı için kullanılan moleküler modellemenin yapıldığı Virtual Laboratory projesidir. Bu projede de Nimrod-G kaynak brokeri kullanılmıştır. 4.3 Grid Son Gelişmeler Altyapısı, model uygunluğu nedeniyle potansiyel en büyük ortam olarak Internet’in farkedilmesiyle Grid standartlarında Internet standartlarına doğru bir yöneliş gözlenmektedir. Özellikle Grid servis mimarislerini yansıtan OGSA [8] (Open Grid Services Şekil 2 OGSA ve Globus 4.4 Servis Tabanlı Hesaplama İstemci-sunucu mimarisini bazı önemli değişiklikler yaparak temel alan servis tabanlı yaklaşımda, merkezi sunucu yaklaşımından ziyade daha dağıtık, servis bazlı yaklaşım söz konusudur. Sağlanan servisler sadece bir prosedür ya da fonksiyon kullanımı olabileceği gibi, komple işlem sonucu veren programlar/uygulamalar olabilirler. Servis tabanlı yaklaşıma sahip olan Grid hesaplama, katılımlı (anticipated) ya da katılımsız (unanticipated) servis kullanımı sağlayarak, zaman ve mekandan bağımsız, birlikte çalışabilirliği (interoperability) gerektirmektedir. Grid sistemi üzerindeki özel öbeklerin belirli arayüzlerle verdiği servisler, belirli kurallar dahilinde ve servisi tüketen öbekle sunan öbek arasında yapılan anlaşmalara uygun olarak sunulmaktadır. Servisle ilgili işlemlerin otomatik hale getirilmesi amacıyla, varolması olası olan birçok sürecin modellenmesi ve gerçekleştirilmesine çalışılmaktadır. Örnek olarak, anlaşma (negotiation), programlama (scheduling) ya da kaynak rezervasyonu (resource reservation) işlemlerinin otomatikleştirilmeye çalışılması verilebilir. 4.5 Anlamsal Grid Internet ortamında bilimsel çalışmaların çok daha kolay ve hızlı olarak yapılabilmesini amaçlayan EScience fikrinin gelişmesiyle, Grid sistemlerinde içsel bazı değişiklikler beklenmektedir. Bunlardan bir tanesi Grid sistemlerinde Semantic Web teknolojilerinin (ontolojilerin) kullanılmasını öngören yeni açılım Semantic Grid’tir. Makine işlenilebilirliği (machine processability) ve özelleşmeyi (specilization) sağlayan ontolojiler, araştırmalar da zaman kaybına neden olan birçok rutin sürecin otomatikleştirilmesini sağlayacak ve bilimadamlarının daha iyi iletişimine olanak sağlayacaktır. Örnek olarak bir bilim adamı, kendisiyle ilgili olan bir deneyin sadece ilgilendiği kısmının verilerinin, otomatik olarak kendisine gönderilmesini talep edebilecektir. 5. GRID ÜZERİNDE VERİ YÖNETİMİ Grid uygulamalarının, yüksek performans isteyen uygulamalar olmalarının temel sebeplerinden bir taneside, üzerinde çalıştıkları yüksek miktarlardaki verilerdir. Nükleer araştırmaların yapıldığı Avrupa Nükleer Araştırma Organizasyonu (CERN, European Organization for Nuclear Research)’nda yapılan deneyleri düşündüğümüzde ortaya çıkan terabyte hatta petabyte seviyelerindeki veriler, Grid üzerindeki veri yönetiminin önemini vurgular. Örnek olarak bu laboratuarlarda 2007’te aktif hale gelmesi beklenen LHC (Parçacık Hızlandırıcı)’de yapılması düşünülen CMS (Compact Muon Spectrometer) deneyinden 1 PB (Peta Byte, 1015 Byte) saf bilgi ve 2 PB civarında özet log verisi elde edilmesi hesaplanmaktadır [14]. 5.1 Varolan Yaklaşımlar Projeye ve projedeki ihtiyaca bağlı olarak değişmekle beraber Grid üzerinde veri yönetiminde en çok kullanılan yaklaşımlar; Uzak Girdi/Çıktı (Remote I/O) ve Veri Bölümleme (Data Staging) dir. Bu yöntemlerden Uzak Girdi/Çıktı yönteminde, veriye uzak noktada erişme söz konusudur. Veri kullanılmak üzere bulunduğu yerden başka bir yere taşınmaz. Günümüzdeki web tabanlı istemci/sunucu uygulamalarına çok benzeyen bir şekilde veri noktası ile uygulama noktası arasında sürekli gidiş geliş sözkonusudur. Veri bölümlemede veri iki şekilde; öncel bölümleme(pre-staging) ve sonra bölümleme (post-staging) yapılır. Öncel bölümlemede, uygulamanın ihtiyacı olan veri çalıştırılmadan önce çalışacak olan öbeğe getirilir. Bu bir tip ön belleğe alma (caching) mekanizması olarak değerlendirilebilir. Geç bölümlemede ise, uygulamanın çalışması bittikten sonra veri, talep olmamasına rağmen, tahminlere ya da varolan poliçelere dayanarak farklı bir öbeğe transfer edilir. Bölümleme genel olarak veriyi işlemlere ya da işlemleri veriye taşımak olarak tanımlanır. 5.2 Örnek Projeler Grid üzerinde veri yönetimi konusunda halihazırda devam eden birçok çalışma vardır. Bunlar arasında Condor [9] projesi içerisinde geliştirilen Stork [15] ve Chirp [16] yer almaktadır. Chirp sistemi özellikle Uzak Girdi/Çıktı konusunda çalışır ve bu konuda protokol spesifikasyonu içermektedir. 5.2.1 Stork Stork, Wisconsin Universitesi tarafından GriPhyN (Grid Physics Network) projesi kapsamında geliştirilen, özelleşmiş bir veri taşıma programlayıcısıdır. Önceden manuel olarak ya da küçük programcıklarla yapılan veri taşıma işlemlerinin programlanabilmesi, izlenebilmesini ve yönetilebilmesine olanak sağlayan Stork, Grid üzerindeki veri yönetimi problemlerinin/ihtiyaçlarının çoğuna çözüm bulur [15]. 5. SONUÇLAR Etki olarak Internet’ten sonra “The next big thing” olarak tanımlanan Grid Hesaplama, Internet’in olası en büyük hesaplama ortamı olarak düşünülmesiyle beraber yeni açılımlara sahip olmuş ve bu, araştırmacıların Internet standartlarını, varolan Grid sistemlerine entegre etmeye çalışmalarına neden olmuştur. Grid sistemlerinin son versiyonlarında desteklenen Web Servisleri standartları bu akımın göstergesidir. Zaman içerisinde yapılacak çalışmalarla Internet’in bir Grid ortamı haline dönüşebileceği düşünülmektedir. Grid üzerinde birinci sınıf vatandaş olarak tanımlanan ve yüksek performans ihtiyacının doğmasına neden olan, yüksek miktarda veri işleyebilme yeteneği Grid sistemleri üzerinde özel bir öneme sahiptir. Grid üzerinde sadece veri yönetimiyle ilgilenecek, varolan Grid sistemleriyle uyumlu sistemler tasarlanmıştır. Buradan hareketle Grid sistemlerinde verinin önemini koruyacağı, dolayısıyla veri yönetimini kolaylaştıran/sağlayan araçlara ve yöntemlere olan ihtiyaç devam edeceği söylenebilir. KAYNAKLAR [1] http://en.wikipedia.org/wiki/Unsolved_problems_in_co mputer_science [2] http://searchdatacenter.techtarget.com/sDefinition/0,290 660,sid80_gci762034,00.html [3] http://www.beowulf.org [4] http://www-unix.mcs.anl.gov/mpi [5] http://www.csm.ornl.gov/pvm/pvm_home.html [6] http://www.seti.org [7] M. Baker, R. Buyya, D. Laforenza, “Grids and Grid technologies for wide-area distributed computing”, Vol. 32, Issue 15, pp. 1437-1466, 2002 [8] http://www.globus.org [9] http://www.cs.wisc.edu/condor/ [10]http://www.doecollaboratory.org/research2/cogkits/hom epage.html [11]http://www.gridlab.org/ [12]http://www.griphyn.org/ [13]http://www.csse.monash.edu.au/~davida/nimrod/nimrod g.htm [14]K. Holtman et al., “CMS Requirements for the Grid”, in Proceedings of 2001 Conference on Computing in High Energy Physics (CHEP 2001), Beijing, China; Science Press, September 2001 [15]T. Kosar, M. Livny, “Stork: Making Data Placement a First Class Citizen in the Grid”, 24th IEEE International Conference on Distributed Computing (ICDCS2004), Tokyo, Japan, March 2004. [16]http://www.cs.wisc.edu/condor/chirp/ Systems