9 Eylül 2012 Pazar

Stored Procedurelere Giriş


Bu yazimda SQL server’lardaki stored procedure’lerden bahsedecegim. Stored procedureler SQL server’da saklanan, sql ifadelerini barindiran metotlar gibi düsünülebilir. Veritabani programlamaya ilk baslayanlar SQL ifadelerini kullandiklari programlama dilinde yazarlar(c#, vb,…). bu ilk ögrenim için uygundur ancak gerçek hayattaki projelerde SQL ifadeleri stored procedurelerde saklanir. Stored procedureler bir kere derlenirler ama programlama dilindeki SQL ifadeleri program her çalistiginda tekrar derlenir ve bu da bir zaman kaybi demektir. Diger yandan kullandigimiz dilde yazdigimiz SQL ifadelerinin dogru veya yanlis oldugunu o dil anlayamaz, dogru kabul eder ve derleme asamasinda hata meydana gelmez, ama o satir isletilecegi zaman yani runtime’da hata verir ve bu da programlama açisindan kötü bir durumdur. Stored procedureler SQL server’da yaratildiktan sonra derlenir ve hatali olup olmadiklari orada anlasilabilir.
Simdi basit bir stored procedure örnegi yapalim.
Create procedure deneme
As
Select * from denemetablosu
Go
Bu procedure anlasilacagi gibi veritabanimizdaki denemetablosu isimli tablodan bütün verileri çeker. SQL cümlesini istedigim kadar kompleks hale getirebiliriz. Zaten Stored procedurelerin amaci karmasik SQL cümlelerini SQL’de saklayip hep onu kullanmamizdir.
Daha önceden olusturdugumuz bir stored Procedureu çalistirmak için procedure_ismini “örnegimizde deneme” yazip Execute dememiz yeterli olacaktir. Böylece denemetablosunda ne kadar veri varsa onlari görebiliriz.
Stored procedureler metotlar gibi parametre alabilir ve deger döndürebilirler.Simdi onunla ilgili basit bir örnek gösterelim.
Create procedure deneme(@deneme_ad nvarchar(50),  @ deneme_soyad  nvarchar(50))
As
Select * from denemetablosu where AD=@deneme_ad and SOYAD =@deneme_soyad
Go
Bu örnek veritabanimizda kayitli olan denemetablosu isimli tablonun AD ve SOYAD kolonlarini kontrol ediyor ve eger aradigimiz ad ve soyadda kayitlar varsa onlarin bütün kolonlarini bize gösteriyor.
Bu procedure’ü kullanmak için de procedure’ün adini yazip yanina alacagi parametreleri çift tirnak içinde yazmamiz ve execute tusuna basmamiz yeterli olacaktir.
deneme “Emrah”,”Koçak”
bu satir isletildigi zaman bize ad sütununda Emrah ve soyad sütununda Koçak olan bütün verileri gösterir.
Eger procedure’ümüz sayisal bir deger aliyorsa (int, decimal gibi) o zaman çift tirnaga gerek yoktur.
Simdi bir de return degeri ile ilgili biraz bilgi vermek istiyorum. Stored procedureler zaten select komutuyla bize verileri getirirler ama bazen return degerine ihtiyaç duyariz. Mesela veritabanina kayit yapmak istiyoruz ve kullanici adini belirleyici özellik olarak atadik yani her kullanici adi birbirinden farkli olmali. Simdi böyle bir veritabanina veri girmek istiyoruz ve kayit isleminin olup olmadigini da bilmek istiyoruz diyelim. Burada stored procedurelerin bir özellginden daha bahsetmek istiyorum, stored procedurelerde diger dillerdeki gibi if, else, next, count gibi deyimleri de kullanabiliriz ve degisken tanimlayip onlara deger atayabiliriz. T-SQl’de degiskenler baslarina “@” ifadesi konularak tanimlanir. Simdi yukarida anlattigim gibi bir veritabani için kayit procedure’ü yazalim. Tablomuzun adi KAYIT olsun. 3 tane kolonu olsun:
KULLANICI_ADI, AD, SOYAD
Create procedure KAYITYAP(@KADI nvarchar(50),
@AD nvarchar(50),
@SOYAD nvarchar(50))
AS
Declare @kayitkontrol int
Declare @sonuc int
Set @kayitkontrol=(select count(*) from KAYIT where KULLANCI_ADI=@KADI)
if(@kayitkontrol=0)
Begin
insert into KAYIT(KULLANICI_ADI, AD,SOYAD) values (@KADI,@AD,@SOYAD)
set @sonuc=1
end
else
begin
set @sonuc=0
end
return @sonuc
GO

Yukaridaki procedure’ün ne yaptigini kisaca anlatayim. Öncelikle disarida kullanici adi, ad ve soyad olmak üzere 3 tane deger aliyor. Sonra iki tane degisken tanimliyoruz. Bu degiskenlerden ilki @kayitkontrol, tipi ise integer. Bu degiskeni veritabaninda ayni kullanici adinda kayit var mi yok mu onun için kullaniyoruz.select count(*) from KAYIT where KULLANCI_ADI=@KADI
satiri veritabanindaki KAYIT isimli tabloda KULLANICI_ADI sütununda bizim girdigimiz degerle ayni olan verilerin sayisini getiriyor. Eger veritabaninda ayni kullanici adiyla kayit yoksa bu deger 0 olarak döner. Kullandigimiz if ifadesiyle de eger bu deger 0 ise o zaman kayit yap diyoruz. Kullandigimiz ikinci degisken @sonuc ise return degeri olarak kullaniliyor. Tipini integer olarak atadik. Eger kayit islemi yapilirsa 1 degerini atiyoruz yapilamadiysa 0 degerini atayip döndürüyoruz ve kullandigimiz arayüz programi da bu degeri ”kayit yapildi” ya da “yapilamadi” gibi kullanici tarafindan anlamli olan cümlelere dönüstürür. Bu islem tabi ki çok çesitli sekillerde de yazilabilir, o programcinin düsüncesine kalmistir.
Stored procedurelerde return degeri sadece matematiksel tipler olmalidir. Mesela yukaridaki örnek için eger return degerine “kaydiniz basariyla yapildi” seklinde string bir ifade döndürseydik bu ifadeyi arayüz programimizda kullanamazdik. Öyle return degerleri atayip procedure’ümüzü derledigimizde hata yazisi göremeyiz ama bu sekilde yapmanin bir anlami yoktur ve yanlistir.
Biraz da stored procedureleri düzenlemeden bahsetmek istiyorum. Örnegin kayityap procedureümüzü degistirmek istiyoruz çünkü tablomuza bir sütun daha ekledik, o zaman procedure’ü yaratirken kullandigimiz “create” ifadesi yerine “alter” yazmamiz yeterli olacaktir. Sonra alacagi degerleri tabloya göre düzenler ve procedurede istedigimiz degisikligi yapabiliriz
Bu yazimda sizlere stored procedureler ile ilgili giris için bir bilgi vermeye çalistim. Diger yazilarimda stored procedurelerin C#ta kullanimini bütün yönleriyle incelemeye çalisacagim.


5 Haziran 2012 Salı

Visual Studio 2010 Platformunda OpenGL Kurulumu

Bilgisayar Grafiği ve Görsel Programlama" adlı ders için gerekli olan OpenGL kurulumunun Visual Studio 2010 içine nasıl yapılacağı hakkında bilgi vereceğim. Öncelikle ihtiyacımız olan glut-3.7.6-bin dosyasını buradan indiriyoruz. Daha sonra Visual Studio 2010’nun kurulu olduğu dizine gidiyoruz. VC klasörü içinde ki,  include klasörü içine GL diye klasör oluşturuyoruz. İndirdiğimiz dosya içinde ki glut.h dosyasını GL içine  atıyoruz. Daha sonra ise yine VC içinde ki lib klasörüne glut32.lib dosyasını atıyoruz.  Sıra geldi .dll dosyasına. glut32.dll dosyasını ise Windows/system32 klasörü içerisine atıyoruz. Şimdi sıra geldi test projesi oluşturmaya. Visual Studio 2010'u açtıktan sonra ilk önce, menülerden File > New > Project'i seçerek, proje penceresini açıyoruz, ardından bu pencereden Empty Project seçeneğini seçip projemize bir isim veriyoruz.




İlk projemiz açıldı ve henüz içi boş. Şimdi sıra geldi kaynak dosyası (Source File) oluşturmaya. Kaynak dosyası oluşturmak için, sol taraftaki Solution Explorer penceresi içinde, Test projemizin altında bulunan Source Files klasörüne faremizle sağ tıklıyoruz ve açılan menüde Add > New Item'ı seçerek, çıkan pencerede C++ File (.cpp) seçeneğini seçiyoruz ve ismini koyuyoruz.



Ben bu örnekte kaynak kodunun adını da Test koydum. Tüm bunları yaptıktan sonra karşımıza boş bir sayfa çıkacak. Bu sayfaya şu linkteki kodu yapıştırıyoruz.


Ve yapmamız gereken tüm işlem sona erdi şimdi kodumuzu F5'e basarak derleyebiliriz. Karşımıza aşağıdaki gibi, siyah zemin üzerinde dönen beyaz bir üçgen çıkacak. Bugünlük bu kadar, herkese iyi günler.

18 Mart 2012 Pazar

Süper Bilgisayarlar


                                                             BLUE GENE

I.     GİRİŞ


     İnsanoğlunun ilk zamanlar ihtiyaçları basit ve azdı. Zaman geçtikçe nüfusun artması ihtiyaçlarında artmasına sebep oldu. Bu ihtiyaçlarını karşılamak için değişik alanlarda değişik araçlar geliştirdi. Bu ihtiyaçlarından hesap ile ilgili olan kısmını ilk başlarda parmak hesabı ile, parmak hesabının yeterli olmadığı yerlerde de çakıl taşlarını kullanarak karşılamaya çalıştı. Hesap ile ilgili ihtiyaçlar ekonominin hızla gelişmesi ve yerleşik hayata geçilmesiyle beraber iyice arttı. Birçok farklı yaklaşım ve kuram ortaya atıldı ve günümüz bilgisayar teknolojisinin temelleri atılmaya başlanmış oldu.
     Bilgisayar teknolojisi ve gelişimi insan tarihindeki diğer teknolojik gelişmeler gibi eskilere dayanan bir çok evrelerden oluşmaktadır. Bilgisayarın gelişimi bilimsel ve teknolojik gelişmeler paralelinde ortaya çıkan ihtiyaç ve gereksinimler nedeniyle ileriye dönük üst kademelere doğru evrimsel gelişmeler göstermiştir.
       Günümüz teknolojisi gelişimine paralel ve insanoğlunun hayattaki araştırmalarında bilim ve teknik  ihtiyaçlarına en yüksek performanslarda cevap verebilecek düzeydeki bilgisayarların üretimi, bilim ve teknik hakkındaki araştırmaların çok hızlı bir şekilde yapılıp, en kompleks problemlerin bile çok daha kısa sürede cevaplandırılıp bilimsel ve teknolojik sürecin çok daha hızlı işlemesini sağladı. Adına super bilgisayar diyebileceğimiz bu bilgisayar türleri bayağı bir sure daha bilgisayar tarihinde gelinen son noktada kalmaya devam edecektir.

I.     BİLGİSYAR Tarihçesi

Bilgisayar kategorisine girebilecek özelliklere sahip, tarihte bilinen ilk bilgisayar:

Mekanik Geçmiş Zaman Bilgisayarı

             2000 yıldan daha eski olduğu düşünülen  mekanik geçmiş zaman bilgisayarı güneşin ve ayın hareketlerini incelemede kullanılıyordu.  Günümüzde süper bilgisayarlarının kullanıldığı astronomide hizmet eden bilgisayarın teknolojisine erişmek için 100 yıldan daha uzun bir zaman geçmesi gerekti. Yani en eski bilgisayar aynı zamanda hacklenmesi en uzun süren bilgisayar oldu[1].
          Uzun bir çalışma sonucunda cismin bir taslağı yapıldı. Dişlilerin çalışması sonucunda ayın ve güneşin hareketlerini hesaplayabilen bir takvim ve bir tür hesap makinesi olduğu anlaşıldı. Makinada, 37 dişli çark, ayın ve güneşin hareketlerini takip etmek, güneş tutulmalarını tahmin etmek ve hatta ayın düzensiz yörüngesini önceden çizmek için kullanılıyordu.
 
                                           Şekil-1
          Uzun bir çalışma sonucunda cismin bir taslağı yapıldı. Dişlilerin çalışması sonucunda ayın ve güneşin hareketlerini hesaplayabilen bir takvim ve bir tür hesap makinesi olduğu anlaşıldı. Makinada, 37 dişli çark, ayın ve güneşin hareketlerini takip etmek, güneş tutulmalarını tahmin etmek ve hatta ayın düzensiz yörüngesini önceden çizmek için kullanılıyordu.
              Antik ve orta çağların en gelişmiş cihazı olarak belirtilen makinayı, gelişmiş x-ışınlı tomogrofilerle ve yüzey tarayıcıları ile inceleyen uzmanlar, makina üzerindeki yazıları okuyabildiler. Bu incelemelerden sonra milattan önce 100 ile 150 yılları arasında yapıldığı tahmin ediliyor.

ENIAC (Electrical Numerical Integrator And Computer)

        Elektrikle çalışan ve elektronik veri işleme kapasitesine sahip ilk bilgisayardır. Yaklaşık 167 m^2 bir alana sığan, ağırlığı 30 ton olan dev cüsseli bilgisayarın siparişi 1941 yılında Amerika’nın 2. dünya savaşına katılmasıyla birlikte ordu tarafından gizli olarak Pennsylvania Üniversitesine ait elektrik mühendisliği okulu Moore’a verildi. Bilgisayar 1947 yılında kamuoyuna tanıtıldı[2].
        Savaşın ardından EINAC daha çok hava tahminlerinde atom enerjisi hesaplamalarında, kozmik ışın çalışmalarında, termal tetikleme, rüzgar tüneli dizaynında ve diğer bilimsel araştırmalarda kullanıldı. 1951 yılında ise, daha çok endüstriyel alanlarda kullanılmıştır.  Ticari bilgisayarların gelişmesiyle birlikte bilgisayar da yeni sektör olmaya başlamıştır. Sektörde çalışacak insan gücü yetiştirilmeye başlanmış ve bilgisayarlarla ilgili el ve
kılavuz kitaplar da basılmaya başlamıştır. 1952'de Fred Gruenberger ilk bilgisayar ile ilgili bir el kitabı yazmıştır.
 
                                 Şekil-2
Yukarıdaki şekilde ENIAC bilgisayarın kontrol bölümünü oluşturan ön panelinden bir kesit görüntülenmektedir. Kontrol panelinin üzerinde görülen kabloların yerleri değiştirilerek yine panelin üzerindeki led’lerin renklerine gore yanıp sönmesiyle bilgisayarda işletilmek üzere girilen verilerin doğruluk payları sınanır.

          Hesaplama Kapasitesi ve Işlevselliği


      ENIAC bir sayının görüntüsünü ayırabiliyor, eşitlikleri karşılaştırabiliyor, çarpabiliyor, bölebiliyor, toplayabiliyor, çıkartabiliyor ve kare kökleri hesaplayabiliyordu. ENIAC'ın akümülatörleri (ön kayıt bölgeleri) hem toplama hem de hafıza işlevi görüyordu. ENIAC'a veriler bir IBM kart okuyucusu aracılığı ile veriliyordu. İşlenmiş veriler ise yine bir IBM delikli kart makinesi sayesinde alınıyordu ve bu kartlar yine IBM’in üretmiş olduğu bir delikli kart okuyucu tarafından (muhtemelen IBM 405) deşifre ediliyordu.
O günlerde 60 saniye yol alan bir topun rotasının hesaplanması için, yaklaşık 20 saatlik çalışma gerekiyordu. ENIAC bu hesaplama süresini 15 saniyeye indirdi. Bir saniyede yapabildiği toplama işlemi akümülatör başına 5.000 adetti (toplam 100.000 adet). Saniyede yapabildiği çarpım işlemi 385, bölme veya karekök alma işlemi ise 38 adetti. Geçici hafızasında sadece 200 sayıyı saklayabiliyordu.

            
        Teknik Bilgileri

          ENIAC toplam 30 ana bölümden oluşuyordu. Toplam ağırlığı 30 ton olup, 167 m² alana sığıyordu. Boyutları yaklaşık 2.4 m x 0.9 m x 30 m idi. 150-200 kW lık elektrik  gücüne ve oldukça güçlü soğutma donanımına ihtiyaç duyuyordu. Bünyesinde 17.468 vakum tüpü, 1500 röle, 7200 kristal diyot, 70.000 rezistans, 10.000 kapasitör ve yaklaşık 5 milyon el ile yapılmış lehimli bağlantı içeriyordu.


I.      İLK SÜPER BİLGİSAYARLAR


         Süper bilgisayarlar birden çok parallel işlemci birden çok   yüksek başarımlı vektör işlemciler ve öbek bilgisayarların oluşturduğu sistem (her bileşen olmak zorunda değil) olarak tanımlanabilir. Süper bilgisayarlar bilimde, deney ve hesaplamayı birleştiren hesaplamalı bilim gibi yeni metodolojilerin oluşmasını sağlamıştır.Günümüzde süper bilgisayarlar saniyede yüzlerce trilyon işlem yapar hale gelmiştir. Örneğin, dünyanın en hızlı süper bilgisayarı saniyede 136,8 trilyon kalıcı işlemle Amerika'da Lawrance Livermore National Laboratuary isimli ulusal laburatuarın kullanımındadır (teorik sınır bu rakamın üzerinde olup adı geçen makina için saniyede 183,5 trilyon işlemdir) Süper bilgisayarlar ilk defa 1960'larda Seymour Cray tarafından Control Data Corporation da tasarlandı.

a)     Cray-I :

             İlk süper bilgisayar 1976 da yapılan Cray-I dir[3]. Bunda beraber paralel çalışan 12 işlem birimi mevcuttur. Bilgisayar tüm birimlerini aynı anda çalıştırabilir. CPU içinde 150 den fazla yazaç vardır. Bir kayan noktalı işlemi iki tane 64 bit veri üzerinde bir saat vuruşu içinde 12,5 ns de tamamlar. Bu süper bilgisayara 80 megaflops boru hattı hızı kazandırır.
 
                                              Şekil-3

