Synchronization identification through on-the-fly test

  • Authors:
  • Xiang Yuan;Zhenjiang Wang;Chenggang Wu;Pen-Chung Yew;Wenwen Wang;Jianjun Li;Di Xu

  • Affiliations:
  • SKL of Computer Architecture, Institute of Computing Technology, CAS, China,University of Chinese Academy of Sciences Beijing, China;SKL of Computer Architecture, Institute of Computing Technology, CAS, China;SKL of Computer Architecture, Institute of Computing Technology, CAS, China;Department of Computer Science and Engineering, University of Minnesota at Twin-Cities, Minneapolis and Institute of Information Science, Academia Sinica, Taiwan;SKL of Computer Architecture, Institute of Computing Technology, CAS, China,University of Chinese Academy of Sciences Beijing, China;SKL of Computer Architecture, Institute of Computing Technology, CAS, China;IBM Research, China

  • Venue:
  • Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Identifying synchronizations could significantly improve testing and debugging of multithreaded programs because it could substantially cut down the number of possible interleavings in those tests. There are two general techniques to implement synchronizations: modularized and ad-hoc. Identifying synchronizations in multi-threaded programs could be quite challenging. It is because modularized synchronizations are often implemented in an obscure and implicit way, and ad-hoc synchronizations could be quite subtle. In this paper, we try to identify synchronizations from a new perspective. We found that if a thread is waiting for synchronizations, the code it executes during the wait is very different from that after the completion of the synchronization. Based on such an observation, we proposed an effective method to identify synchronizations. It doesn't depend on the understanding of source codes or the knowledge of semantics of library routines. A system called SyncTester is developed, and experiments show that SyncTester is effective and useful.