Computer Engineering / Bilgisayar Mühendisliği

Permanent URI for this collectionhttps://hdl.handle.net/11147/10

Browse

Search Results

Now showing 1 - 2 of 2
  • Research Project
    FTGPGPU - Genel amaçlı grafik işlemci birimi uygulamaları için donanım hatası toleransı analizi
    (2022) Öz, Işıl
    Genel amaçlı hesaplamalar için grafik islemci birimlerinin (GPGPU) kullanımı, donanım hatalarının kritikligini arttırmakta, programların geçici hata hassasiyetini degerlendirmek ve uygun hata toleransı tekniklerini kullanmak daha önemli hale gelmektedir. Hataya en hassas program bölgelerinin korunması yoluyla, hem performansı, hem de güvenilirligi hedefleyen sistemler için ayrıntılı bölgesel hata hassasiyeti analizi çok önemlidir. Bu projede, GPGPU uygulamalarının geçici donanım hatası hassasiyetinin ölçülmesi, analiz edilmesi ve bu analizlerin sonuçlarının program özellikleri ile iliskilendirilmesi, seçimli hata toleransı yöntemi gelistirilmesi yoluyla kullanılması amaçlanmıstır. Projenin ilk katkısı, GPGPU uygulamlarının geçici hata hassasiyetlerinin bölgesel olarak belirlenmesi için yazılım ile donanım iliskisini saglayacak sekilde assembly seviyesinde hata ayıklayıcı tabanlı bir hata enjeksiyonu ve hata yayılımı analizi aracı gelistirilmesidir. Bu araç kullanılarak farklı yapıdaki, farklı özelliklere sahip GPGPU programlarının belirlenen kod bölgelerine hata enjeksiyonu saglayan deneyler yapılmıs, kod bölgelerinin hata hassasiyetleri ve olusan hatanın program süresince farklı veri yapılarına yayılımı incelenmistir. Projenin ikinci katkısı, GPGPU program kod parçalarının özellikleri ile bu kodlar çalısırken meydana gelebilecek hatalara hassasiyetleri arasındaki iliskinin incelenmesidir. GPGPU programlarındaki kod parçacıklarının performans ve mimari özellikleri profilleme ve simulasyon yöntemleriyle elde edilmis, ilk adımda gelistirilen hata enjeksiyonu aracıyla belirlenen kod parçalarına hata enjekte ederek uygulanan deney sonuçlarında sessiz veri bozunumu, çökme ve dogru çalısma durumları belirlenmistir. Program özellikleri-hata hassasiyeti ikilisi arasındaki iliski incelenerek program özellikleri verilen bir GPGPU uygulamasının hata hassasiyet degerleri makine ögrenmesi yöntemleriyle tahmin edilmistir. Gelistirilen tahminleme modelleriyle sessiz veri bozunumu için %82, çökme durumları için %87, dogru çalısma durumları için %96 dogruluk oranlarıyla tahminleme basarısı saglanmıstır. Projenin üçüncü katkısı, hataya daha hassas kod bölgelerinin çoklanmasına dayalı seçimli hata toleransı yöntemi gelistirilmesidir. Program gelistirici veya kullanıcı tarafından kaynak kodda isaretlenen kod bölgelerinin çoklanması seklinde gerçeklenen derleyici seviyesinde gelistirilen hata toleransı yapısı, belirtilen kernel fonksiyonlarının çoklanmasını artıklı kernel fonksiyonu olarak veya tek kernel fonksiyonu altında artıklı is parçacıgı olarak veya CUDA stream teknigi ile mümkün kılmaktadır. Böylece uygulamanın paralellik ve veri kullanımı özelliklerine göre farklı çoklama yürütme durumları seçilebilmekte, kaba taneli (coarsegrained) bir yapıda çıktı kontrolü ile performanslı bir sekilde çoklama saglanmaktadır.
  • Conference Object
    Saydam Artıklı Çalıştırma için Vekil Tasarım Örüntüsü Kullanımı
    (CEUR Workshop Proceedings, 2018) Öz, Dündar; Öz, Sinan; Öz, Işıl
    In this study, we propose a transparent model for reliable execution of object-oriented software. We design a generic object-oriented programming tool for redundant software execution to provide the desired level of reliability against transient hardware faults. To achieve this, we utilize the Proxy design pattern which is one of the well-known GoF design patterns that are formed to make software systems exible and easy to maintain. Proxy design pattern provides a controlled access and a transparent mechanism for adding new functionalities to an existing object when accessing it. Combining the instruments of dynamic proxy and annotations in Java programming language, we present, Redundant- Caller, a generic, transparent, and con gurable tool for redundant execution and majority voting. Our tool takes any object and creates a dynamic proxy for it which executes the methods of the object multiple times in separate threads, and performs majority voting on the background, requiring minimum amount of change in the original user code. Thanks to annotations, users can con gure the redundant execution scheme methodwise. Our experiments demonstrate that our tool provides a signi cant level of reliability to any object-oriented software with a reasonable amount of performance degradation through multithreaded execution.