CRAY şirketi çok işlemcili Cray X-MP, CRAY Y-MP, Cray-1 ve Cray-2 modellerini geliştirmiştir.  Cray-2 vektör işlemle Cray-1 den 12 kat daha hızlıdır. 
        Bu arada vektör işlemcilerin atomik işlemcilerden çok daha hızlı olmasının sebebi, atomik işlemciler girilen değerleri her saat darbesinde teker teker işlerken, vektör işlemciler ise yazaçlarına boru hattıyla gönderilen verileri vektör şeklinde işleyerek sistem performansının çok daha fazla hızlı olmasını sağlar.  

 b)    Fujitsu VP-200 :


    - Fujitsu VP-200 ; bir sabit ve bir vektör işlemcisi olup aynı anda çalıştırabiliyordu[4].
    - Aynı Cray’ler gibi çok sayıda yazaçları ve işlem birimleri mevcuttu.
    - Vektör işlemcisi içinde 4 boru hattı mevcut olup hepsi çalıştığında 500 milyon flops’a erişebiliyordu.
    - Bellek 32 milyon kelime olup, vektör yazaçlarına yükleme ve depolama boru hatlarıyla bağlıydı

II.     BLUE GENE

A)      Tanımı ve Türleri :

          Blue Gene : On binlerce işlemcinin birbirine paralel bağlanıp  geniş bir bellek alanını destekleyen gömülü sistemlerin tek bir bilgisayar konfigürasyonunu oluşturacak şekilde dizayn edilmiş bir mimarinin adıdır.   
 
                               Şekil-4

        Bu projenin adının Blue Gene mimarisi olmasının nedeni; proje ortaklarından başı çeken IBM in kurumsal renginin mavi oluşu ve bu projenin ilk çıkış amacının insan gen ve protein gibi biyomoleküler araştırmalar olması projenin isminin Blue Gene olmasını şart kılmıştır. 

       Blue Gene; Peta Flop mertebesindeki işletim hızlarına ulaşmak için tasarlanmış ve neredeyse 500 tera flop işlemci hızına ulaşmış süper bilgisayarlar üretmek için geliştirilen bir bilgisayar mimarisinin adıdır. Bu arada peta flop, bilgisayarın saniyede bir katirilyon işlem yapabilme kapasitesine eşdeğerdir. Tera flop ise, bilgisayarın saniyede 1 trilyon işlem yapabilme kapasitesine eşdeğerdir[5].
        Blue Gene projesi IBM, Lawrance Livermore milli labaratuarı, çalışmaları kısmen finanse eden ABD enerji bakanlığı ve akademik çevreler arasında yürütülen ortak bir çalışmadır. Proje 18 Eylül 2009 tarihinde ABD başkanı Barack Obama tarafından Ulusal Teknoloji ve Yenilik madalyası almıştır.

    Gelişmekte olan dört Blue Gene Projesi vardır : Blue Gene/L, Blue Gene/C, Blue Gene/P ve Blue Gene/Q dur.
   Bu projelerin aynı ortaklara ait olması ve aralarında fazla bir zaman farkının olmamasına rağmen, projelerin farklı adlarla anılıp kategorilendirilmesi, o projenin çıkış amacına yönelik  donanım tasarımı ve performansının ayrı bir proje grubunu oluşturmasındandır.

