Çok Çekirdekli Sistemler İçin Nesneye Dayalı Yazılımların Model Tabanlı Paralelleştirilmesi

thumbnail.default.alt
Tarih
2011-09-05
Yazarlar
Ovatman, Tolga
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Fen Bilimleri Enstitüsü
Institute of Science and Technology
Özet
Bu çalışmada sınıf bağımlılıkları arasında sıkça ortaya çıkan örüntüler ve bu örüntülerin yazılıma özgü gösterdiği karakteristikler, örüntülerin bir takım özellikleri incelenerek ortaya çıkarılmıştır. Bu örüntülerin sınıf çizeneklerinde ortaya çıkma biçimleri, örüntülerden çeşitli örnekler sunularak ve bu örneklerin çalışma zamanında gösterdiği davranışlar incelenerek açıklanmıştır. Bu şekilde bağımlılık örüntülerinin nesneye dayalı yazılımların paralelleştirilmesine olan etkisi incelenmiştir. Bağımlılık kalıplarının yazılımda gösterdiği özellikleri detaylandırmak amacıyla bir ölçüt kümesi tez çalışmalarında önerilmiştir. Tez çalışmalarında bağımlılık örüntülerinin otomatik olarak yazılım tasarımlarında algılanılmasına da odaklanılmıştır. Bu amaçla yazılım tasarımlarından edinilen çizgeler üzerinde öbekleme algoritmaları uygulanmış ve sonuçta bu algoritmaların özellikle “köprü” adı verilen örüntüleri algılamakta yetersiz kaldığı görülmüştür. Bu sorunu çözmeye yönelik tanımlanan algoritma ile hem “körprü”lerin algılanması sağlanmış hem de böylece öbekleme tekniklerinin bağımlılık kalıbı algılama amacıyla başarımı arttırılmıştır. Tez çalışmalarında son olarak çok çekirdekli işlemcilerde ortak kullanılan cep belleklerin paylaşılmasından sağlanan faydanın model tabanlı tekniklerle arttırılması üzerine yoğunlaşılmıştır. Tez çalışmaları sonucunda iki farklı alanda katkılar sağlanmıştır. Bunlardan ilki yazılım tasarımları kullanılarak yazılımın genelinde gizli bulunan paralelliğin ortaya çıkartılması ve model tabanlı bilgiler ışığında nesneye dayalı yazılımların iş sıralamasının yönlendirilmesidir. Sunulan deneyler, önerilen model tabanlı tekniklerin kullanımı ile %30 a varan başarım artışının sağlanabileceğini göstermektedir.
As multicore processors are becoming more wide-spread, leveraging of parallelism is once again becoming an important concern during the software development process. This thesis starts with definitions of often occurring patterns of class-dependencies are defined and their characteristics in class diagrams are demonstrated by investigating their properties. This investigation led to understand how they impact the parallelization of object oriented software. A metric suite is proposed to elaborate the dependency pattern definitions allowing the developer/designer to further identify characteristics of each pattern. Later in the studies, automatically detecting dependency patterns in software designs is focused. After applying graph clustering techniques to dependency graphs extracted from class diagrams it has been found that these techniques were not able to detect key dependency patterns that relied on characteristic relationships of classes within a cluster to classes outside of that cluster. An algorithm is proposed to detect such dependencies. In the last part of the thesis, leveraging utilization of the shared caches of multicore processors is explored. A different approach is applied by using software models to guide operating system to effectively map software’s objects onto processor cores. The two main contributions of this thesis are the use of static object oriented software designs in detecting impilict parallelism in software and using this model based information during scheduling of object oriented parallel software. The experiments show that performance improvements up to 30% can be achieved using model based techniques.
Açıklama
Tez (Doktora) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2011
Thesis (PhD) -- İstanbul Technical University, Institute of Science and Technology, 2011
Anahtar kelimeler
Nesneye dayalı yazılım paralelleştirme, model tabanlı paralelleştirme, model tabanlı iş sıralama, Object oriented software parallelization, model based parallelization, model based scheduling
Alıntı