Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2414729.2414734acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Beyond expert-only parallel programming?

Published: 21 October 2012 Publication History

Abstract

My parallel-programming education began in earnest when I joined Sequent Computer Systems in late 1990. This education was both brief and effective: within a few short years, my co-workers and I were breaking new ground [MG92, MS93, MS98].1 Nor was I alone: Sequent habitually hired new-to-parallelism engineers and had them producing competent parallel code within a few months. Nevertheless, more than two decades later, parallel programming is perceived to be difficult to teach and learn. Is parallel programming an exception to the typical transitioning of technnology from impossible to expert-only to routine to unworthy of conscious thought?

References

[1]
{AGH11}Hagit Attiya, Rachid Guerraoui, Danny Hendler, Petr Kuznetsov, and Maged M. Michael.Laws of order: Expensive synchronization in concurrent algorithms cannot be eliminated.In 38th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages}, New York, NY, USA, 2011. ACM.
[2]
{AMP11}Jade Alglave, Luc Maranget, Pankaj Pawan, Susmit Sarkar, Peter Sewell, Derek Williams, and Francesco Zappa Nardelli. PPCMEM/ARMMEM: A tool for exploring the POWER and ARM memory models.June 2011.
[3]
{BHS07}Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt. Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing. Wiley, Chichester, West Sussex, England, 2007.
[4]
{BK85}Bob Beck and Bob Kaste VLSI assist in building a multiprocessor {UNIX} system.In USENIX Conference Proceedings, pages 255--275, Portland, OR, June 1985. USENIX Association.
[5]
{Bro11}Neil Brown.Meet the Lockers. Available: http://lwn.net/Articles/453685/{Viewed September 2,2011}, August 2011.
[6]
{But97}David Butenhof. Programming with POSIX Threads.Addison-Wesley, Boston, MA, USA, 1997.
[7]
{BWCM}Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev,M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich. An analysis of {Linux} scalability to many cores. In 9th USENIX Symposium on Operating System Design and Implementation}, pages 1--16, Vancouver, BC, Canada, October 2010. USENIX.
[8]
{CKZ12}Austin Clements, Frans Kaashoek, and Nickolai Zeldovich. Scalable address spaces using {RCU} balanced trees. In Architectural Support for Programming Languages and Operating Systems (ASPLOS 2012), pages 199--210, London, UK, March 2012. ACM.
[9]
{Cor01}Jonathan Corbet. No more jiffies? Available: http://lwn.net/2001/0412/bigpage.php3#kernel{Viewed August 10, 2012}, April 2001.
[10]
{Cor04}Jonathan Corbet.Finding kernel problems automatically. Linux Weekly News, June 2004.
[11]
{Cor06}Jonathan Corbet. The kernel lock validator. Available: http://lwn.net/Articles/185666/ {Viewed: March 26, 2010}, May 2006.
[12]
{CRKH05}Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. Linux Device Drivers. O'Reilly Media, Inc., third edition, 2005.
[13]
{DMS'12} Mathieu Desnoyers, Paul E. McKenney, Alan Stern, Michel R. Dagenais, and Jonathan Walpole. User-level implementations of read-copy update. IEEE Transactions on Parallel and Distributed Systems, 23:375--382, 2012.
[14]
{GPB'07} Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. Java: Concurrency in Practice. Addison Wesley, Upper Saddle River, NJ, USA, 2007.
[15]
{GRY12}Alexey Gotsman, Noam Rinetzky, and Hongseok Yang. Verifying highly concurrent algorithms with grace (extended version). Available: \url{http://sites.google.com/site/popl13grace/paper.pdf}.
[16]
{HMB06}Thomas E. Hart, Paul E. McKenney, and Angela Demke Brown. Making lockless synchronization fast: Performance implications of memory reclamation. In 20th IEEE International Parallel and Distributed Processing Symposium}, Rhodes, Greece, April 2006. Available: http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf {Viewed April 28, 2008}.
[17]
{HMBW07}Thomas E. Hart, Paul E. McKenney, Angela Demke Brown, and Jonathan Walpole. Performance of memory reclamation for lockless synchronization. J. Parallel Distrib. Comput., 67(12):1270--1285, 2007.
[18]
{Hol03}Gerard J. Holzmann. The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, 2003.
[19]
{HS08}Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, Burlington, MA, USA, 2008.
[20]
{HSW96}Maurice Herlihy, Nir Shavit, and Orli Waarts. Linearizable counting networks. Distrib. Comput., 9:193--203, February 1996.
[21]
{Inm85} Jack Inman. Implementing loosely coupled functions on tightly coupled engines. In USENIX Conference Proceedings, pages 277--298, Portland, OR, June 1985. USENIX Association.
[22]
{Jon11}Dave Jones. Trinity: A system call fuzzer. In Proceedings of the 13th Ottawa Linux Symposium, pages ???--???, Ottawa, Canada, June 2011.
[23]
{Lea97}Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison Wesley Longman, Reading, MA, USA, 1997.
[24]
{McK04}Paul E. McKenney. Exploiting Deferred Destruction: An Analysis of Read-Copy-Update Techniques in Operating System Kernels. PhD thesis, OGI School of Science and Engineering at Oregon Health and Sciences University, 2004. Available: http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf.
[25]
{McK06}Paul E. McKenney. RCU Linux usage. Available: http://www.rdrop.com/users/paulmck/RCU/linuxusage.html {Viewed January 14, 2007}, October 2006.
[26]
{McK07}Paul E. McKenney. SMP and embedded real time. Linux Journal, (153):52--57, January 2007. Available: http://www.linuxjournal.com/article/9361 {Viewed May 31, 2007}.
[27]
{McK10a}Paul E. McKenney. Lockdep-{RCU}. Available: https://lwn.net/Articles/371986/ {Viewed June 4, 2010}, February 2010.
[28]
{McK10b}Paul E. McKenney. The {RCU} {API}, 2010 edition. Available: http://lwn.net/Articles/418853/ {Viewed December 8, 2010}, December 2010.
[29]
{McK11a}Paul E. McKenney. Concurrent code and expensive instructions. Available: \url{http://lwn.net/Articles/423994 {Viewed January 28, 2011}, January 2011.
[30]
{McK11b}Paul E. McKenney. Verifying parallel software: Can theory meet practice? http://www.rdrop.com/users/paulmck/scalability/paper/VericoTheoryPracti%ce.2011.01.28a.pdf, January 2011.
[31]
{McK12a}Paul E. McKenney. Is Parallel Programming Hard, And, If So, What Can You Do About It? kernel.org, Corvallis, OR, USA, 2012. Available: http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.htm%l {Viewed March 28, 2010}.
[32]
{McK12b}Paul E. McKenney. Making {RCU} safe for battery-powered devices. Available: http://www.rdrop.com/users/paulmck/RCU/RCUdynticks.2012.02.15b.pdf February 2012.
[33]
{McK12c}Paul E. McKenney. Real-time response on multicore systems: It is bigger than you think. Available:http://www.seas.gwu.edu/ gparmer/ospert12/bigrt.2012.07.10a.pdf {Viewed August 10, 2012}, July 2012.
[34]
{MG92}Paul E. McKenney and Gary Graunke. Efficient buffer allocation on shared-memory multiprocessors. In IEEE Workshop on the Architecture and Implementation of High Performance Communication Subsystems, pages 194--199, Tucson, AZ, February 1992. The Institute of Electrical and Electronics Engineers, Inc.
[35]
{MS93}Paul E. McKenney and Jack Slingwine. Efficient kernel memory allocation on shared-memory multiprocessors. In USENIX Conference Proceedings, pages 295--306, Berkeley CA, February 1993. USENIX Association. Available: http://www.rdrop.com/users/paulmck/scalability/paper/mpalloc.pdf.
[36]
{MS98}Paul E. McKenney and John D. Slingwine. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems, pages 509--518, Las Vegas, NV, October 1998. Available: http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf {Viewed December 3, 2007}.
[37]
{MSM05}Timothy G. Mattson, Beverly A. Sanders, and Berna L. Massingill. Patterns for Parallel Programming. Addison Wesley, Boston, MA, USA, 2005.
[38]
{PLM06}Yoann Padioleau, Julia L. Lawall, and Gilles Muller. Understanding collateral evolution in linux device drivers. In Proceedings of the ACM SIGOPS EuroSys 2006 Conference, pages 59--71, Leuven, Belgium, April 2006. ACM.
[39]
{PTS'11} Nicolas Palix, Gael Thomas, Suman Saha, Christophe Calvès, Julia Lawall, and Gilles Muller. Faults in linux: Ten years later. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2011), pages 305--318, Newport Beach, California, USA, March 2011. ACM.
[40]
{Rei07}James Reinders. Intel Threading Building Blocks. O'Reilly, Sebastopol, CA, USA, 2007.
[41]
{Ros11}Steven Rostedt. lockdep: How to read its cryptic output. http://www.linuxplumbersconf.org/2011/ocw/sessions/153, September 2011.
[42]
{Rus03}Rusty Russell. Unreliable guide to locking. Available: http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/index.html {Viewed September 10, 2012}, 2003.
[43]
{Sco06} Michael Scott. Programming Language Pragmatics. Morgan Kaufmann, Burlington, MA, USA, 2006.
[44]
{Seq88}Sequent Computer Systems, Inc. Guide to Parallel Programming, 1988.
[45]
{SMO'12} Susmit Sarkar, Kayvan Memarian, Scott Owens, Mark Batty, Peter Sewell, Luc Maranget, Jade Alglave, and Derek Williams. Synchronizing C/C++ and POWER. In Programming Language Design and Implementation (PLDI) 2012, Beijing, China, June 2012.
[46]
{SSA'11} Susmit Sarkar, Peter Sewell, Jade Alglave, Luc Maranget, and Derek Williams. Understanding POWER multiprocessors. In Programming Language Design and Implementation (PLDI) 2011, San Jose, CA, USA, June 2011.
[47]
{SSRB00} Douglas C. Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann. Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects. Wiley, Chichester, West Sussex, England, 2000.
[48]
{Sut05}Herb Sutter. The free lunch is over: A fundamental turn toward concurrency in software. Dr. Dobb's Journal, 30(3), March 2005. Available: http://www.gotw.ca/publications/concurrency-ddj.htm.
[49]
{Sut08} Herb Sutter. Effective concurrency. Series in Dr. Dobbs Journal, 2008.
[50]
{Swe87}Frank J. Swetz. Capitalism & Arithmetic: The New Math of the 15th Century. Open Court, 1987.
[51]
{Tor06}Linux Torvalds. Open forum on os architecture for multicore and manycore platforms. Panel Discussion, hosted by Intel Research Council Scalable Systems Committee, November 2006.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
RACES '12: Proceedings of the 2012 ACM workshop on Relaxing synchronization for multicore and manycore scalability
October 2012
74 pages
ISBN:9781450316323
DOI:10.1145/2414729
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 October 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. acculturation
  2. economics
  3. linux kernel
  4. tooling

Qualifiers

  • Research-article

Conference

SPLASH '12
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 127
    Total Downloads
  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media