3 Kasım 2009 Salı

ManyCorre Zirvesi ...

Sunumları incelemeyi yeni bitirdim. Anlaşılan o ki çok çekirdekli sistemler ve paralelizm konusunda oldukça fazla yapılacak iş var. Bu işlerden en önemlisi ise bütün uygulamalarda kullanılabilecek bir paralelizm metodunun bulunmasıdır.
Yine şu an itibariyle paralel programlama, klasik programlamaya göre daha zor.
Donanım dünyasında yaşanan gelişmelerden tam anlamıyla istifade edilebilmesi için daha fazla paralelizme ihtiyacımız bulunmaktadır.

1 Kasım 2009 Pazar

Çok Çekirdekli Sistemler'e Devam ...

Çok Çekirdekli Sistemlerin Uygulamalar Üzerindeki Etkileri
Olumlu Etkileri

- Alan başına düşen hesaplamayı artırır Increases the areal density of computation
  • Örn: Saniyede birim alan başına düşen işlem sayısı
  • Daha düşük fiziksel yapı, yönetim maliyetleri
- Enerji Kullanımındaki Verimi Artırır
  • Enerji tüketimini azaltır
  • Aynı enerji ve soğutma imkanı ile daha fazla kapasite
  • Yeni uygulamalara imkan verme
  • Digital media işleme
  • Çok sayıda veriyi control etme
  • Karmaşık iş analizleri
Olumsuz Etkileri
- Hafıza Performansında Düşüş
  • Çekirdek başına düşen efektif cache’de azalma
  • Artan chip bantgenişliği
- Tekil thread performans büyümesinde yavaşlama
  • Karmaşık işlemlerin cevap süresi üzerinde etki
  • Amdahl’s Law, düşük optimize edilmiş yazılımlarla yarışmada
-Eşzamanlı programlama konusunda kabiliyet eksikliği
  • Programlama deyimleri, kütüphaneleri, araçları ve eğitimi konularında zayıflık
-İzleme hataları ve performans darboğazları konusundaki güçlükler
  • Uygulamalar arasında artan paralelizm ve fiziksel kaynakların paylaşılması

31 Ekim 2009 Cumartesi

Çok Çekirdekli Sistemler

Çok Çekirdekli Sistemler
Aşağıdaki linkten ManyCore Computing Workshop'un detaylarına erişebilirsiniz. Çok Çekirdekli sistemlerin geleceği ve uygulamalar ile ilgili çeşitli bilgiler / sunumlar yer almaktadır.

Link: http://science.officeisp.net/ManycoreComputingWorkshop07/default.aspx

Notlar:

* İntel'e göre Moore Yasası güncelliğini devam ettirmektedir...
* Aynı büyüklükteki tek çekirdekli işlemci performansı ile çok çekirdekli işlemci performansı arasındaki fark çok çekirdekli sistemlerden yana artmaktadır.
* Çok çekirdekli sistemler oldukça yaygın bir haldedir ...
* Önceye göre çekirdek artış hızı da artmıştır, bir tahmine göre çekirdek sayısı 2015'te 128 ve 2020 ise 1024 olacaktır.
* Çekirdek sayısının artması ile performansda aynı oranda artacak mıdır? Bu kadar çekirdeği verimli bir şekilde kullanabilecek miyiz?
* Çok Çekirdekli sistemler ile ilgili temel sorular/konular şunlardır

Cores
Kaç tane? Hangi Büyüklükte
Homojen, heterojen
Programlanabilir, Ayarlanabilir, Sabit fonksiyonlu

Chip-level
Arabağlantı: Topoloji, bandgenişliği
Koordinasyon
Yönetim

Memory Hierarchy
Seviye sayısı, paylaşım, içerme
Bandgenişliği, yeni teknoloji
Entegrasyon/Paketleme

I/O Bandwidth
Silikon tabanlı photonics (ışık bilimi)
Terabit bağlantılar

Yazılım Konuları
Bu kadar geniş bir yapıda paralelizmi nasıl programlayacağız?

Performans, verim, güvenlik gibi bir sürü anahtar yazılım geliştirme konusu mevcuttur. Paralelizim, diğer ihtiyaçlarla birlikte ele alınmalıdır.

