BOINC altyapısı ile bilime yardım edin
____________________________________________________________________
BOINC logosu.
BOINC ya da tam adıyla Berkeley Open Infrastructure for Network Computing (Berkeley Ağ Hesaplaması için Açık Altyapı) fikrimce her kullanıcının bilgisayarında çalışması gereken bir yazılım. Yazılımın amacı basit, işlevleri karışık. Biraz BOINC yazılımından bahsetmek istedim. Kısaca muazzam bilgisayar gücüne ihtiyaç duyan problemleri çözmek için gönüllü kullanıcıların bilgisayarlarını kullanmayı olanaklı kılan bir altyapı. Hem İnternet tarafında bir altyapı hem de gönüllü ve bilim adamları tarafındaki yazılımları, hem de cep telefonu gibi ARM mimarili işlemcilerde çalışabilen halleri ile çok büyük bir proje.
Bilgisayarlar çok hızlı cihazlardır, bizim yapamadığımız pek çok işlemi bizden çok daha yüksek bir hızla yapabilirler. Ancak zamanla bilgisayarların hızı artsa da bilgisayarlardan beklenen şeyler de artmış durumda. Hal böyle olunca da tek bir bilgisayar ya da tek bir süper bilgisayar bile yeterli olamayabiliyor bazı işlere. Ya da yeterli olsa da masrafından dolayı her bilim adamının işine yaramayabiliyor. Mesela bir ilaç geliştirmeye çalışan bir bilim adamının ilacın moleküler olarak etkileri, istenen amaca ulaşıp ulaşmayacağı, belli proteinlerle etkileşecek molekülleri vs. pek çok konuda yoğun hesaplamalar içeren tahminler yapması gerekebilmektedir. Bu durumda süperbilgisayarlar devreye girebilmektedir. Ancak söz konusu hastalık örneğin ebola gibi kısıtlı bir kitleyi etkileyen bir hastalık ise yeterli parayı kazanamayacağını düşünen ilaç üreticileri bu tür hastalıklar için ArGe’den kaçınabilmektedir. Bu durumda da çalışması maliyetli olan süperbilgisayarlar bilim adamlarına erişememektedir.
BOINC altyapısı tam da böyle bir noktada bilim adamlarına çok sayıda bilgisayardan oluşan bir şebeke sunarak yardımcı olabilmektedir. Bilim adamı BOINC altyapısına uygun bir kurar; testlerini çalıştıracak BOINC uyumlu bir uygulama hazırlar, sonra da bu uygulama tarafından hesaplanacak verileri hazırlar. Bu projesini BOINC üzerinden gönüllüler tarafından çalıştırılmaya hazır hale getirilir. BOINC gönüllüsü ise bilgisayarına BOINC yazılımını kurar. Bilim adamının hazırladığı projeyi BOINC yazılımına ekler. Bunu isterse anonim olarak yapabilir, isterse de bir kullanıcı hesabı açarak yapar; kullanıcı hesabı ile istatistiklerinin takibini daha kolay yapabilir. Sonrasında BOINC yazılımı ilgili proje verilerini indirir. Bilimsel hesaplamaları yapacak uygulamayı indirir; sonrasında uygulama tarafından hesaplanacak verileri indirir. Sonrasında bilim adamının uygulaması gönüllünün bilgisayarında BOINC denetiminde gerek işlemci (CPU) gerekse de grafik işlemcisi (GPU) desteğiyle bu hesaplamayı yapar ve tamamlar. Elde edilen sonucu ya da veriyi de bilim adamının sunucusuna yükler. Bu şekilde topladığı verileri bilim adamı inceler; işine yarayacak verileri belirler; bu verileri gerçek dünya testlerinde kullanıma hazırlamaya başlar.