B)       Çıkış Amacı :

      -  Bilimde deney ve hesaplamayı birleştiren hesaplamalı bilim gibi yeni metodolojilerin oluşmasını amaçlar.
  - İnsan proteinin yapısını çözmek ve bu yolla iyileşmeyen hastalıklara alternatif tedaviler geliştirmek.
       - Aslında Blue Gene’nin en büyük amacı, şimdi ne kadar bilim kurgu gibi görünse de; insan beyninin hızına ulaşmak, beyni elektronik ortama aktarıp insan genlerini çözmek ve belki de yeni ırkların ortaya çıkmasını sağlamak  olabilir.
       - Blue Gene projelerinin daha çok savaş teknolojisini destekleme ve nükleer silah araştırmalarında kullanımı hedeflendiğinden IBM yapımı Blue Gene / L serisinin o kadar iyi amaçlı olmadığı anlaşılıyor.

  BLUE GENE / L :

  Bu proje, Blue Gene projelerinin ilk serisidir.
          IBM tarafından oluşturulan bu proje ilk 29 Eylül 2004 te duyuruldu. Kasım 2006 tarihi itibariyle TOP500 listesinde  Blue Gene/L mimarisini kullanan 27 bilgisayar vardır. Bütün bu bilgisayarlar eServer Blue Gene Solution'nun bir mimarisine sahiplermiş gibi listeleniyor. Tüketilen elektrik kilovat başına en yüksek performansı sunmak için tasarlanmıştır. Ulaşabildiği en yüksek performans 360 teraflop  olup LINPACK benchmark’ta güçlendirmeden sonra performans 478 tFlop a ulaştırılabilmiştir. Haziran 2006 tarihinde TOP500 listesinde,  dünya çapında birkaç yerde Blue Gene/L kurulumları en iyi 10 konumdan 3'ünü ve en iyi 64 konumdan 13'ünü almıştır. Blue Gene/L'nin 3 rafı  San Diego Supercomputer Center'da yerleştirilmiş ve akademik araştırma için hazır duruma getirilmiştir. New York Blue/L, Haziran 2008  TOP500 listesinde 17. sıraya yerleştirilmiştir. Ayrıca talep edildiği zaman dağıtımları ödenekleri sağlıyor. 22 Haziran 2006 tarihinde NNSA ve IBM, Blue Gene/L'nin 207.3 TFLOPS hızında kimyasal uygulama (Qbox) başardığını bildirdi. 14 Kasım 2006'da,  süper hesaplamalarda, Blue Gene/L bütün HPC üstün sınıf ödüllerini kazanan ödülü almıştır. 2007 Kasımında LLNL Mavi Gen/L dünyanın en hızlı süper bilgisayarı olarak bir numaralı yerde kaldı. Bu önceki ölçümden beri yükseltilmiş ve ayrıca Blue Gene/P sistemi olan ikinci en hızlı bilgisayardan hemen hemen üç kat daha hızlıydı. 18 Haziran 2008 tarihinde yeni TOP 500 listesi zamanında petaflops markasına üstün çıkan tek sistem olan IBM'nin hücre temelli( Cell-based) Roadrunner sistemiyle bastırılan bu durumu kabul ettiğinden beri ilk defa Blue Gene sisteminin TOP500 listesinde lider olmadığına işaret etti.