Paralel Yaklaşımlar için aşağıdakiler gereklidir.
Daha düşük programlama verimi
Yazılım mimarilerinde köklü değişiklikler
Her taraftaki kod yapılarında önemli değişiklikler
Karmaşık debug ve test
Çok versiyon bakım ihtiyacı
Farklı geliştirme ihtiyaçları (yüksek destek maliyeti)
Modüler olmayan etkileşim
>Kod üzerindeki değişiklikler yüksek koordinasyon gerektirir
>Bağımlılıklar arasındaki uygunluğu artırır


Paralelizmde Aşlağıdaki Gibi Çarpıcı Buluşlara İhtiyaç Bulunmaktadır.

- Sıralı programlamaya göre daha az efort
- Paralel programlamanın programlama karmaşıklığını artırmaması
- Paralel programlama ileriye doğru ölçeklenebilirliğe sahip olması
  • Sürekli yenilenen donanım platformları üzerinde daha hızlı uygulama geliştirme.
  • Ölçekli veri setleri, ölçeklenen çıkış kalitesi- tekrar programlama olmadan daha fazla paralelizm.
- Paralel programlama teknikleri yüksek ve kararlı paralel performans sağlamalı.
  • Yüksek seviyede programlamaya izin vermeli
  • İş yükünü, algoritmayı ve veri düzensizliğini yönetebilmeli
  • Donanım farklılıklarını ve düzensizliklerini yönetebilmeli
- Paralel programlamayı destekleyen donanım mimari geliştirmeleri

Paralelizmin Yazılım Kararlılığını Artırılmasında Kullanılması
Programlar genellikle yanlış davranışlar: buglar, güvenlik açıkları, donanım hataları gibi.
Run-time araçları çok yavaş
Çok çekirdekli sistemler ile ilgili debugging konularındaki güçlükler artmakta

Araştırma Konuları:
- Debugging için çok çekirdekli sistemlerin ilave performanslarının kullanılması
- Yazılım hatalarının otomatik tesbiti ve giderilmesi. Bir çekirdek üzerindeki programın davranışlarının dinamik olarak gözlenmesi ve hataların anlaşılması için program tarihçesini kullanma.
- Etkin dinamik program izleme & donanım tarafından tutulan loglara göre yeniden çalıştırma, sistem tarafından yönetim ve yazılımı yönlendirme.

YKGS2008: Yazılım Kalitesi ve Yazılım Gelistirme Araçları 2008 (9-10 ekim 2008, İstanbul)

Sempozyum İle ilgili okunabilecek diğer makaleler şunlardır.
  • Çok Çekirdekli Sistemlerin Yazılım Kalitesi Üzerine Etkileri (Ben bu konuda derinleşmeyi düşünüyorum)
  • Yazılım Fonksiyonel Büyüklüğünün Yazılım Proje Yönetiminde Kullanılması
  • Üç Adımda Yazılım Süreç Dünyasına Giriş
  • Yazılımda Fikri Mülkiyet Haklarının Korunması
  • Yazılım Metriklerini Kullanarak Düşük Kaliteli / Yüksek Kaliteli Modüllerin Otomatik Tespiti
  • Emniyet-Kritik Sistemlerin Yazılım Doğrulama Süreci
  • Yazılım Geliştirme Süreçlerinin Ölçülebilir Şekilde İyileştirilmesine Yönelik Etkin Bir Altyapının Kurulması ve İşletilmesi
  • Yazılım Konfigürasyon Tetkikleri
  • Paralel Yazılım Geliştirme Sürecinde Yarış Durumu Denetimi
  • Doğal Dilde Yazılmış Gereksinimlerin Analiz Yöntemleri ve Bu Yöntemlerin Türçe İçin Uygulanabilirliği
  • Yazılım Projelerinde Gözden Geçirmeleri Başarısız Kılan Faktörler
  • Etkin ve Uygulanabilir Bir Yazılım İnceleme Modeli
  • Yazılım Ürün Gözden Geçirmelerinin Önemi, Hazırlık Süreci ve Bir Uygulama Örneği
  • Mobil Uygulama Yazılımlarında Yazılım Metriklerinin Kullanılması
  • Yazılım Proje Danışmalarının Yazılım Kalitesinin Artırılmasındaki Rolleri
  • Dağıtık Benzetim Sistemleri İçin Entegrasyon ve Test Yaklaşımları
  • Rol Modellerinin Yazılım Kalitesine Katkıları
  • DO-178B Sertikasyonuna Uygun Yazılım Geliştirme