Bilgisayarımda 1GPU ve 2 CPU çekirdeğiyle çalışan BOINC yazılımı.
Bu şekilde bilim adamı kendi kaynakları ile çok maliyetli olduğundan gerçekleştiremediği bilimsel deneyleri çok çok daha düşük bir maliyetle gerçekleştirmiş olur. Belkide maliyeti bıraksak bile ihtiyacı olan işlem gücünü bulamayacaktır. Çünkü BOINC ortamında birleştirilmiş bilgisayarların toplam işlem gücü pek çok süperbilgisayarın işlemgücünün ötesinde. Örneğin şuanda Grid Republic hesap yöneticisine bağlı BOINC gönüllülerinin yaptığı hesaplamaların hacmi 22 bin Tflops ya da teraflop. Bir teraflop bir trilyon adet kayar nokta hesabı demek, bunlardan 22 bin kadar düşünün ki çok muazzam bir miktar. Grid Republic sayfasına göre bu işlem hacminin üstünde şuanda tek Çin’in Tianhe-2 (Samanyolu-2) adlı bilgisayarı var ki 33 bin Tflop güçte görünüyor. Diğer en yakını da 17 bin Tflops ile Titan. Yeni BOINC projelerindeki gönüllü bilgisayarlarının işlem hacmi süperbilgisayarlarınkini geçebiliyor. Tabi bunlar sadece Grid Republic hesap yöneticisine bağlı bilgisayarlar. Buna bağlı olmayan pek çok daha hesap yöneticileri ve gönüllüler var. BOINC anasayfasına göre ise ortalama 10 bin petaflop kadar bir 24 saatlik ortalama işlem gücü söz konusu. Dediğim gibi süperbilgisayarlardan çok daha öte bir iş yapıyor BOINC.
Söz konusu gönüllüler ise böyle büyük hesaplamalar gerektiren deneylerin çok küçük parçalarına destek olmuş olarak bilimsel çalışmalara, bilimsel projelere destek vermiş olurlar. Burada bilim adamlarının masraflarını paylaşıyorlar diyebiliriz. Ancak çok muazzam bedelleri küçük bedeller olarak ödüyorlar. Peki ne bu bedeller?
- BOINC yazılımının kurulumu, istenen projelere üyelik ve yazılıma eklenmesinin arkasından birkaç ufak tefek ayar. Yazılımın kullanıcı tarafından indirilmesi gerekli ki herkesin yapabileceği bir şey. Proje beğendikten sonra da ne zaman çalışacağı, ne zaman çalışmayacağı, ne kadar işlemci veya ekran kartı kaynağı kullanacağı gibi ayarlar yapmak gerekli. Bir kez yapınca bir daha bir müdahale gerekmiyor. Zaten çoğu proje arkaplanda görünmez halde çalışıyor. Bazıları için işlemci çekirdeklerini ya da işlem kapasitesini kısıtlamak gerekebiliyor. Ayrıca diskinizde de projenin iş ihtiyaçlarına göre değişen boyutta yer gerekiyor. 8GB hafıza kartımda çalıştırdım ben uzun süre.
- Yazılımın ara ara kontrolü. Yazılım kendi başına çalışabilse de ara ara kontrol etmekte fayda var. Örneğin katkı sağlanılan projede iş bitmiş olabilir, bu durumda farklı bir proje seçilerek o çalıştırılabilir. Ya da sisteminizdeki bir sıkıntıdan dolayı işler hata veriyor, bitirilemiyor olabilir; böyle sıkıntıları görmek için.
- Elektrik faturası. BOINC çalıştıran bilgisayar boştaki bir bilgisayara göre daha fazla elektrik harcıyor. Gönüllü bu elektriğin faturasını ödüyor. Öncelikle eskiden bilgisayarlar boşta bile muazzam elektrik harcadıkları için BOINC projeleri çok fazla etkilememekteydi tüketimi. Ancak sonrasında boşta iken daha az enerji harcayan işlemcilerle iş biraz değişti tabi. Sadece bilgisayarı açıkken BOINC çalıştıracak kullanıcılar için pek bir sıkıntı yok aslında. Ancak bilgisayarını 24 saat çalıştırıp ciddi katkı sağlamak isteyenlerin iyi bir bütçe hesabı yapmasında mantık var. Ayrıca Gridcoin gibi Boinc temelli sanal para projelerinin gelişmesi ile bu kısım da kendini bir miktar amorti edebilir hale gelebilir.
- Donanım. Bilgisayarı sadece açıkken destek vermek isteyenler için pek sıkıntı yok. BOINC çalıştırılan projeye göre değişebilmekle birlikte performansı neredeyse hiç etkilemeyen projelere sahip. Ayrıca hemen her performans düzeyinde donanımla da çalışabiliyor. Ama 24 saat açık tutup destek vermek isteyenler biraz güçlü bilgisayarlar tercih ediyorlar. Sonrasında tam performans için donanımları sıcaklık olarak da serin tutmak gerekiyor. Normal kullanıcıya tavsiyem projesini işlemcinin birkaç çekirdeğini kullanmasına yönelik olarak sınırlaması. Bu şekilde işlemci ısısını da düşürebilir, anakart ve güç kaynağından çekilen enerjinin azalmasını sa sağlayarak ömürlerinin kısalmasını engelleyebilir. Ayrıca ekstra performans için hız aşırtma (overclocking) uğraşları da önem kazanabiliyor. Aşırı ısıdan arızalanan donanım pek olmuyor ama zamanla sürekli sıcak ve yük altındaki anakartın ve güç kaynağının arızalanması olası. Dizüstü kullanıcıları biraz daha dikkatli olmak durumunda. Dizüstüler soğutma kapasitesi olarak masaüstülere göre daha sınırlı oldukları için biraz daha sıcak çalışabiliyorlar. Bunlardaki donanımlar da buna uyumlu tabii ki. Mesela bir masaüstü işlemci için kapanma sıcaklığı 70 derece ya da daha düşük bile olabilirken dizüstü işlemciler 100 ya da 105 derece gibi yüksek kapanma sıcaklıklarına sahip olabiliyor. Yine de sistemi ne kadar serin tutsanız kardır. Çünkü yüksek sıcaklık uzun vadede bileşen ömürlerini kısaltabiliyor. Ancak çok korkmaya da gerek yok, 5 – 6 yıl boyunca dizüstü bilgisayarlarda BOINC projeleri çalıştırmış olanlar var. Benim bilgisayarım da ikinci yılında ve biraz modifikasyon ile iyi iş çıkarıyor. Ayrıca bilgisayarlardan başka ARM işlemcili ve Android ya da Linux tabanlı pek çok platform da bilgisayarlar haricinde bu projelere katkı sağlamak için kullanılabiliyor. En basitinden akıllı cep telefonlarınız mesela.
- İnternet erişimi. BOINC yazılımı BOINC sunucuları ile iletişim kurabilmek, yeni işler indirmek ve sonuçları göndermek için İnternet bağlantısına ihtiyaç duyar. Ancak örneğin işler bir defa indirildiğinde İnternet bağlantısı olmadan da işler bitene kadar çalışabilir. Veri miktarı olarak ise projeden projeye fark var. Bazı World Community Grid işleri 10KB kadar olabilirken GPUgrid işleri 100MB civarında olabilmekte. Tabi WCG işleri günde birkaç MB trafik anca oluşturabilirken GPUgrid işin ağırlığından dolayı o 100MB veriyi 3 – 4 günde işleyebilmekte ya da üretebilmekte. Hani veri kullanımı meselesi projeden projeye çok değişen bir şey. Yine de çok küçük kotalı İnternet paketi kullananlar hariç pek sıkıntı yaşanacağını sanmıyorum. Tabi dikkatli olmakta mutlaka fayda var.
- Güvenlik. BOINC kullanıcıları bilgisayarlarında çalışan yazılıma güvenmeyebilmekteler. BOINC yazılımı açık kaynak bir yazılım; hani kaynak kodunu inceleyip programda ne olup bittiğini görme olanağınız var. Yazılımın bilgisayarlarındaki kredi kartı verilerini toplayıp hırsızlara gönderiyor diye şüphelenebilmekteler. Öncelikle BOINC altyapısı bu kadar basit amaçlara hizmet edecek kadar basit bir altyapı değil. Sisteme eklenen projeler inceleniyor vs. Ancak yine de ciddi işler yapan projelere eklenebilecek ufak tefek kodlarla böyle şeyler yapılabilir. Tabi BOINC uygulaması buna izin vermeyecektir, kendi alanı dışında bir erişime izin vermeyecektir ama iyi bir hacker neler yapabilir hala şaşırmaya devam ediyoruz. Ayrıca projelerin de aslında Amerika’nın silah üretim deneyleri olduğunu vs. öne sürenler var. Bir kez ABD böyle projeleri adında OPEN – AÇIK ifadesi olan bir platformda yaptırmaz. Kullanıcılar bunları mutlaka fark eder. Örneğin protein katlama (rosetta@home) ya da moleküler dinamik (GPUgrid) hesapları yapan projelerin BOINC klasörlerinde yapılan deney ile ilgili dosyalar bulunur. PDB dosyaları incelenen molekülleri gösterir, Jmol gibi ücretsiz bir yazılımla bile bunu görebilirsiniz. Ayrıca birçok proje yaptığı hesaplarla ilgili görsel canlandırmalar vs. sunuyor. Yani bilgisayarınızda olur olmaz deneyler çalıştırmak çok da olası değil bu ortamda.

