Efficient Runtime Detection And Toleration Of Asymmetric Races
This work introduces ToleRace, a runtime system that allows parallel programs to detect and even tolerate asymmetric data races. Asymmetric races are race conditions where one thread correctly acquires and releases a lock for a shared variable while another thread improperly accesses the same variable. ToleRace provides approximate isolation in the critical sections of lock-based parallel programs by creating a local copy of each shared variable when entering a critical section, operating on the local copies, and propagating the appropriate copies upon leaving the critical section. This dissertation starts by characterizing all possible interleavings that can cause races and precisely describes the effect of ToleRace in each case. Then, it presents the theoretical aspects of an oracle that knows exactly what type of interleaving has occurred. After that, it presents software and hardware implementations of ToleRace and evaluates them on multithreaded applications from the SPLASH2 and PARSEC benchmark suites.
dissertation or thesis