Yok, bizim Pascal Nouma değil. Muhtemelen artık yürüyemeyecek kadar alkolik olmuştur; bahsettiğim NUMA, Non Uniform Memory Access; ve bunu kullanan işlemciler.
Kernel 2.6′dan bahsetmişken, NUMA’ya ister istemez girdim. 2.6 ile NUMA desteği geliyor. Merak ediyorsanız, alıp eve koyabileceğiniz herhangi bir bilgisayarda NUMA desteği muhtemelen olmayacaktır; eviniz birkaç bin metrekare, siz de Karun’un mirasyedi (ve boş gezenin boş kalfası) evladı değilseniz.
NUMA mimarili işlemcilerde, bizim çok çekirdekli işlemcilerin aksine, ayrı RAM alanları bulunuyor. Bu işlemcilerin herbiri, node (düğüm) adı verilen bir küme içindeler. Bu düğümlerin her biri, işlemci, RAM ve buna erişimi mümkün kılan muhtelif ıvır zıvır silikondan müteşekkil. İşlemciler -doğal olarak!- kendi aralarında konuşabiliyorlar. Bunun bizim kabak tadı veren çok çekirdekli işlemcilerden farkı şu: SMP destekli çok çekirdekli işlemciler, RAM’e ortak bir veriyolu üzerinden erişmek durumda. Her bir çekirdeğin 8 şeritli otobanı olması bir şey ifade etmiyor; zira o yollar eninde sonunda Murphy yasaları gereği(!) asla yeterli olmayan RAM’in 3 şeritli tali yoluna bağlanmakta.
Şu an NUMA desteğine sahip işlemciler, NEC’in şu meşhur süperbilgisayarında bulunan işlemciler. Ve de diğer büyükbaşlar.
Merak ettiğim şudur; bu şirketlerin zaten yıllardır kendi UNIX sürümleri mevcutken, neden Linux kerneline NUMA desteği koyulsun diye kastırırlar? Bunun çok pahalıya patladığından da şüphem yok; zira bahsettiğim bilgisayarlar bir kasabanın elektrik tüketimi kadar elektrik harcıyorlar. Üstelik mimarileri haddinden fazla karışık ve zaten doğru dürüst de bilinmediğinden, kernel’e o değerli kodları koyan abi/ablalar (abla olduğundan şüpheliyim) herhalde bu işi sevabına yapmadılar. (Dünyada o aletleri sistem düzeyinde programlayacak 100 kişi olduğundan şüpheliyim). Üstelik, sigara paketinin arkasında C ile kod yazıp “al bunu yaz, kesin çalışır” denmediği de ortada.
Hemen bu işin arkasında IBM’i arıyorum doğal olarak. Daha piyasaya çıkmadan, Playstation 3′deki Cell işlemcisinin aslında sunucu/süperbilgisayar alanında büyük bir fark yaratabileceğini sıkılmadan defalarca yazdım. Üstelik, Playstation 3, en az para kazandıran Playstation modeli. Bizde ABD fiyatının iki katına satılsa da, (dış mihrak aramayın yahu, dost kazığı!) Playstation 3, işlem gücüne göre çok ucuz bir alet. IBM, son araştırdığımda Cell işlemcili sunucular üretmek için hazırlıklara başlamıştı.
Aslında IBM, bir iki manevrayla, hem oyun, hem de masaüstü PC pazarını kolayca değiştirebilir. Senelerdir, DirectX’in yerini alacak bir oyun API’sinin (“oyun” ile kısıtlayarak aşağıladım, özür dilerim, idare edin!) olmaması, Microsoft’un en büyük silahı. Artık sadece GNU/Linux üzerinde değil, Solaris gibi daha “fantezi” işletim sistemlerinde bile çok kaliteli programlara sahibiz. Gelgelelim, iş oyun oynamaya gelince, ister istemez herkes Windows kurmak zorunda kalıyor. Bir de, Cubase filan gibi sadece Windows ve Mac OS üzerinde çalışan programlar var -Adobe’un tüm serisi neredeyse sorunsuz GNU/linux üzerinde çalışabiliyor- ama onların kullanıcı kitlesi zaten sınırlı. Ama oyun ciddi bir sorun. Geliştiriciler Direct X’i seviyor. Birincisi, programlaması kolay. İkincisi, OpenGL’in aksine, sadece bir grafik API’si değil; içinde sesten joystick kontrolüne kadar birçok ıvır zıvır var. (Gerçi işin içine EAX filan girince, hadise ıvır zıvır kategorisinden çıkıp “bilim” haline geliyor). OpenGL+SDL de bir alternatif tabi; ama iki ayrı araç kullanıyorsunuz ve SDL, DirectX’in ses API’lerinin olgunluk,performans ve özellik setine sahip değil.
Geçenlerde EA Games’in üst rütbeli yöneticilerinden birisi (OYAK gibi oldu!) bir açıklama yaparak, cross platform bir oyun API’sine “gerek olduğunu” söyledi. Bunu Electronic Arts telaffuz ettiyse, “her platformda çalışacak oyun API’leri tiz yapıla!” olarak algılayabiliriz. Sony ve IBM’de bu işe yeşil ışık yakıp, rivayete göre programlanması son derece zor olan Playstation 3′ü open source hale getirirse, öncelikle tüm rakip konsolları piyasadan silerler. Buna Sony kadar, Microsoft’u sevmemesi hiç de haksız olmayan IBM’de sevinir. (OS/2 ve “fason” verilen DOS işinden zengin olmaları bile Microsoft’dan hoşlanmamaları için yeterli neden; hadi Lotus paketinin akibetini filan katmayalım işin içine). Daha sonra IBM ve Sony’nin yapmaları gereken tek şey, geliştiricilere birkaç milyon dolar gibi cüzi bir para saçmak. Ondan sonra herşey çok kolay ve güzel olacaktır.
Yine NUMA’ya dönecek olursak, şayet IBM bu işleri sallamaz da yaparsa, masaüstünde GNU/Linux iyiden iyiye yayılır. Üstelik, x86′da çalışma gibi bir zarureti de olmadığından, IBM ve iş ortakları, kısa birsüre içinde Cell işlemcili masaüstü bilgisayarları satmaya başlayabilirler. Tek bir hamleyle hem sunucu pazarında çok iddialı duruma gelecekler, hem Microsoft’u ağır zarara uğratacaklar, hem de işlemci üreticisi olarak AMD ve Intel’i çok ciddi biçimde rahatsız edecekler. Cell’i de biraz daha geliştirirlerse, NUMA destekli, gerçek bir süperbilgisayar gücünde blade server’lar görmeye başlayabiliriz. Hem de çok ucuz fiyata.
Ama benim bildiğim IBM, bu fırsatı da kaçırır!