WCG Outsmart Ebola Together araştırmalarına katılan bir molekül.

WCG Outsmart Ebola Together canlandırması.
BOINC projesi bu şekilde bilim adamlarına kolaylık ve olanak sağlayan, gönüllülere de bilime katkıda bulunmuş olma hissi verebilen bir proje. Uzun zamandır desteklediğim ve desteklemeye devam ettiğim bir platform. Aslında ilk olarak SETI@home projesi ile çeşitli uzay teleskoplarından veri toplayarak bu verilerin gönüllülerin bilgisayarlarında incelenmesini sağlama amaçlı iken çok ilgimi çekmez ve gereksiz görünürdü. Hani uzaylı arama elektrik faturama eklenecek birkaç liraya değmezdi. Ancak sonrasında proje BOINC altyapısına dönüştürüldü ve pek çok medikal, matematiksel uygulamalar eklendi platforma. Bundan sonra bana oldukça mantıklı gelmeye başlayan bir proje oldu. Şu anda da Alzheimer’dan tutun da Ebola’ya, Zika’ya kadar pek çok hastalığa yönelik araştırmalar yapan projeler var. Uzayın haritasını yapmaktan tutun da kütleçekim dalgalarını arayan projelere; iklim değişikliğini inceleyen projelerden CERN deneylerinde üretilen veriyi inceleyen projelere kadar pek çok proje var BOINC altyapısında. BOINC projesinin Windows, Linux, Mac, Android vs. çoğu platforma yönelik yazılımı var. Bazı sadece Windows ya da sadece Linux seçebilen yazılımları da var.
Projeler direk olarak bir hastalığı tamamen ortadan kaldırabilecek şeyler üretmese de bu yolda veri sağlıyorlar. Proje sonuçları farklı yerlerde araştırma sonucu olarak duyuruluyor ya da projeyi yapan laboratuvar tarafından kullanılıyorlar.

