Detection of and recovery from concurrency errors using transactional memory techniques
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Bu çalışmada, çok izlekli C/C++ uygulamalarındaki eş zamanlı programlama hatalarının tespitini geliştirmek ve bu uygulamaların hareket belleǧi (TM) teknolojisi kullanılarak kurtarılmasını saǧlamak için bir yöntem öne sürüyoruz. Hareket Belleǧi, koşut program tasarımını ve uygulamasını basitleştiren, başarımı arttıran ve uygulamaları çoǧu eş zamanlı programlama hatalarından koruyan bir koşut programlama modelidir. Bizim yaklaşımımız, eş zamanlı programlama hatalarının tespit edilme başarımını arttırmak için TM kullanmakta ve kalıt C/C++ uygulamalarının eş zamanlı programlama hatasızlıktan faydalanabileceǧi bir çerçeve saǧlamaktadır.Mevcut eş zamanlı hatası tespit eden yaklaşımlar ya çok yavaş ya da mevcut işlemci mimarisinde fazladan deǧişikliklere ihtiyaç duymaktadırlar. Bu yöntemlerin uygulamayı yavaşlatması birkaç sebepten kaynaklanabilir: bunları uygulamaya eklemek için kullanılan araçlar, hataların tespiti için gerekli hesaplamalar ve bu teknikler tarafından kullanılan hata tespitiyle alakalı verinin uygun biçimde korunması.Çok izlekli bir uygulamadaki her izleǧin komut akışını küçük hareketlere bölmek için bir yol sunmaktayız. Daha sonra, eş zamanlı hata tespit verisinin iyi taneli korunmasını elde etmek için çakışma tespitini kullanmaktayız. Eş zamanlı hatalarından, özel olarak veri yarışlarından, kurtulmak için hareket yazma arabelleklerini ve geri dönüş mekanizmalarını kullanmaktayız ve hatalı veriye veya eş zamanlı programın parçalarına fazladan koruma dayatmaktayız.Yaklaşımımız birçok çok çekirdekli denektaşı uygulamada iyi çalışmakta ve uzlaşılmış yollara nazaran eşzamanlı hata tespitinde belirgin bir başarım artışı göstermektedir. Bu gelişmeler önerilen yaklaşımın endüstride kullanımı için cesaret verici öncül sonuçlardır. We propose a technique to improve detection of concurrency errors of multithreaded C/C++ applications and recovery of these applications from the errors using transactional memory (TM) technology. Transactional memory is an emerging parallel programming model which simplifies parallel program design and implementation, improves performance and protects applications from most concurrency bugs. Our approach uses TM to improve performance of detection of concurrency errors and provides a framework by which legacy C/C++ applications can benefit from concurrency error-freedom.The current concurrent error detection approaches are either too slow or need extra modification to current processor architecture. The slowdown of these techniques stems from a number of reasons: instrumentation used to add them into application, necessary computations needed to detect errors, and cost of proper protection of error-detection-related data used by these techniques.We propose a way to divide the instruction stream of each thread in a multithreaded application into small transactions. We then use conflict detection to get fine-grain protection of concurrency error detection data to improve performance. We use transaction write buffers and rollback mechanism to recover from concurrency errors, data races in particular, and impose extra protection on erroneous data or portions of concurrent program.Our approach works well on a number of multi-core benchmark applications and shows a significant performance improvement of concurrent error detection over conventional means. These improvements are encouraging initial results for the industrial usage of the proposed approach.
Collections