Runtime race detection for shared memory programming models
2018
0 views
0 downloads
Advisor: Dr. Öğr. Üyesi Didem Unat
Abstract (TR)
Bu tez, üç paylaşımlı bellek programlama modelinde yarış durumu tespit edebilmek için yöntemler sunuyor: (i) OpenMP görevleri, (ii) Atomik DataFlow (ADF) gibi veri-akışı programlama modelleri, ve (iii) gömülü sistemlerdeki POSIX iş iplikleri. Bu modellerde yarıs durumlarını tespit etme ihtiyacı HPC, paralel programlama ve koşut zamanlı programlama topluluklarında sıkca kullanılması gerçeğinden güç almıştır ama bu programlama modellerinde yarış durumu tespit edecek araçların eksikliği bulunmaktadır. Belirlilik yarışı, koşut yürüyen varlıklar (mesela görevler) aynı hafıza bölgesine aralarında belirli bir sıralama olmadan eriştiklerinde ve içlerinden en az bir erişim o bölgeye yazma olduğunda oluşan bir durumdur. Sonuç olarak, belirlilik yarışı içeren programlar aynı girdinin farklı koşumlarında farklı sonuç çıktısı üretebilirler. OpenMP ile paralel program yazarken potansiyel problemlerden biri belirlilik yarışı oluşmasıdır öyle ki verilen girdi için program farklı koşumlarında beklenmedik bir şekilde farklı son çıktılar üretebilir. Böyle şaşırtan davranışlar OpenMP görevlerinin yanlış sıralanmasından doğabilir. OpenMP görevlerindeki belirlilik yarışlarının işleyış süresi içinde tespiti için bir yöntem sunuyoruz. OpenMP programlarının anlamına dayanarak, önerdiğimiz çözüm, bir OpenMP programını aralarında çıkarım bağımlılıkları olan görev koleksiyonları olarak modelliyor, öyle ki her görev ya üstü kapalı olarak bir parallel bölge yapısı tarafından yaratılıyor ya da doğrudan bir görev yapısı tarafından yaratılıyor. Biz belirlilik yarışlarını tespit ederken yürütme sırasını belirlemek için böyle bağımlılıklara dayanan bir önce-olur ilişkisi tanımlıyoruz. Bu biçimselleştrimeye dayanarak görevlerin ortak bağımlılıklarının olmadığı koşut hafıza erişimlerini tespit eden ve raporlayan TaskSanitizer isimli aracı geliştirdik. Son olarak, TaskSanitizer işleyiş süresinde çalışıyor, mikro-değerlendirme deneylerinde hataları bulabildi ve çalışma ortamlarında faydalanılabilecek kadar etkili. Archer OpenMP programlarında koşut zamanlı iş iplikleri arasında veri yarış durumu tespiti için etkili bir araçtır. Aksine, biz koşut zamanlı bileşenler arasında sıralama olmadığı durumlarda oluşan belirlilik yarışlarını tespit ediyoruz. Archer bu durumları tespit etmekte başarısız olabilir ve aynı iş iplikleri tarafından çalıştırılan koşut görevleri kaçırıyor. İş iplikleri yerine görevler üzerinde önce-olur ilişkisi inşa ederek bu durumları yakalayabiliyoruz. ADF'deki belirlilik yarışlarını çıktı belirsizliği olarak adlandırmaya karar verdik çünkü bütün görevler atomiktir ve bu yüzden hatalı program ve girdinin farklı koşumlarında farklı çıktılar gözlemlenebilir. Eğer programcı aynı hafıza bölgelerine erişen görevler arasındakş gerekli bağımlılıkları belirlemezse, çıktı belirsizliği mümkün hale gelir. Bu durum gayet mümkündür çünkü yüksek seviyede koşut zamanlı programları gerçeklemek çetrefilli bir iştir ve programcılar kolayca program çıktısını etkileme potansiyeline sahip istemsiz belirsizlikler uygulamaya koyabilir. Böyle istemsiz belirsizlikler programcının niyeti dışında aynı girdi ile farklı koşumlarda farklı sonuçlar üreten özel belirlilik yarışlarıdır. Veri-akışı çalışma modelli paylaşımlı bellek sistemlerde geliştirilmiş uygulamalardaki çıktı belirsizliğini tespit etmek için bir teknik öneriyor ve gerçekliyoruz. Böyle belirsizlik hataları görevlerin bazı sıralamalarını sağlamak için kullanılan görev bağımlılıklarının eksik veya yanlış sıralanmasından dolayı oluşabilir. Önerilen yöntem, veri-akışı bağımlılık çizgesinde görevler üzerinde önce-olur ilişkisinin formüle edilmesine dayanmaktadır. Gerçeklemesi iki ana fazdan oluşur: günlük kayıtları ve tespiti. Yürütümden gerekli bilgiyi kaydetmek için, araç LLVM derleyici altyapısı üzerinde, veri-akışı çatısı ve uygulamalarını ölçüm araçlarıyla donatır. Sonra, yürütümde bulunan çıktı belirsizliklerinden toplanan günlük ve raporları işler. Programcıya olası belirsizlik hatalarına karşın bir test çatısı sağlamak için, araç geliştirme döngüsüne entegre edilebilir. Etkinliğini göstermek için, ADF modelinde yazılan bir değerlenmdirme deney kümesi ile çalıştık ve onlardaki gerçek belirsizlik hatalarını raporladık. Son olarak; 32-bit ARM tabanlı, çok iş örgülü, POSIX iş örgüleri kullanan C/C++ uygulamalarında koşut zamanlı veri yarışlarını tespit eden bir araç olan Embed-Sanitizer'ı öneriyoruz. Gömülü sistem yazılımlarında koşut zamanlı veri yarışlarını sanallaştırma, emülasyon ya da başka bir mimari kullanmadan yerel olarak tespit etme fikrini teşvik ediyoruz. Hedef donanınmda çalışan uygulamalardaki veri yarışlarını tespit etmek daha kesin sonuçlar, artan verimlilik sağlar ve böylece geliştiriciye yüksek üretkenlik sağlar. EmbedSanitizer, 64-bit uygulamalar için bir yarış algılama aracı olan ThreadSanitizer'ı 32-bit ARM uygulamalarında yarış tespiti yapacak şekilde geliştirir. EmbedSanitizer'ı 933MB RAM'i ve 4 mantıksal çekirdeği olan ARMv7 işlemcili bir makinede PARSEC değerlendirme deneylerini kullanarak değerlendiriyoruz. Yarış tespiti sonuçlarımız aynı değerlendirme deneyinin ThreadSanitizer kullanan 64-bit bir makinede verdiği sonuçlarla eksiksiz biçimde uyuşmakta. Ayrıca, EmbedSanitizer'ın başarım ek yükleri gömülü yazılım geliştirmek için yaygın bir platform olan bir emülatörde yarış algılamasını çalıştırmaya göre daha düşük. Bu tez, belirlilik yarışlarını tespit etmek için bir yöntem sunuyor ve OpenMP görevlerini kullanarak etkililiğini gösteriyor. Buna ek olarak, ADF gibi veri akışı programlama modellerinde belirlilik yarışlarını tespit etmek için bir yöntem sunuyor. Son olarak, bu tez gömülü sistemlerde 32-bit POSIX iş örgüleri uygulamalarındaki veri yarışlarını tespit etmek için bir araç sunuyor. Bu tezin hem endüstriye hem de araştırma topluluklarına faydalı olacağı bekleniyor. Ayrıca bu tez yarış algılamada daha iyi çözümler için ileri araştırmaların kapısını açıyor.
Author
Dr. Hassan Salehe Matar
Institution
How to Cite
Hassan Salehe Matar (Doktora Tezi). Runtime race detection for shared memory programming models, 2018, Koç University.
Keywords
License
Tüm Hakları Saklıdır
This work is shared under the specified license terms.
More theses from Koç University
- International marketing strategies of Ekom-Eczacıbaşı in the Russian market(1995)
- The Balkans in an Age of Baroque transformations in architecture, decoration, and patterns of patronage ad cultural production in Ottoman Europe, 1718-1856(2006)
- Single machine scheduling with timelag constraints(2014)
- Ottoman olfactory traditions in a palatial space: Incense burners in The Topkapi Palace(2015)
- The connectedness of the Rum Seljuks and the Kingdom of Georgia: A framework for artistic exchance in the thirteenth century(2015)
- Turkish coffee fortune-telling ritual as a source of inspiration for designing object-mediated advice interactions(2017)