Blue Gene/L Mimarisinin Şematiği :

 

                                 Şekil-5


      Yukarıdaki Blue Gene/L nin mimari şematiği en genel anlamda diğer bütün Blue Gene mimarilerinin temelini oluşturmaktadır. Öyle ki bilgisayarların işlemlerinde kullanabileceği akla gelen ilk donanım parçası olan işlemciler “Compute Card” adı verilen hesaplayıcı kartı üzerine entegre edilmiştir. Hesaplayıcı kartları ise mimarinin ikinci parçası olan ve “board” adı verilen bizim anakarta benzetebileceğimiz karta entegre ediliyor. Board kartın üzerinde hesaplayıcı kartların entegre edilebilmesi için birbirine parallel oluşturulmuş karşılıklı 8x2 adet soket bulunmaktadır. Dolayısıyla mimarinin ilk tasarımından itibaren her board’un en az 16 adet hesaplayıcı kart ve dolayısıyla her hesaplayıcı kartın üzerinde yine en az 2 adet işlemci olduğunu varsayarsak, her board un üzerinde en az 32 adet işlemciyi destekleyecek şekilde tasarlanmıştır. Blue Gene mimarisinin üçüncü basamağı olan ve adına “rack” verilen donanım parçasında ise, en az 32 adet işlemci taşıyacak halde tasarlanan board’ların üst üste yine bağlantılarda birbirine parallel olacak şekilde yuvalar oluşturulmuştur. Dizayn olarak üst üste konumlanmış çekmecelere benzeyen bu yuvalardan her rack’ ta en az 32 adet board yerleştirilecek şekilde yuva bulunmaktadır. Bu yuvalara entegre edilen board’lar diğer board’lara parallel olacak şekilde bağlantı giriş/çıkışları tasarlanmıştır. Adına rack denilen Blue Gene mimarisinin üçüncü basamağı olan her kabinin en az 32 adet board’ u desteklediği düşünülürse temel olarak bu mimaride  üçüncü adıma kadar en az 32x32 adet işlemcinin kullanıldığı görülmektedir. Blue Gene mimarisinin son basamağı olan bütün kabinlerin yine birbirine parallel olacak şekilde dizilmesiyle oluşturulmuş son basamak olan sistemdir. Blue gene projesinde tanımlanan ilk sistem en az 64 adet kabinden oluşuyordu. Kabinler fiber optik kablolarla zeminin altından oluşturulmuş ağ tarfiği ile birbirine parallel şekilde bağlanıp veri transferlerinin maximum performansı sağlayacak şekilde ağ tasarımı yapılmıştır. Bu tasarım insan beynini oluşturan milyarlarca nöronun bağlantılarını sağlayan ve tüm bu nöronların toplamının aslında bu nöronların eş zamanlı çalışmasıyla oluşan en büyük nöron olan beynin  oluşmasını sağlayan tasarımdan yararlanmıştır. Bu mimariyi oluşturan Blue Gene/L projesinin son basamağını oluşturan sistemde 64 adet kabin kullanılmıştır. Böylece diğer blue gene projeleri gibi blue gene/ L projesinde kullanılan 64x32x32 adet işlemci istendiğinde tek bir program üzerinde eş zamanlı  çalışarak teraflops hızlarında verim sağlanmış olur.      