GPUgrid projesindeki bir PDB dosyası modeli.
Ayrıca BOINC altyapısı bitirdiğiniz her bir iş için size belli miktarlarda puan/kredi veriyor. Bu puanın bir şeye yaradığı söylenemez ama genel istatistik ve karşılaştırma amaçlı takip edilebiliyor. Mesela şuan 21,410,737.13 kadar puanım var ve puan sıralamasına göre Türkiye’deki en yüksek puana sahip 20. kullanıcıyım. Dünya sıralamasında ise çook çok gerilerde. Ayrıca RAC (Recent Average Credit) denen son zamanlarda aldığınız ortalama puan da hesaplanıyor ki bu genel performansınızı gösteren diğer bir gösterge; Gridcoin gibi projeler tarafından kullanılabiliyor. Boincstats gibi sitelerden bu verilerinizi takip edebiliyorsunuz.

Boincstats ekranında görünen desteklediğim projeler.
Sonrasında favori projelerimden bahsedeyim.
GPUgrid: Moleküler dinamik temelli Nvidia grafik kartlarının CUDA özelliğini kullarak işlemciye oranla çok daha yüksek işlem kapasitesi gerektiren işler çalıştıran bir proje. Bundan dolayı da CPU işleri birkaç yüz puan verebilirken, bu proje ile 200 bin puana kadar puanlar almak mümkün.
WCG (World Community Grid): CPU temelli IBM destekli bir proje. İçinde pek çok farklı amaçta alt proje barındırıyor. Ebola virüsü, Zika virüsü, AIDS, verem, temiz su sağlama, daha sağlıklı malzemelerden yenilenebilir enerji üretme gibi farklı temalarda projeleri var.
rosetta@home: Protein katlanması esnasında oluşan olumsuzluklar ile ilgili araştırma yürüten bir proje. Alzheimer, Parkinson vs. çeşitli rahatsızlıklar hedefinde.
Poem@home: CPU ve OpenCL vasıtasıyla GPU destekleyen medikal amaçlı bir proje.
Konu ile ilgili linkler: