Bu tür benzer çalışmalar arasında SETI araştırmaları (uzayda birileri var mı?) ve Arecibo radyo teleskopunun verilerinin analiz edilmesini de sayabiliriz. Tüm bu projeler gönüllü katılım esasına göre yürütülmüştür. “Bul beni bebek” adlı öyküm sırasında bulduğum çözümün aslında yıllar evvel önce bulunduğunu ve kullanıldığını görmek beni epey bir sevindirmişti.
Bu projelerde kullanılan sistem basit olarak şöyle işliyor; bu projeye gönüllü katıldığınızda bir programı Internet üzerinden bilgisayarınıza yüklüyorsunuz. Daha sonra ise program bilgisayarınızı kullanmadığınız zaman (İngilizce deyimiyle idle olduğunda) tıpkı bir ekran koruyucusu gibi çalışmaya başlıyor. Bu ufak program Internet üzerinden daha büyük bir programdan aldığı talimata göre bir işlemi yerine getiriyor ve bulduğu sonucu ana programa iletiyor. Böylece büyük bilgi işlem yükü binlerce bilgisayarın oluşturduğu sanal bir süper bilgisayara yaptırılıyordu.
Aslında özü itibariyle bu uygulama bildiğimiz dağıtılmış bilgi işlem (distrubuted computing). Dağıtılmış bilgi işlemde, yük birden fazla ve birbirleriyle senkronize çalışan işlemciler arasında paylaştırılır. Yukarıda bahsettiğim sistemin bildiğimiz süper bilgisayardan tek farkı, işlemcilerin fiziksel olarak tek bir yerde ve yan yana değil de, birbirlerinden çok uzakta ve internet üzerinden bağlı olmaları. Biçim olarak farklı görünseler de, bir çok işlemcinin aynı anda ve yan yana çalıştığı süper bilgisayar ile bu basit sistemin ilke olarak birbirlerinden hiçbir farkı yok.
Böylece bir süper bilgisayar satın almadan veya yaygın olarak yapıldığı gibi kiralamadan bir süper bilgisayarın gücüne yakın bir bilgi işlem gücüne erişebiliyorsunuz.
Bu tür bir yapılanmanın hem dezavantajları hem de avantajları vardır. Akla ilk gelen avantajı işlem maliyetinin çok ucuza gelmesi. Benim gibi gönüllü katılımcılar, zaten sürekli kullanmadıkları ama sürekli açık tuttukları ve Internet’e bağlı bilgisayarlarını insanlığa hizmet edecek bir araştırmaya bağışlayarak bir tür bağış hissini yaşadılar. Katılımcılar herhangi bir şey kaybetmiyorlardı, bilakis hiçbir bedel ödemeden (elektrik faturalarını ve bilgisayarın amortismanını saymazsak) bağış yapan kişi konumuna yükseliyorlardı.
Katılımcılar açısından için herhangi bir risk yoktur. Bilgisayarınızın herhangi bir tuşuna bastığınızda program tıpkı bir ekran koruyucu gibi sonlanıyor ve bilgisayarınızın tüm kaynaklarını size geri veriyor (Program arka planda da çalışabilir, bu konuda emin değilim ama tartıştığımız ilke açısından bu bir teknik ayrıntı).
Bu projeyi yürüten ekip için ise üstesinden gelmeleri gerekli zorluluklar var. Basit bir akıl yürütmeyle bazı dezavantajları sıralayabiliriz. En basitinden bir süper bilgisayar kullanmak yerine böylesi bir sistemle çalışmak, gerekli hesaplama zamanı açısından ister istemez daha çok zaman demektir.
İster masanızın üstündeki bilgisayar olsun, isterse otuz milyon dolarlık süper bilgisayar Cray X1 olsun, bir bilgisayarın gücü basit olarak saniyede yaptığı birim işlem gücü ile (kesirli sayı işlemiyle) ölçülür. Buna FLOP denir. Bir bilgisayar 1 megaflop işlem gücüne sahiptir dediğimizde, bu bilgisayarın saniyede bir milyon hesaplama yaptığını anlıyoruz. Bu işlem kapasitesi bilgisayarın işlemcinin ve/veya işlemcilerinin, hafızasının ve veri yolunun hızına bağlıdır ama bu bizi ilgilendirmiyor.
Şu andaki en gelişmiş süper bilgisayarlardan biri olan Cray X1’in en üst modelinin gücü 52.4 milyon megaflopdur (yada 52.4 teraflop). Her biri 12.8 bin megaflop hızındaki 4096 işlemci kullanmaktadır (detay için www.Cray.com adresine bkz). Piyasada bulunan standart bir masaüstü bilgisayarın gücü ise yaklaşık 0,5 ile 3 megaflop arasında değişmektedir. Cray’in sayfasında ortalama bir PC ve süper bilgisayar gücü 1/10.000 olarak alınmış. Bir başka makalede ise internet üzerindeki hayali bir süper bilgisayar için gerekli bilgisayar sayısı 30.000 olarak verilmiş.
Bu demektir ki bir süper bilgisayarın gücünü elde etmek için yaklaşık 20.000 tane masaüstü bilgisayarı yan yana getirmeniz gereklidir (aslında bunun doğrusal olmadığının farkındayım ama tartışmayı basitleştirmek için bu basit orantıyı kabul edelim).
Bir diğer gerekli tanım ise maliyettir. Birim zamanda birim işlem gücünü kullanmak için ödediğiniz bedele birim işlem maliyet diyelim. Basit olsun diye bir saat boyunca bir milyon megaflopluk işlem gücü için dolar cinsinden bedel olarak ödediğiniz para olarak kabul edelim. Eğer bir süper bilgisayarı kiralıyorsanız bu bedeli hesaplamak oldukça kolay. Süper bilgisayarın bir saatlik kira bedelini işlem gücüne bölerseniz flop/dolar cinsinden birim maliyeti hesaplayabilirsiniz. Eğer süper bilgisayarı satın aldıysanız yine bu birim maliyeti kolaylıkla hesaplayabilirsiniz (bir bilgisayarın kullanım ömrü boyunca ki toplam kullanma süresini sabit yatırım artı işletme masraflarına bölerseniz ortalama bir birim işlem maliyeti bulabilirsiniz).
Süper bilgisayarlar oldukça pahalı oyuncaklardır. Büyük araştırma kurumları (NASA gibi) ve büyük şirketler dışında pek çok orta ölçekli kurum yada şirket, satın almak yerine süper bilgisayarları kiralamaktadırlar. Tıpkı internet cafeye giden bir kullanıcı gibi hareket ederler. Ya bilgisayar alacak kadar paraları yoktur yada bilgisayarı çok sık kullanmadıkları için satın almak yerine kiralamak daha ucuza gelmektedir).
Tanımlamaları yaptıktan sonra benim ileri sürmek istediğim fikir şu; kanser araştırmalarında kullanılan metoda benzer bir metotla hayali bir şirket kurduğumuzu varsayalım. Bu şirket kişisel bilgisayar ile internete bağlanan kullanıcıların bilgisayarlarını kiralıyor. Katılımcı kendi bilgisayarına indirdiği bir programla şirketin kendi bilgisayarını belirli oranda, belirli zamanlarda ve tabi ki belirli şartlarda kullanmasına izin veriyor. Oranın, zamanın ve şartların ne olacağını doğal olarak uygulama belirleyecektir.
Şirket tabi ki bu kiralama karşılığında katılımcıya bir bedel ödeyecektir. Bu doğrudan para vermek veya belirli kaynakların kullanıcı tarafından ücretsiz kullanımı olabilir. Örneğin parasız mp3 kaynağı yada kullanışlı bir programın bedelsiz olarak verilmesi olabilir. Sonuçta katılımcının, kendi bilgisayarını kiralamayı kabul edeceği bir kira bedelinin ödendiğini varsayalım.
Yukarıda tanımladığımız birim maliyeti bu örneğe de uygulayabiliriz. Hayali şirketimiz birim işlem gücünü birim maliyet ödeyerek katılımcıdan satın almaktadır.
Şirketimizin kar etmesi için, katılımcıdan satın aldığı birim işlem gücünün üstüne kendi masraflarını ve belirli bir kar marjını koyarak satması gereklidir. Bu durumda birim işlem gücünün maliyetinin, bir süper bilgisayar kullandığınızda ödediğiniz birim işlem gücünün maliyetinden düşük olması şarttır. Diğer türlü şirketin ayakta durması imkansızdır.
Böyle bir karşılaştırmayı yapmak için gerekli verilere ulaşamadım. Bir süper bilgisayarın birim maliyetinin ne olduğunu bilmiyorum. Bu maliyetin kiralayan şirketten şirkete ve kiralanan süper bilgisayardan bilgisayara değişeceği muhakkaktır. Pazarlamanın basit kuralları burada da geçerlidir, yani çok bilgi işlem gücü satın alırsanız fiyat daha düşük olacaktır vs.
Ayrıca ortalama bir kullanıcının kendi bilgisayarını kiralamak için hangi fiyatı kabul edeceği de belirsizdir. Örneklerini verdiğimiz gönüllü katılımlarda bu maliyet sıfırdır. Bu yüzden hesabımız her zaman fizibıl çıkacaktır ama bir kira durumunda hesabın yapılması gereklidir. Her halükarda, elimizde veriler varsa bir fizibilite yapmak kolaydır.
Büyük bilgi işlem gücüne ihtiyaç duyan alıcılar için kriterler bellidir. Kapasite, performans ve maliyet. Eğer aynı kapasiteyi ve performansı daha ucuz fiyata alacaklarına ikna olurlarsa, bir süper bilgisayar kullanmak yerine böylesi bir sistemi kullanmayı tercih edeceklerdir.
Buraya kadar işin mali boyutundan bahsettik. İşin teknik kısmına baktığımızda uygulamada bir çok sorunla karşılaşacağımız kesindir. Bir süper bilgisayarda bir arabanın aerodinamik yapısının tasarlanması gibi yüksek bilgi işlem gücü gerektiren bir işi yaptığınızda, paralel çalışan işlemciler tüm zamanlarını bu işleme ayırırlar. Fakat önerdiğimiz sistemdeki kişisel bilgisayarın tek işlemcisi sadece atıl kaldığı zaman (idle) sizin emrinizdedir. Bu durumda ister istemez aynı işi daha çok zamanda yapacaksınız demektir.belki sisteminizdeki kişisel katılımcı sayısını katlayarak teorik olarak bu sorunun üstünden gelebilirsiniz. Gerekli olan 20 bilgisayar ise siz 100 katılımcılık bir sistem kurarak ortalama yüzde yirmilik bir atıllık oranına göre ihtiyaç duyulan bilgi işlem kapasitesine erişebilirsiniz.
Bu sorunu aştığınızı varsayalım. Bu sefer başka sorunlarda çıkabilir. Örneğin programcılık açısından bakıldığında, böyle bir sistemle çalışan bir program yazmak, aynı işi bir süper bilgisayarda yapan bir program yazmaktan daha zor olacaktır. Hatta bazı durumlarda böylesi bir program yazmak imkansız olabilir. Programcılık bilgim sınırlı olduğu için ne tür zorluklar olabileceğini kestirmem zor ama olacaktır.
Yine de bu ve şu an aklıma gelmeyen başka teknik zorlukların aşılacağından eminim çünkü bu model gerçek hayatta daha önce bir çok alanda uygulanmış ve başarılı sonuçlar vermiştir. Başarılı sonuçlandığına göre, öyle yada böyle teknik sorunlar aşılmış olmalı, yoksa sonuç alamazlardı.
Hayali şirketimizin yaşaması ve kar etmesi (aslında bir şirket için her ikisi de aşağı yukarı aynı anlama geliyor) yukarıda bahsettiğimiz birim maliyete bağlıdır.
Böyle bir şirket genel anlamda ekonomiye de dolaylı olarak katkıda bulunacaktır. Milyonlarca kişisel bilgisayarda duran atıl kapasite kullanılabilir hale getirilerek süper bilgisayarların üretimi ve kullanımı için harcanan para, genel ekonomi içinde sıfırlanacaktır. Basit olarak kullanılmayan kaynak ekonomiye kazandırılacaktır. Bu kaynağın para cinsinden miktarının azımsanmayacak kadar büyük olduğundan emin olabilirsiniz. Atıl duran bilgi işlem gücünü bir kenara bırakın, harcanan elektriği hesapladığınızda bile kardasınızdır.
Ülkemizde yürütülen araştırmalar için gerekli yüksek bilgi işlem gücü bu yolla sağlanabilir. Özellikle üniversiteler için cazip bir kaynak gibi durmaktadır.