Intel: Programcıların knowhow’ı uygulamalarının performansı için artık çok daha önemli!


9 Kasım’da The Marmara’da Intel’in “Çok çekirdekli mimariye geçiş” başlıklı yazılım seminerindeydim.

Yıllardır yaşadığımız bir yakınsama var; çeşitli uzmanlık alanları başka uzmanlık alanlarıyla giderek yakınlaşıyor. Bunun en mega trendini telekomünikasyon dünyası ve bilişim dünyası arasında yaşıyoruz. Ama daha küçükleri, her an her yerde karşımıza çıkıyor. Sistemcilerin xml’den, yazılımdan biraz anlaması gerekiyor. Yazılımcıların veritabanıyla ilgili indeks, performans bilgilerini edinmeleri giderek daha çok önem kazanıyor, vs vs…

Şimdi de yazılımcıların işlemcilerle ilgili daha derin bir dikkate ihtiyaçları var. Neden mi?

Bugüne kadar Moore yasası (http://tr.wikipedia.org/wiki/Moore_Yasas%C4%B1) uyarınca tek bir işlemcinin hızını artırmaya odaklanan Intel, daha büyük performans artışı ve bununla birlikte enerji tüketiminin az artması için, tek işlemciyi hızlandırmak yerine çoklu çekirdeğe geçmeye karar verdi. Yine işlem kapasiteleri artmaya devam edecek, hatta eskisinden belki daha hızlı artacak ama klasik programlamaya devam ederseniz, sizin yazdığınız programlar bundan yararlanamayacaklar.

Öncelikle bazı kavramlara açıklık getirelim… Eskiden socket, işlemci, çekirdek hepsi aynı anlama geliyordu. Çünkü her sockette tek bir işlemci tek bir çekirdekle yer alıyordu. Ama artık öyle değil. Artık bir sockette 2, 4, ve daha ileride de ‘çok’ çekirdek yer alacak. Dual core, quadro core, multicore… Intel performans artışını frekansı neredeyse sabitleyip çekirdek sayısını artırarak geliştirecek artık.

Bunun anlamını biraz daha net ifade edecek olursak: Çoklu işlemcili sistemler artık evlere kadar girecek.

Multi-threading bir anda çok büyük bir önem kazanıyor. Eskiden sadece çoklu işlemcili sistemlerde koşan programlarda multi-threaded uygulamalar yazmaya gerek vardı. IIS gibi uygulamalar ise zaten kendi içinde multi-threadi destekliyordu. Oysa artık, multicore işlemciler yayıldıkça, multi-thread yazmanız ya da uygulamalarınızı multi-threade çevirmeniz büyük avantajlar sağlamaya başlayacak.

Bir örnek vermek gerekirse, seminerde Logo’dan Ürün ve Teknoloji Geliştirme Danışmanı Ayhan İnal, yaptıkları bir testi anlattı. SQL 2000’de koşan bir uygulamalarındaki bir prosesin süresi 900 saniyenin üzerinde. Bu prosesi SQL 2005 kullanan dual core bir makinede 5 threadli olarak çalıştırdıkları zaman süre 200 küsur saniyeye iniyor. Aynı makinede single thread çalıştığında ise 500 küsur saniye sürüyor.

Böyle bir hız farkı uygulamanız için kritik olabilir. Daha kritik olan: İşlemcinin bu performans artışından otomatik olarak yararlanamıyorsunuz, ancak multi-thread yazarsanız yararlanabiliyorsunuz. Yani eskiden tüm programcılar işlemci hızındaki artışlardan aynı oranda yararlanıyorlarken, artık multi-thread yazanlar multi-core’un getirdiği hızdan yararlanırken normal yazanlar yararlanamayacaklar.

Aslında multi-thread yazmak zor değil, ama multi-threadi doğru analiz etmek ve doğru uygulamak zor.

Başka bir yazıda da multi-thread’de dikkat edilmesi gereken noktaları yazmayı düşünüyorum…

Beni izlemeye devam edin…

Bu yazı Genel içinde yayınlandı ve olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s