研究生: |
呂沂善 Lu, Yi-Shan |
---|---|
論文名稱: |
用於平行程式中必然先序關係且免於死結的同步動作合成器 A Deadlock-Free Synchronization Synthesizer for Must-Happen-Before Relations in Parallel Programs |
指導教授: |
蔡仁松
Tsay, Ren-Song |
口試委員: |
金仲達
游本中 |
學位類別: |
碩士 Master |
系所名稱: |
電機資訊學院 - 資訊工程學系 Computer Science |
論文出版年: | 2011 |
畢業學年度: | 99 |
語文別: | 英文 |
論文頁數: | 47 |
中文關鍵詞: | 必然先序關係 、同步動作 、合成 |
外文關鍵詞: | Must-Happen-Before Relations, Synchronization, Synthesis |
相關次數: | 點閱:3 下載:0 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
為了確保平行程式中的不可分割性和相依性,程式撰寫者必須採用同步動作,然而其人工實作相當繁瑣且易錯。不正確或非所欲行為時常導致平行程式錯誤,如死結。為了解決執行緒之間的相依性問題,本論文提出「同步必然先序」,乃第一個用於必然先序關係之同步動作合成器。根據用戶給定的必然先序關係,我們的「同步必然先序」將自動辨識死結,然後以低階同步基本構造(如跨平台作業系統介面函式庫)合成對應的實作碼。實驗結果顯示,我們合成的程式碼和專業人員手寫的表現一樣好。
In order to ensure atomicity and dependency of parallel programs, programmers are required to adopt synchronization schemes, but manual implementation is quite tedious and error-prone. Incorrect or unintended behaviors often result in concurrency bugs, e.g., deadlock. To resolve dependency among threads, this paper proposes SyncMHB, the first synchronization synthesizer for Must-Happen-Before (MHB) relations. According to the user-specified MHB relations, our SyncMHB can automatically identify deadlocks and then synthesizes corresponding implementation with low-level synchronization primitives, e.g., POSIX library. The experimental results show that our synthesized codes perform as well as those professionally hand-coded.
[1] Abraham Silberschatz, Peter Baer Galvin and Greg Gagne, Operating System Principles, Seventh Edition, John Wiley & Sons, Inc., 2006.
[2] Alexandru Nicolau, Guangqiang Li and Arun Kejariwal, “Techniques for efficient placement of synchronization primitives,” in Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 199-208, Raleigh, NC, USA, February 2009.
[3] Allen B. Downey, The Little Book of Semaphores, Version 2.1.5, available at http://www.greenteapress.com/semaphores
[4] Aparna Chandramowlishwaran, Kathleen Knobe and Richard Vuduc, “Performance evaluation of concurrent collections on high-performance multicore computing systems,” in Proceedings of the 24th IEEE International Parallel and Distributed Processing Symposium, pages 1-12, Atlanta, GA, USA, April 2010.
[5] Brian Demsky and Patrick Lam, “Views: object-oriented concurrency control,” in Proceedings of the ACM/IEEE 32nd International Conference on Software Engineering – Volume 1, pages 395-404, Cape Town, South Africa, May 2010.
[6] John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, Fourth Edition, Morgan Kaufmann Publishing Co., 2006.
[7] Joseph Devietti, Brandon Lucia, Luis Ceze and Mark Oskin, “DMP: deterministic shared memory multiprocessing,” in Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 85-96, Washington, DC, March 2009.
[8] Leslie Lamport, “On interprocess communication – part I: basic formalism,” in Distributed Computing, 1(2): 77-85, 1986.
[9] Mandana Vaziri, Frank Tip and Julian Dolby, “Associating synchronization constraints with data in an object-oriented language,” in Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 334-345, Charleston, SC, USA, January 2006.
[10] Marek Olszewski, Jason Ansel and Saman Amarasinghe, “Kendo: efficient deterministic multithreading in software,” in Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 97-108, Washington, DC, USA, March 2009.
[11] Martin C. Rinard, Daniel J. Scales and Monica S. Lam, “Jade: A high-level, machine-independent language for parallel programming,” in IEEE Computer, 26(6): 28-38, June 1993.
[12] Matthew D. Allen, Srinath Sridharan and Gurindar S. Sohi, “Serialization sets: a dynamic dependence-based parallel execution model,” in Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 85-96, Raleigh, NC, USA, February 2009.
[13] Mayur Naik, Chang-Seo Park, Koushik Sen and David Gay, “Effective static deadlock detection,” in Proceedings of the 31st International Conference on Software Engineering, pages 386-396, Vancouver, Canada, May 2009.
[14] Milind Kulkarni, Keshav Pingali, Bruce Walter, Ganesh Ramanarayananm, Kavita Bala and L. Paul Chew, “Optimistic parallelism requires abstractions,” in Proceedings of the 2007 ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 211-222, San Diego, CA, USA, June 2007.
[15] Nicholas D. Matsakis and Thomas R. Gross, “Programming with intervals,” in Lecture Notes in Computer Science, 5898: 203-217, 2010.
[16] OpenMP, available at http://openmp.org/wp
[17] Shan Lu, Soyeon Park, Eunsoo Seo and Yuanyuan Zhou, “Learning from mistakes—a comprehensive study on real world concurrency bug characteristics,” in Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 329-339, Seattle, WA, USA, March 2008.
[18] Steve Carr, Jean Mayo and Ching-Kuang Shene, “Race conditions: a case study,” in Journal of Computing Science in Colleges, 17(1): 90-105, October 2001.
[19] Tom Bergan, Owen Anderson, Joseph Devietti, Luis Ceze and Dan Grossman, “CoreDet: a compiler and runtime system for deterministic multithreaded execution,” in Proceedings of the Fifteenth Edition of ASPLOS on Architectural Support for Programming Languages and Operating Systems, pages 53-64, Pittsburgh, PA, USA, March 2010.
[20] Xianghua Deng, Matthew B. Dwyer, John Hatcliff and Masaaki Mizuno, “Invariant-based specification, synthesis, and verification of synchronization in concurrent programs,” in Proceedings of the 24th International Conference on Software Engineering, pages 442-452, Orlando, FL, USA, May 2002.
[21] Zoran Budimlic, Aparna Chandramowlishwaran, Kathleen Knobe, Geoff Lownet, Vivek Sarkar and Leo Treggiari, “Multi-core implementations of the concurrent collections programming model,” in Proceedings of the 14th Workshop on Compilers for Parallel Computing, Zurich, Switzerland, January 2009.
[22] Zoran Budimlic, Aparna Chandramowlishwaran, Kathleen Knobe, Geoff Lownet, Vivek Sarkar and Leo Treggiari, “Declarative aspects of memory management in the concurrent collections parallel programming model,” in Proceedings of the 4th Workshop on Declarative Aspects of Multicore Programming, pages 47-58, Savannah, GA, USA, January 2009.