Paralel Hata Ayıklama


Tezin Türü: Yüksek Lisans

Tezin Yürütüldüğü Kurum: Atatürk Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği, Türkiye

Tezin Onay Tarihi: 2014

Tezin Dili: Türkçe

Öğrenci: Sinan KUL

Danışman: Deniz Dal

Açık Arşiv Koleksiyonu: AVESİS Açık Erişim Koleksiyonu

Özet:

Çalışan ama yanlış (beklenmeyen) sonuçlar üreten bir bilgisayar yazılımının içerdiği mantıksal problemlerin (hata) tespit edilmesi ve düzeltilmesi süreci hata ayıklama olarak tanımlanır. Bir programdaki hataların ayıklanması çoğunlukla mevcut programın yazılmasından daha zor ve daha karmaşık bir işlemdir. Yakın bir gelecekte sıklıkla karşılacağımız paralel programlar söz konusu olduğunda bu işlemin zorluğu bir kat daha artmaktadır; çünkü paralel programlar iletişim ve senkronizasyon problemlerini de beraberinde getirmektedir. Geleneksel (seri) programlamada olmayan bu problemler programlamayı olduğundan karmaşık yapmaktadır; bu ise hataların sayısını ve çeşitliliğini artırmaktadır. Ayrıca paralel programların deterministik olmayan yapıları hataların tekrarlanabilirliğini zorlaştırmaktadır. Paralel bir program adım adım çalıştırılamadığı için de geleneksel hata ayıklama teknikleri bu tür programlara uygulanamamaktadır. Yukarıda sıralanan zorluklarla motive olan bu tez ile paralel programlardaki hataların ayıklanmasını kolaylaştıracak yeni bir tekniğin geliştirilmesi hedeflenmiştir. Bu tez kapsamında öncelikle MPI kütüphanesi kullanılarak C++ dilinde yazılmış olan dağıtık bellekli paralel bir program statik olarak analiz edilmektedir ve paralel yazım kurallarına uymayan durumlar tespit edilmeye çalışılmaktadır. Daha sonra söz konusu paralel program işlemci numaralarından arındırılarak tek bir bilgisayar üzerinde çalışacak seri bir forma dönüştürülmektedir. Bu sayede her bir işlemcinin çalıştırdığı kod satırlarının tespiti, değişken değerlerinin izlenmesi ve gönderilen-alınan mesajların takibi mümkün olmaktadır. Yapılan testler önerilen tekniğin genel anlamda senkronizasyon problemlerinin ve ölümcül kilitlenmelerin tespit edilmesinde başarılı olduğunu kanıtlamıştır. Anahtar Kelimeler: Hata ayıklama, paralel hata ayıklama, paralel programlama, dağıtık bellek, MPI, ölümcül kilitlenme, senkronizasyon.