28 Eylül 2009 Pazartesi

YKGS2008: Yazılım Kalitesi ve Yazılım Gelistirme Araçları 2008 (9-10 ekim 2008, İstanbul)

Bu sempozyumda sunulan bildirilerden bazıları
=========================================
CMMI Basamaklı Modeli ile Yazılım Firmalarının Degerlendirilmesi için Bir Yöntem ve Uygulama
CMMI 2. düzey araştırması için bir uygulama ...
http://docs.google.com/fileview?id=0BzONj6n0lWZRYjk0NThmODktNGJiNC00ODkyLWFlNTQtODIxOWFlNzhhNDYx&hl=en


Yazılım Ölçümü: Genel Bir Bakıs
Bu çalısma, yazılım ölçümü konusunu genel bir bakıs açısıyla özetlemektedir ve yöneticileri, yazılım proje yöneticilerini ve gelistiricileri, yazılım ölçümü hakkında bilgilendirmeyi hedeflemektedir.
http://docs.google.com/fileview?id=0BzONj6n0lWZROWFmNmEyNjctMmFiMC00ZDM0LTgzZGEtYmU4YWNjODdlMGQ0&hl=en


Nesneye Dayalı Yazılım Metrikleri ve Yazılım Kalitesi
Nesneye dayalı yazılımlar ile ilgili oluşturulmuş metrikler , bu metrikleri ölçmek için oluşturulmuş çeşitli araçların kısa tanıtımı ...
http://docs.google.com/fileview?id=0BzONj6n0lWZROTllNWNiODUtYjQ1Zi00YTNjLTliNTktOTIzZmExMDQ0N2Zm&hl=en

ISO 9126 - Yazılım Ürünü Değerlendirme Standartları

Merak edenler için ISO 9126 linkleri

http://www.cis.gsu.edu/~ghubona/cis8300/ISO9126.pdf
http://en.wikipedia.org/wiki/ISO_9126
yada

http://docs.google.com/fileview?id=0BzONj6n0lWZRYWM3ZDY4ZmMtYmY2Yy00YzUzLWFhNTAtMDVlNmE2NWE3MDFh&hl=en

14 Eylül 2009 Pazartesi

Makale - QUANTITATIVE EVALUATION OF SOFTWARE QUALITY

1976 yılında B. W. Boehm, J. R. Brown ve M. Lipow tarafından yazılan yazılım kalitesini sayısal olarak ölçmeye dair makale ...
Link: http://portal.acm.org/citation.cfm?id=807736

13 Eylül 2009 Pazar

Makale - A FRAMEWORK FOR THE MEASUREMENT OF SOFTWARE QUALITY

1978 yılında McCall ve Joseph P. Cavano tarafından yazılım kalitesi ile ilgili ilk makalelerden. Makalede, hiyerarşik bir kalite modelinden bahsediliyor. Dökümantasyonda ölçütler biri olarak ele alınıyor. Aynı zamanda kalite ölçümünün yazılım geliştirme aşamalarının tamamında yer alması gerektiği vurgulanıyor.
Link : http://portal.acm.org/citation.cfm?id=811113

7 Temmuz 2009 Salı

Yeterlilik

Dün yeterlilik sınavı sözlüsü vardı, bugün merakla sonucu bekliyorum ...

17 Mart 2009 Salı

Amacım

Bu blog'u Mehmet GÖKTÜRK hocamın tavsiyesi ile doktora çalışmalarımı izlemek amacıyla oluşturdum.

Merhaba

Bugün itibariyle blog'umu oluşturmuş bulunuyorum. Allah yüzümüzü ak etsin...