Xgrid

Tarihi

Xgrid'in asıl konsepti, 1980'lerin sonunda NeXT tarafından yaratılmış OPENSTEP işletim sisteminde bulunan Zilla.app'a kadar geriye dönülebilir. Zilla, son kullanıcı işletim sisteminde yayınlanan ve boşta ekran koruyucu motifini kullanan ilk dağıtılmış bilgi işlem programıdır. Bu, SETI@home ve Distributed.net gibi yaygın olarak kullanılan projelerde bulunmasından bu yana tasarım özelliği idi. Zilla, kullanımı kolay ve iyi tasarım için 1991'de ulusal Computerworld Smithsonian Ödülü'nü (Science Category) kazandı. Apple, Zilla'yı 1997'de NeXT geri kalanıyla birlikte satın aldı ve daha sonra Zilla'yı Xgrid için ilham kaynağı olarak kullandı. Xgrid'in ilk beta sürümü Ocak 2004'te çıktı.
Birçok organizasyon büyük uluslararası hesaplama ağlarında Xgrid'i kabul etmiştir. Xgrid kümesine bir örnek, MacResearch'ın OpenMacGrid'idir; burada, bilim adamları, araştırmaları ile ilgili görevleri yerine getirmek için büyük miktarda işleme gücüne erişim talep edebilir. Bir diğeri de artık yok olan Xgrid @ Stanford projesi idi, Stanford Üniversitesi kampüsünde ve dünyanın çeşitli yerlerindeki bilgisayarları kullanarak biyokimyasal araştırma yapıyordu. Apple Xgrid'i OS X v10.8 (Mountain Lion) ile birlikte Podcast Producer gibi bağımlı servislerle birlikte kullanmayı bıraktı.

Arayüzey

Xgrid'e komut satırından erişmek mümkünken de, Xgrid grafik kullanıcı arayüzü, Mac OS X Server ile birlikte verilen ve Mart 2009'dan itibaren çevrimiçi olarak sunulan bir program Xgrid sistemini yönetmenin çok daha etkili bir yoludur. Başlangıçta Xgrid aracısı tüm Mac OS X sürüm 10.4 kurulumlarına dahil edilmiştir, ancak GUI Mac OS X Server kullanıcıları için ayrılmıştır. Bu karar, bilgisayar camiasının platformu benimseme çabalarını sınırladı. Sonunda, Apple, Mac OS X Sunucu Yönetim Araçları'nı, Mac OS X Sunucusu ile birlikte verilen Xgrid yönetim uygulamasını kamuya açıkladı.
Standart (sunucu dışı) Mac OS X dağıtımında grafik denetleyici arabiriminin olmamasına rağmen, "xgridctl" ve "xgrid" komut satırı araçları yoluyla bir Xgrid denetleyicisi ayarlamak mümkündür. Xgrid kontrolörü arka plan programı çalıştırıldıktan sonra, ızgarayı Apple'ın Xgrid Yönetim Aracı ile idare etmek mümkündür. VisualHub gibi bazı uygulamalar, kullanıcı arabirimleri aracılığıyla Xgrid denetleyici özelliğini sağladı.

Protokol

