"Veri Bilimi"(Data Science) tüm dünyada şu anda sıkça dile getirilen, son zamanlarda Türkiye'de de içi bir türlü doldurulamasa da sürekli bahsedilen bir kavram. İnternet üzerinden veya günlük hayatımızdaki çeşitli dijital araçlarla insanların ya da herhangi bir sistemin ürettiği veriler sürekli toplanarak bir yerlerde toplanıyor. Bunlar DnR'dan aldığınız kitapların listesinden, internette tıkladığınız reklamlara, arabanızın yakıt kullanım bilgisinden, kameralarla gözlenen şehir trafiği verilerine kadar oldukça çeşitli alanlarda olabilir. Veri kavramı her ne kadar yeni bir şey olmasa da konunun dönüp dolaşıp 'Büyük Veri' ve 'Veri Bilimi' gibi slogan kelimelerle ifade ediliyor olmasını sağlayan iki temel gelişme söz konusu: birisi verilerin günümüzde artık gelişen teknolojilerle çok kolay bir şekilde ve devasa ölçeklerde toplanıp oldukça ucuz bir maliyette depolanabiliyor olması, ikincisi gelişen bilgisayar performansı sayesinde bu verilerin etkili bir şekilde istatistiksel analizlerden geçirilerek bunlardan işe yarar, anlamlı bilginin çıkarılabilir noktaya ulaşılması. Okulun başında tekrar edilençok önemli bir nokta vardı: bilimin ilk zamanlarında teori ağır basıyordu, ardından gelişen gözlem araçları ve teknikler sayesinde deney ön plana çıktı, sonrasında gelişen bilgisayarlarla simulasyon büyük önem kazandı, son olarak da günümüzde yaşanan dönüşümle veri tüm bilim yapma süreçlerini yönlendirir noktaya geldi.
GridKa okulu özellikle bilimsel deneylerde ortaya konan devasa ölçekteki verilerin günümüz modern bilgisayar sistemleri ile efektif bir şekilde depolanıp, analize hazır hale getirilmesi ve en nihayetinde teknik analizlerinin yapılması konusuna eğiliyor. Burada bahsi geçen deneylerin en başında CERN'deki ATLAS, CMS, LHCb gibi neredeyse sürekli çalışarak saniyede terabaytlarca veri oluşturan dev ölçekli deneyler geliyor. Bunlara başka örnek örneğin insan genom örnekleri üzerinde yapılan biyoinformatik çalışmaları ya da Dünya etrafındaki uyduların sürekli gözlemleri sonucunda elde edilen haritalardan yola çıkarak yapılan jeoloji çalışmaları verilebilir... Listeyi uzatmak mümkün çünkü artık bilgisayarlar modern bilim pratiği içinde hayati bir rol oynuyorlar ve bunlarla elde edilen büyük ölçekli verilerin eldeki imkanlarla nasıl depolanacakları, bunlara nasıl erişileceği, güvenliğinin nasıl sağlanacağı, nasıl analiz edileceği gerçekten oldukça büyük problemle haline gelmiş durumda.
GridKa okuluna Almanya'da geçmişte nükleer enerji araştırmalarında oldukça aktif bir rol oynamış Karslruhe Teknik Üniversitesi'nin ve diğer ilgili kurumların insiyatifiyle oluşturulmuş Karlsruhe Teknoloji Enstitüsü(KIT) ev sahipliği yapıyor. Programın yapısı sabahtan dört konuşma, öğleden sonranın tamamı da uygulamalı workshoplara ayrılmış durumda. Okulun en hoşuma giden tarafı, konunun doğası itibariyle kaçınılmaz olanı bir şekilde başarmış olması, hem akademi hem de endüstriyi bir araya oldukça dengeli bir şekilde getirmiş olması. Yapılan sunumlar ve uygulamalar arasında bu konuda araştırmalar yürüten üniversite ve araştırma enstitülerinden hocaların yanında, Amazon, Hitachi, Nvdia gibi endüstri devlerinin de aktif katkıları yer alıyor. Bütün seminerlerin üzerinden geçmek mümkün değil elbette, daha çok uygulamalar üzerinden kısa notlar paylaşmayı planlıyorum.
İlk gün öğleden sonra başlayan program açılış konuşmaları ve konuya genel bir giriş yapan oturumlarla başladı. Bu oturumlardan birinde CERN'den bir grubun yakın zamanda geliştirdiği Jupyter üzerinden yüksek enerji fiziğinde veri analizi için geliştirilen ROOT programını bir servis olarak kullanılmasını sağlayan SWAN projesinden bahseden bir sunum vardı. Bu projeden öncesinde haberim olmuştu fakat burada bizzat geliştiricilerinden dinleyip yarını da uygulamasına katılmak benim için büyük bir fırsat oldu.
Jupyter ile oluşturulmuş bir Python uygulaması örneği; daha detaylı bir örneği incelemek için tıklayınız.
Uygulamada bize sağlanan deneme hesaplarıyla (ki internet sitesinden bir yıllık ücretsiz deneme üyeliği alabiliyorsunuz) sisteme bağlanıp öncelikli olarak kendimize üzerinde Linux işletim sistemi çalışan bir bilgisayar oluşturup üzerine bir web sunucusu ve veri tabanı oluşturduk. Ardından daha büyük çaplı, birden fazla bilgisayardan oluşan bir cluster oluşturup bunun üzerinde Amazon'un bu mimari üzerinde çalışması için Alces Flight'ın geliştirdiği uygulamalardan biri ile, bir akışkanlar dinamiği problemini çözdürdük. Hesaplamalı Akışkanlar Dinamiği (Computational Fluid Dynamics - CFD) olarak bilinen alandaki problemler, oldukça karmaşık denklemleri ve zor sınır koşulları nedeniyle ancak yüksek performanslı bilgisayarlar tarafından çözülebiliyorlar ve Amazon'un sunduğu bulut sistemi bu tip bir problemi çözmek için ideal bir ortam. Normalde böylesi bir problemi çözebilmek için ancak bir süperbilgisayara erişime sahip olan şanslı bir akademisyen olmanız gerekirken oturduğumuz yerde sadece 40 dakikada web tarayıcımızdan bunu yapmayı başardık, ki öncesinde sistemi nasıl kullanacağımızı dahi bilmiyorduk.
Üçüncü gün katıldığım uygulama ise yüksek performanslı bilimsel hesaplamada gittikçe yaygınlaşan bir yöntem olan ve bilgisayarların grafik kartları ile aynı aileden olan GPU (Graphical Processing Unit)'leri hesaplama için kullanma yöntemi üzerineydi. Özellikle NVDIA'nın başı çektiği bu alanda GPU'ların içindeki yüzlerce çekirdek sayesinde aynı anda birden fazla işlemi yüksek performansla yapabilme becerisi için oldukça uygun mimarileri bilimsel hesaplama türü işler yapanların ilgisini çekmiş ve sonuçta bu alanda standart bilgisayar işlemcileri CPU'ların yerini GPU'lar almış durumda.
Mythbusters ekibinin CPU ve GPU karşılaştırması yapan ilginç bir videosu
Birden fazla işlemi CPU üzerinde birden fazla çekirdekle paralel bir şekilde gerçekleştirme konusunda geçmişte biraz deneyimim vardı fakat GPU'lar benim için tamamen yeni bir şey. Programlama için NVDIA'nın C++ tabanlı Cuda programlama arayüzünü kullandık ve CERN'de CMS deneyinde çalışma yürüten bir araştırmacı ile birlikte beş saatin üzerinde bir uygulama gerçekleştirdik. Yaptığımız örnekler için KIT'nin süperbilgisayar kompleksinde her kullanıcı bir GPU ayrılmıştı, bunlara terminalden uzaktan bağlanarak yazdığımız kodları bizzat GPU üzerinde deneme fırsatımız oldu. Sonuçta fiziksel olarak işlemci süreçlerini kontrol ettiğiniz için kaçınılmaz olarak 'düşük seviye' bir programlama yapmanız gerekiyor, bu da işlemcinin tüm bileşenlerini kontrol etmek için ayrı ayrı kod yazmanızı gerektiriyor. En son elektronik okuduğum dönemlerden kalma mikroişlemci programlarken yaptıklarımızı çağrıştırdı yaptıklarımız. Yaptığımız uygulamalardan birinde örneğin 512 elemana sahip iki vektörü tek bir adımda topladık. Normalde karşılıklı her bir elemanı alıp toplayarak gerçekleştirilen bu işlemi, GPU üzerinde oluşturduğumuz paralel 'işlemciler' (thread) sayesinde senkronize bir şekilde yapabildik. Yapay öğrenme problemlerinde olduğu gibi milyonlarca parametre tuttuğunuz vektörler üzerinde yapacağınız işlemleri böyle bir paralel süreçten geçirdiğinizde performans artışı müthiş bir seviyede oluyor. Yapay sinir ağları ve derin öğrenme uygulamaları konusunda GPU'lar fazlasıyla kullanılıyorlar zaten.
Tüm bu uygulamarı göz önüne alınca gelinen bu nokta müthiş bir şey. Devasa bir devrim yaşanıyor şu anda. Bu konular artık yüksek sesle tartışılıyor, bunlar üzerine sistemler geliştirilip son kullanıcıları eğitmek için bu toplantı gibi birçok okullar düzenleniyor. Çünkü yaklaşan geleceğin farkında insanlar ve buna uyum sağlamak gerekliliğinin de... Konferanstaki uygulamalardan bahsettim sadece ama diğer yarısında da Alman Uzay Ajansı DLR'ın geliştirdiği otonom arabalardan, IBM'in sinir ağlarını modelleyerek oluşturdukları fiziksel yapay sinir ağları Synapse çiplerine, Hitachi firmasının Japonya ve Almanya'daki tren sistemlerini kontrol etmek için verileri kullanarak geliştirdikleri müthiş kontrol sistemlerinden, CERN'deki verilerin nasıl tutulup işleme hazır hale getirildiğine kadar her bir konuşmayı veren alanının en üst seviye insanlarından birbirinden kafa açıcı şeyler öğrenme fırsatım oldu. Büyük ölçekli bilimin nasıl bir şey olduğunu ve bununla birlikte gelen verinin depolanma, işlenip hazır hale getirilme ve analiz süreçlerinde yeni yaklaşımları görme fırsatım oldu.
Okulun yoğun programı nedeniyle şehirde pek gezme fırsatım olmadı maalesef; çok büyük bir şehir değil Karlsruhe fakat oldukça ilginç bir yapıya sahip. Şehrin tam ortasındaki şatonun etrafında daireler şeklinde genişleyerek oluşturulmuş. KIT'nin kuzey kampüsü şehrin biraz dışında, her sabah servisle 20 dakika gidiyoruz, akşam programlarıyla birlikte ancak 21:00-22:00 gibi dönüyoruz ki bu saatler tipik bir Avrupa şehrinin çoktan ölüm sessizliğine büründüğü saatlere karşılık geliyor.
Şehre indiğim gibi ana tren istasyonundaki büyük dergi mağazasına girerek almaya sabırsızlandığım Almanca dergilerimi raflarda aramaya başladım. Ne yazık ki Türkiye'de artık yayınlanmayan ve orijinalinden okuyabilmek için Almanca öğrenmeyi dahi göze alabileceğim kadar sevdiğim GEO dergisi rafını bulduğumda karşıma çıkan manzara nefesimi kesmeye yetti. Biz bir tane GEO'yu bulamazken burada bir ayda yedi-sekiz tane yayınlanıyor. Bunlar dışında astronomi dergisi Sterne und Weltraum, bilim dergisi Spektrum der Wissenschaft ve Almanca öğrenenler için özel hazırlanan dergi Deutsch Perfekt'i de hemen aldım, bunlar beni birkaç ay oyalar zaten.
Oldukça yorucu fakat bir o kadar verimli geçen bir haftayı kapatıyorum böylece; bu yazı CERN Günlükleri'nde 'Yedinci Hafta' yazısı yerini alacak. Haftasonu Karlsruhe'den Münih'e geçip biraz şehri keşfedip Cenevre'ye dönüyor olacağım. Önümüzdeki hafta CAST veri alımı nöbetleri ile neredeyse her gün sabahın dördünde kalkacağımı düşündükçe şu günlerimin değerini bilmeye çalışıyorum! Haftaya 'Sekizinci Hafta' raporunda görüşmek üzere!
1 yorum:
Yazılarınızı sürekli takip ediyorum, yaptığınız tüm bu bilgilendirmeler ve yol gösterici tavsiyeler için benim gibi meraklı arkadaşlar adına çok teşekkür ediyorum. Yeni yazınızı merakla bekliyorum , iyi çalışmalar :)
Yorum Gönder