Blue Gene/L ‘nin Teknik Özellikleri :

     -  Bir rack 1024 veya 2048 AIB tutar
     -  Raflarda tutulan düğümler düşük güçle çalışacak şekilde dizayn edilmiştir. Ve daha düşük güç gerektiren uygulamalarda işlemci hızını optimize edebilir. Bu durumda system soğutmasının daha verimli çalışması ve performansın daha hızlı olması sağlanmıştır.
-                    - Sisteme gelen yüksek gerilimli enerji raflar arasında en iyi performans sağlanacak ve en az ısınma olacak şekilde optimize edilmiştir. Dolayısıyla system parçaları arasındaki soğutma sisteminin daha sağlıklı işlemesi ve system parçalarının muhtemel yüksek sıcaklıktan deforme olup bu bakımdan performans düşüşlerinin önüne geçilmiş olur.
-                   - Her bir düğüm üç ana parallel  haberleşme çeşidi data kablosuyla bağlıdır.
-                   - Bütün Blue Gene projeleri bilimsel amacı etkili şekilde karşılayacak yeni platformların nasıl kullanılacağı, bu paralel mimarinin daha performanslı olması için ne tür düzenlemelere gidilebileceği ve bu hedeflere makul bir bedelle nasıl varılabileceği gibi konular içerir. Dolayısıyla projenin donanımsal özelikleri ile  izlediği performans tablosu her zaman gözden geçirilecek konumda olup peşpeşe güncellemelerle system verimliliğinin daha da arttırılması hedeflenir.      