Xgrid protokolü, ağdaki düğümlerle iletişim kurmak için BEEP ağ çerçevesini kullanır. Sistemin altyapısı, protokol üzerinden iletişim kuran üç tür bilgisayar içerir. Birincisi, hesaplamayı ileten müşteridir. Sonraki hesaplamayı başlatan ve ayıran denetleyicidir. Sonunda, aracılar hesaplamanın tahsis edilen kısmını işleme koyarlar.
Bir bilgisayar, bu bileşenlerin üçünün bir veya tümü gibi aynı anda hareket edebilir. Xgrid protokolü, bilgisayarların iletişim kurmaları için temel altyapıyı sağlar, ancak belirtilen hesaplamanın işlenmesine dahil değildir. Xgrid, bazen paralel görevler olarak adlandırılan küçük görevlere kolaylıkla ayrılabilen zaman alıcı hesaplamaları hedef almaktadır. Buna Monte Carlo benzetimi, 3D rendering ve Mandelbrot haritaları da dahildir.
Xgrid protokolü içinde, aynı küme üzerindeki diğer bilgisayarlara üç tür ileti iletilebilir: istekler, bildirimler ve yanıtlar. İsteklerin yanıtla birlikte alıcı tarafından cevaplandırılması gerekir, bildirimler bir yanıt gerektirmez ve yanıtlar gönderilen iletilere verilen yanıtlardır. Adlarına, türüne (istek / bildirim / cevap) ve içeriklerine göre tanımlanırlar. Her mesaj bir BEEP mesajı (BEEP MSG) içinde kapsüllenir ve boş bir cevapla (RPY) alındığında onaylanır.
Xgrid, BEEP mesaj / cevap altyapısını kullanmaz. Bir yanıt gerektiren herhangi bir alınan mesaj sadece cevabı içeren bağımsız bir BEEP mesajı üretir. Xgrid mesajları, BEEP ağı üzerinden gönderilmeden önce XML'ye dönüştürülen anahtar / değer çifti sözlükleri olarak kodlanır.

Mimari

Xgrid sisteminin mimarisi iş tabanlı bir sistem etrafında tasarlanmıştır; kontrol birimi aracı işleri gönderir ve aracılar yanıtları döndürür. Denetleyicinin bir Xgrid sisteminde gerçek hesaplaması bir iş olarak bilinir. İş, girdi parametreleri, veri dosyaları, dizinler, yürütülebilir (executable) veya kabuk komut dosyaları gibi görevin başarıyla tamamlanması için gereken tüm dosyaları içerir. Bir Xgrid işinde bulunan dosyalar aynı anda ya da eşzamansız olarak yürütülmelidir. İş tamamlandıktan sonra, denetleyici, müşteriye görevi tamamlamak veya başarısızlığını e-posta gibi bildirmek üzere ayarlanabilir. İstemci, görevler çalışırken ağdan ayrılabilir. Ayrıca, bireysel görevlerin devam eden ilerlemelerini takip edemese de, denetleyiciyi sorgulayarak talep üzerine iş durumunu izleyebilir.
Denetçi, bir Xgrid'in doğru işlevinin merkezinde yer alır, çünkü bu düğüm ajanlar üzerindeki görevlerin dağıtımından, denetiminden ve koordinasyonundan sorumludur. Denetleyici üzerinde çalışan program, talep üzerine bireysel ajan arızalarını işlemek için görev atayabilir ve yeniden atayabilir. Bir aracıya atanan görev sayısı iki faktöre bağlıdır: bir Xgrid üzerindeki aracı sayısı ve her düğümdeki işlemci sayısı. Bir Xgrid üzerindeki temsilci sayısı, denetleyicinin görevleri nasıl atayacağını belirler. Görevler, çok sayıda aracı için eşzamanlı olarak atanabilir veya az sayıda aracı için kuyruğa alınabilir. Bir Xgrid'de birden fazla işlemci bulunan bir düğüm tespit edildiğinde, denetleyici işlemci başına bir görev atayabilir; bu yalnızca ağdaki aracıların sayısı denetleyicinin tamamlaması gereken görev sayısından düşükse oluşur.
Xgrid, HTTP ile karşılaştırılabilir bir IETF standardı olan Blok Genişletilebilir Değişim Protokolü (BEEP) üzerine, ancak iki-yönlü çoklanmış iletişimi, örneğin peer-to-peer ağlarda bulunanlar üzerine odaklanarak katlanır. BEEP, birden fazla aracı arasında tek bir ağ veya internet bağlantısı üzerinden iletişim kurmak için profiller tanımlamak için XML kullanır.