Oğuz Eser / TIMETURK
İşlemci sektörü son yıllarda çoklu-çekirdek modeli üzerine yoğunlaşıyor. Ne yazık ki yüksek fiyatlarına rağmen, yeni nesil işlemciler, oyun gibi uygulamalar hariç çok büyük bir hız farkı yaratamıyor. Örneğin, standart bir bilgisayar kullanıcısının, MS Office ve internet için dünyanın parasını verip 4-çekirdekli işlemcili bir bilgisayar alması boşuna bir yatırım olacaktır. Bu anlamda bilgisayar sektöründe bir sıkışmadan ve tıkanıklıktan söz etmek mümkün.
Bu hafta içerisinde TIMETURK?te, ?Türk araştırmacının büyük başarısı? başlığıyla duyurduğumuz Arizona Üniversitesi?nden Yrd. Doç. Dr. Ali Akoğlu ile e-posta yoluyla söyleşi yapma imkânı bulduk. Bizleri kırmayan ve sorularımızı içtenlikle yanıtlayan Akoğlu, bilişim ve elektronik sektörünün trendleriyle ilgili önemli ipuçları verdi.
Günümüzdeki programlama dillerinin dolayısıyla da uygulamaların donanımdaki hızlı gelişmenin ardında kaldığını söyleyebilir miyiz? Bir tür yazılım paradigması değişimi arifesinde mi bulunuyoruz?
Bu aslında bizi seri düşünmeye zorlayan programlama dillerinin bir sonucu. Seriden kastım işlemcilerin birbirleriyle seri bağlı olarak kullanımı. İşlemci ve bellek hızlarındaki gelişmelere bakarsak ikisi arasındaki farkın her sene daha fazla açıldığını görürüz. Yani ne kadar hızlı işlemci tasarlarsak tasarlayalım, bellek hızı işlemci hızının gerisinde kaldığı sürece verim alamayız.
Bu, bir bakıma, 3GHz?den 4GHz hıza erişmek için yapılması gereken yatırımın ve ona ayrılacak mühendislik zamanın ne kadar az geri dönüş getireceğinin de bir göstergesi. Bu nedenle artık Multi-Core adı verilen yeni çok çekirdekli sistemler ortaya çıkıyor. Bunun en güzel örneğini 'IBM-Cell' işlemcisinde görebiliriz.
IBM-Cell tasarımında 8 tane işlemci var. Bunu 16 hatta 32 yapabiliriz fakat işlemciler aynı anda çalıştığında harcanan güç inanılmaz yüksek. Bu tür yollar bize ancak geçici çözümler verir. Bizi seri yapıda düşünmekten uzaklaştıracak yeni modellere ihtiyacımız var.
Genel olarak bilgisayar teknolojisinin en önemli sorunları nelerdir?
Günümüz masaüstü bilgisayarlarında programlar çalışırken zamanın çoğu işlemci ile bellek arasında data transferiyle ve beklemesiyle geçiyor. İşlemci sürekli bellekten veri gelmesini bekliyor. Çünkü belleğin hızı işlemcininkinden çok daha düşük. Son 10 yılda bunu azaltmak ve önlemek için birçok teknikler geliştirildi fakat her bir yenilik işlemcinin üzerine ek yük getiriyor ve hantallaşmasına, daha çok güç harcamasına neden oluyor. Bu bizi daha çok seri yapıda bir dünyanın içine hapsediyor diye düşünüyorum.
Ne kadar güçlü olursa olsun işlemciler, yazdığımız programlar hafıza ile arasındaki bilgi transferi ile vakit harcıyor. Bizi fonksiyonel düşünmeye sevk edecek programlama dilleri ancak bunu kırabilir.
Bu düşünce tarzıyla yazılan programlar ileri seviyede paralelleştirilebilir. Tabi bu fonksiyonları koşacak devreler de onunla birlikte tasarlanmalıdır. Buna olanak sağlayan devrelerden bir tanesi Field Programmable Gate Array (FPGA) diyebiliriz. Bir algoritmadaki en çok tekrar eden işlemi yürütecek bir devreyi N defa kopyalarsak N defa hız kazanmak mümkün. Seri çalışan masaüstü bilgisayarlarında bu ancak bir yere kadar mümkün (Dual-Core, Quad-Core gibi makineler).
Nasıl bir programlama düşüncesi gerekiyor?
Sürekli tekrar eden işlemleri Lego bloğu olarak görüp, sonrasında algoritmayı ortaya çıkarmamızı sağlayacak programlama yaklaşımına ihtiyacımız var. Her bir Lego bloğunu sıfırdan yaratma usulüyle çalışan seri programlama dilleri bu yaklaşımın tam zıddında kalıyor.
İç içe iki döngü düşünelim. Her bir döngü 10 kere çalışsın. Bu demektir ki 100 kere bu döngüler çalışacak. Bunların içinde yaptığımız işlem basit bir toplama olsun. Her bir toplama işlemi bir birim zaman harcasın.
Masaüstü makinelerde bu toplam 100 birim zaman alacak demektir. Eğer iki tane makine yan yana koyarsam bu zamanı yarıya indirmek mümkün. Eğer yüz tane işlemciyi yan yana koyarsam bir birim zamanda işlemler tamamlanır.
İste bizim seri dünyada paralelleştirmemiz ancak böyle mümkün oluyor. Ya da ayni işlemci içine toplama yapacak 10 tane ünite koyabiliriz hatta 100 tane ünite koyabiliriz ve yine bir birim zamanda işlemi tamamlarız (Dual-Core, Multi-Core vb.) . Fakat her program 100 tane ünite istemeyebilir. Belki kimi programların en fazla 10 tane ihtiyacı olacak.
Bu durumda kalan üniteler çok değerli bir alanı işgal etmiş olacaklar. Hâlbuki ihtiyaca göre konfigürasyonunu değiştirebileceğimiz bir sistem, yerine göre 10 yerine göre 100 toplama işlemi yapabilecek şekilde çalışırsa algoritmanın ihtiyacına göre tek devrede paralelleştirmek mümkün. İşte FPGA bunu sağlıyor bize.
?Field Programmable Array (FPGA)? kavramını biraz açar mısınız?
Masaüstü bilgisayarlarında her türlü algoritmayı koşabiliyoruz işin güzel tarafı. Fakat işlemler, entegre devrelere göre hızları çok yavaş kalıyor. Entegre devreler de sadece ne için tasarlandıysa onun için çalışıyor. Yani her yeni görev (algoritma) için yeni bir devre tasarımı gerekir. Bu da yüksek maliyet demek. FPGA, işte bu iki dünya arasında bir köprü, iki dünyanın iyi taraflarını alıyor. Hem tekrar programlanabilir olması nedeniyle bir genel amaçlı işlemci gibi hem de entegre devreler gibi son derece yüksek performans verebiliyor.
ALİ AKOĞLU
Hem genel amaçlı işlemciler gibi her programı koşabilen hem de entegre devreler kadar performans sağlayabilen iki kutup arasında bir orta yol diyebiliriz FPGA için. Aynı devreyi önce görüntü işleme amaçlı bir algoritma koşacak şekilde programlayıp sonra kriptoloji algoritması koşmak için tekrar programlayabilir ve her bir algoritma için masaüstü dediğimiz genel amaçlı bilgisayarlardan çok daha yüksek performans (hız anlamında) alabiliriz.
Elde edilen hız FPGA devrelerinin kendiliğinden (doğal) paralel olmasından kaynaklanıyor. Fonksiyonel olarak tasarlanan bir algoritma için her bir fonksiyonu FPGA üzerinde kopyalayıp (N defa örneğin), N defa hızlı çalıştırmak mümkün. Hâlbuki seri işlemcilerde yahut genel amaçlı işlemcilerde bu ancak seri şekilde N defa bu fonksiyonu koşmakla mümkün. Tabi bu işlemciler birçok optimizasyonla geliyor fakat bunlardan elde edilen hızlandırma bizi sadece daha fazla seri yapıda düşünmeye sevk ediyor.
NASA'da kullanılan teknolojilerin daha sonra günlük hayatımıza girmesi yeni bir şey değil. Projenizin son kullanıcı ve genel bilişim ve elektronik endüstrisine yansımaları nasıl olabilir? Nerelerde kullanılabilir?
En kısa vadede uygulama olarak otomotiv sektörünü görüyorum. FPGA bazlı tasarımlarda şu an için en büyük sorunlardan biri kullandıkları güç. Bu nedenle düzenli bir güç kaynağı gerekiyor. Hem otomobilin performansı için kritik olan elektronik devrelerinde hem de sürücü/yolcu için çeşitli konfor amaçlı devreler için tekrar programlanabilir devreler çok cazip.
Bir sonraki adım, mobil cihazlara geçiş diye düşünüyorum. Özellikle cep telefonları en çekici alan. Çok amaçlı olarak kullandığımız cep telefonları için, FPGA?in var olan sorunları aşıldığında (güç kullanımı, yeniden yapılandırma zamanı gibi), yüksek kalitede video ve görüntü işleme gibi işlemleri gerçek zamanda yapmamızı sağlanabilecektir. FPGA artık günümüzde hızlandırıcı özelliği nedeniyle yüksek performanslı sistemlere entegre edilmeye başladı. (Cray, SGI, Nallatech gibi şirketler). FPGA devrelerinin kapasitelerinin son yıllardaki artış hızı daha kompleks algoritmaların bu devreler üzerinde yüksek hızda koşulmasına olanak sağlıyor. Bu nedenle son yıllarda özelikle moleküler modelleme, akışkanlar dinamiği gibi alanlarda uygulamalar yoğunlaştı.
NASA?daki projenin bundan sonraki adımları nedir? Proje ne zaman sonuçlanacak?
İlk prototipimizdeki amacımız hem devrenin hem de kurulan bağlantı ağının (beş üniteden oluşan bir sistem) kendi kendini tamir edebileceğini göstermek. Projenin ilk ayağı ağustos ayında bitiyor.
Bir sonraki hedefimiz kamera-FPGA-telsiz ile oluşturulan her bir üniteyi birer robotun üzerine yerleştirip mobil ortamda robotların bir grup olarak belli bir amaç için çeşitli talimatları yerine getirmeleri. Bunu yaparken de bir devrede hata olduğunda kendini tamir etmesini ve tamir edemez duruma düşerse diğer ünitelerden birinin ölen ünitenin ödevini alıp işlemi yürütmesini sağlamak.
2009 ortasında amacımız bir takım istatistikî verilere dayanarak devrede olabilecek hatayı önceden tahmin edip ona göre erken önlem almak ve bu işlemleri otomatik olarak yönetmek. Böylelikle hiçbir kesinti olmadan devrenin çalışabilirliğini sürdürebileceğiz. Üniversitemin astronomi ve optik alanlarında çok güçlü bir altyapısı var, bu nedenle NASA için stratejik bir öneme sahibiz. Bu bizim çalışmalarımızın pratiğe dökülmesi için çok önemli bir basamak oluşturacak yakın gelecekte. Elbette en son hedefimiz ve hayalimiz geliştirdiğimiz yöntemlerin gerçek bir araç üzerinde çalıştığını görmek.
İçinde bulunduğunuz başka projeler var mı? Bilgi verebilir misiniz?
NSF (National Science Foundation), üniversitemin liderliğindeki benim de katıldığım ortak bir projeyi desteklemeye başladı. Proje yılda 10 milyon dolar ve beş yıllık ve sonrasında bir beş yıl daha uzatma opsiyonu var (http://www.iplantcollaborative .org/). Bu projede 'Computing Infrastructure Team' içinde yer alıyorum (http://www.iplantcollaborative .org/about-ipc/principal -personnel).
Örneğin, fotosentez olayının bilgisayar ortamında simülasyonunu gerçekleştirmek ve doğal parametrelerin değişmesinin fotosentez hızına etkisini çalışmak son derece zor. Bir deneyin sonucunu günlerce bekleyip sonra parametreleri değiştirip deneyi tekrar koşmak bilimsel çalışmaların kalitesini son derece olumsuz yönde etkiliyor ve detaylı, gerçekçi analizlerin yapılmasını son derece zorlaştırıyor. FPGA bütünleşik sistemleriyle benzer deneylerin çok daha hızlanması mümkün olacak. Böylece, daha önce analizini hayal bile edemediğimiz, parametreleri bilgisayar ortamında değerlendirip birçok hipotezi çok daha kısa sürede çalışabileceğiz. Sadece bu açıdan bakarsak bile FPGA bazlı sistemlerin bilimsel çalışmalar için çok umut veren bir potansiyeli olduğuna inancım son derece yüksek.
?Fotosentez nasıl çalışıyor? Yağmur suları denize nasıl ulaşıyor?? gibi soruları bilgisayar ortamında çalışmak ve analizleri hızlı şekilde yapabilmek günümüzde küresel ısınma dahil doğal kaynaklarımızın geleceğine ilişkin bir çok önemli soruya gerçeğe yakin tahminler yapmamızı sağlayacaktır. Bu da bizim erken tedbir almamız açısından çok önemli bir rol oynayabilir.
Bu tür projeler bir anlamda da bilişim teknolojilerin de trendlerini göstermesi açısından önemli. Bu anlamda sektörün nereye gittiğini düşünüyorsunuz?
Daha önce de belirttiğim gibi artik bilgisayar sektörü bir tıkanma noktasına doğru gidiyor. Masaüstü kullanıcısı açısından 3GHz bir makine ile 5GHz makine arasında çok bir fark hissedilmez. Gündelik ofis programları çalıştıran biri için örneğin 600 dolar fazla verip 3GHz den 3.5GHz bir makineye geçmek hiç mantıklı değil. Fakat ben üretici olarak bu kadar bir geliştirme için milyonlarca dolar yatırım yapak zorundayım. Artık bu alanda yapılan yatırımın geri dönüşü çok azaldı. Bu nedenle bakarsanız IBM son kullanıcı kısmını Lenova?ya sattı. Şimdi sunucu üzerine yoğunlaştı.
Çünkü artık en büyük sorunlardan birisi tüm bu simülasyonlardan sonra ortaya çıkan data?nın nerede nasıl depolanacağıdır. IBM, yeni teknolojilerle birlikte bu veri patlaması altında ezilmemek ve eldeki verileri analiz edebilmek için yeni sistemler geliştirmek üzerine yoğunlaştı. Intel e bakarsak, artık işlemci üzerine değil Home-Entertainment, grafik kartları, network işlemcisi gibi değişik pazarlara açılma yolunda çalışıyorlar. Çünkü onlar için 4 yıl öncesi itibariyle genel amaçlı işlemci üzerine yatırımlar azaldı. Şimdi bakarsanız daha çok özellikli alanlara yönelik tasarımlara yatırım yapıyorlar.
Sadece bu iki örnekten yola çıkarak benim vardığım sonuç şu: Tıkanmayı aşacak yeni nesil işlemciler için öncelikle işlemcilere bakış felsefemizi değiştirmemiz gerekiyor. Seri yapıda düşünme tarzından uzak fonksiyonel düşünmeye dayanan platformlar ve bunu etrafında çalışan yazılımlara ihtiyacımız var. Bu yönde biyolojik kaynaklı nano-teknoloji, organik nano-materyallerle tekrar konfigure edilebilir devrelerin buluştuğu sistemler yakın gelecekte gerçekleşecek diye düşünüyorum.
Bu projede Türkiye'de birlikte çalıştığınız üniversite ya da araştırmacılar var mı? Projenin Türkiye?de ne tür yansımaları olabilir?
Bu proje üzerinde ODTÜ Enformatik Enstitüsü?nde geçtiğimiz kış Enstitü Müdürü Prof. Dr. Nazife Baykal hocamızın davetlisi olarak bir seminer verdim. Ziyaretim sırasında ODTÜ Teknokent?te bulunan şirketlerle de görüşme fırsatım oldu. Ortak projeler üzerinde çalışmak için çok büyük potansiyel görüyorum.
Elbette en çok hayal ettiğim, yapmak istediğim islerden bir tanesi sahip olduğum altyapıyı bana veren ülkeme gönül borcumu bir şekilde ödemek. Gerçi bu borcun ödenmesi mümkün değil ama ortak projelerle birikimlerimizi paylaşmak, bu yeni ve umut vaat eden teknolojiye dayalı araştırmalar yapmak, daha da ötesinde birlikte ortaya elle tutulur ürünler çıkarabilmek beni çok mutlu eder.
Ali Akoğlu kimdir?
Türkiye?de doğan Ali Akoğlu, 1994?teki ÖSYS?de başarısının ardından (76.) MEB bursuyla Purdue Üniversitesi?ne gitti. Bilgisayar Mühendisliği Bölümü?nden mezun olan Akoğlu, Arizona Üniversitesi Bilgisayar Bilimleri?nde yüksek lisans ve doktora dereceleri aldı. Halen Arizona Üniversitesi?nde Yrd. Doç. olarak dersler veren Akoğlu, uygulama özel mimarili yeniden yapılandırılabilir bilgisayarlar sistemleri üzerine çalışıyor. Akoğlu?nun ayrıca 3 patenti bulunuyor.