Geri Dön

Paralel hata ayıklama

Parallel debugging

  1. Tez No: 352110
  2. Yazar: SİNAN KUL
  3. Danışmanlar: YRD. DOÇ. DR. DENİZ DAL
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Hata ayıklama, paralel hata ayıklama, paralel programlama, dağıtık bellek, MPI, ölümcül kilitlenme, senkronizasyon, Debugging, parallel debugging, parallel programming, distributed memory, MPI, deadlock, synchronization
  7. Yıl: 2014
  8. Dil: Türkçe
  9. Üniversite: Atatürk Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 99

Ö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.

Özet (Çeviri)

The process of detection and correction of logical errors (bugs) that a computer software, that works but produces wrong (unexpected) results, contains is defined as debugging. Debugging a program is more difficult and more complicated than writing it in the first place. This process will be more challenging as far as the parallel programs that we will often encounter in the near future are concerned since they bring the communication and the synchronization problems along the way. These problems increase the number and the diversity of the bugs. In addition, the non-deterministic structures of the parallel programs make the reproducibility of the bugs difficult. Since a parallel program can not be run in a step by step fashion, traditional debugging techniques also can not be applied to such programs. Motivated by the challenges listed above, this thesis aims to develop a new technique that facilitates the parallel debugging. Within the scope of this thesis, a distributed memory parallel program written in C++ using the MPI library is firstly statically analyzed and the cases that do not comply with the parallel programming rules are tried to be determined. Later, the parallel program is converted into a serial form where it can run on a single computer by removing the rank specific statements off the program. In this way, the detection of the code lines each processes runs, monitoring the variables and tracking of sent-received messages become possible. The tests performed have proved the effectiveness of the proposed technique in general on the synchronization problems and the deadlocks.

Benzer Tezler

  1. Paralel veri işleme teknikleri kullanılarak silindirik metal nesnelerin yüzey hatalarının gerçek zamanlı olarak belirlenmesi

    Real-time determination of the surface errors of cylindrical metal objects using parallel data processing techniques

    SEMRA AYDIN

    Doktora

    Türkçe

    Türkçe

    2019

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolGazi Üniversitesi

    Elektronik-Bilgisayar Eğitimi Ana Bilim Dalı

    PROF. DR. ÖMER FARUK BAY

    PROF. DR. REFİK SAMET

  2. Güvenlik sistemleri iz bilgilerinin veri madenciliği kullanılarak etkin analizi

    Effective analysis of security systems logs by using data mining methods

    IŞIL ÇİNAR

    Yüksek Lisans

    Türkçe

    Türkçe

    2015

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolGazi Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. HASAN ŞAKİR BİLGE

  3. Design of a microprocessor-based embedded fault diagnostic system and an FPGA-based improvement proposal

    Mikroişlemci tabanlı bir gömülü tanı sistemi tasarımı ve FPGA tabanlı bir optimizasyon önerisi

    ONUR BEKAR

    Yüksek Lisans

    İngilizce

    İngilizce

    2022

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. ECE OLCAY GÜNEŞ

  4. FPGA üzerinde HYSA ve HYSA'ya özel öğrenme algoritmalarının birlikte gerçeklenmesi

    Implementation of CNN and CNN specific learning algorithms on FPGA

    ERDEM KÖSE

    Yüksek Lisans

    Türkçe

    Türkçe

    2017

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. MÜŞTAK ERHAN YALÇIN