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.
3 Kasım 2009 Salı
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
- Hafıza Performansında Düşüş
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 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
- Hafıza Performansında Düşüş
- Çekirdek başına düşen efektif cache’de azalma
- Artan chip bantgenişliği
- Karmaşık işlemlerin cevap süresi üzerinde etki
- Amdahl’s Law, düşük optimize edilmiş yazılımlarla yarışmada
- Programlama deyimleri, kütüphaneleri, araçları ve eğitimi konularında zayıflık
- 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ı
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.
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.
- 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
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
=========================================
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
27 Eylül 2009 Pazar
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
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
Link : http://portal.acm.org/citation.cfm?id=811113
7 Temmuz 2009 Salı
22 Mart 2009 Pazar
Kaydol:
Kayıtlar (Atom)