Blue Gene/L ‘nin Yazılım Özellikleri :

    -  Sistem yazılımı paralel uygulamaların verimli bir şekilde yürütülmesini destekler. Dolayısıyla parallel işlemci mimarisi üzerinde parelel yazılımlar işletiliyor.
    -   C, C++, Fortran yazılım derleyicilerine sahiptir.
    -  Hesaplama düğümleri kullanılacak en az bir işletim sistemini çalıştırabilir. Bunlardan  tek kullanıcılı basit işletim sistemi olabilir.
 - Birden fazla programın aynı anda işletimine izin vermek için; sistem içerisinde izole edilmiş elektronik düğümler veya AIB leri kümeler halinde bölümlendirilebilir. Sisteme girilen birden fazla programdan önceliği daha fazla olan program daha önce işletilir. Daha fazla işlem kapasitesi gerektiren programa da daha fazla işlemci kapasitesi ayrılabilir.
  -  Paralel programlama modeline sahiptir. Bu daha çok C dilinde geliştirilmiş kütüphane (MPI) ile  paralel programlama gerçekleştirilebilir. Böylece bir program sistemin tüm AİB leri üzerinde eş zamanlı yürütülebilir.   
     IBM, protein folding gibi biyomoleküler fenomen çalışmasına uygulanacak etkili paralel bilgisayar kurmak amacıyla 5 yıllık bir çaba için 100 milyon dolar değerinde bir araştırma girişimi ilan etmiştir. Bu projenin iki temel amacı vardır: Geniş ölçekli simülasyona karşı protein folding'in arkasındaki mekanizmaları  anlamak ve etkili paralel makine mimarisi ile bilimsel yazılımlarda yeni fikirler keşfetmemize yardımcı olmaktır. Bu proje şuan ki teknolojinin fırsat verdiği daha büyük çapta düzenlenen biyomoleküler simülasyonları sağlamalıdır. Matlab ta yapılan parmak izi, yüz tanıma, medical görüntü işlemeleri, ses işleme ve devre simülasyonu gibi matrix ve vektörel uygulamalar hep C/C++ platformlarında geliştirilebiliyor.

BLUE GENE / C :

 - Blue Gene/L den sonra geliştirilen kardeş projedir.
     -  Cyclops64 olarak yeniden adlandırıldı.
 - Çipleri üzerinde hücresel bir mimariye sahip muazzam hızlı paralel AIB’lerden oluşan süper bilgisayarlardır.
-  Hücresel bir mimariye sahip oluşu çok sayıda eşzamanlı konuları tek bir işlemci içinde çalıştırma yeteneği verir.
- 2007 nin başlarında bitirilmesi amaçlanan bu proje daha sonralara ertelenmiştir.