skip to main content
10.1145/1504176.1504190acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Serialization sets: a dynamic dependence-based parallel execution model

Published:14 February 2009Publication History

ABSTRACT

This paper proposes a new parallel execution model where programmers augment a sequential program with pieces of code called serializers that dynamically map computational operations into serialization sets of dependent operations. A runtime system executes operations in the same serialization set in program order, and may concurrently execute operations in different sets. Because serialization sets establish a logical ordering on all operations, the resulting parallel execution is predictable and deterministic.

We describe the API and design of Prometheus, a C++ library that implements the serialization set abstraction through compile-time template instantiation and a runtime support library. We evaluate a set of parallel programs running on the x86_64 and SPARC-V9 instruction sets and study their performance on multicore, symmetric multiprocessor, and ccNUMA parallel machines. By contrast with conventional parallel execution models, we find that Prometheus programs are significantly easier to write, test, and debug, and their parallel execution achieves comparable performance.

References

  1. C. Bienia et al. The PARSEC benchmark suite: Characterization and architectural implications. In Proceedings of the 17th international conference on Parallel Architectures and Compilation Techniques (PACT), October 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Czarnecki and U. W. Eisenecker. Generative Programming. Addison-Wesley, 2000.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Das et al. Communications optimizations for irregular scientific computations on distributed memory architectures. Journal of Parallel and Distributed Computing, 22:462--478, September 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Dean and S. Ghemawat. MapReduce: Simplified data processing on large clusters. In Proceedings of the 6th symposium on Operating System Design and Implementation (OSDI), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Frigo et al. The implementation of the Cilk-5 multithreaded language. In Proceedings of the 1998 conference on Programming Language Design and Implementation (PLDI), pages 212--223, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Giacomoni et al. FastForward for efficient pipeline parallelism: A cache-optimized concurrent lock-free queue. In Proceedings of the 13th symposium on Principles and Practice of Parallel Programming (PPoPP), pages 43--52, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. H. Halstead. MULTILISP: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501--538, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Aritificial Intelligence, 8:323--363, 1977.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Intel. Threading building blocks. http://threadingbuildingblocks.org.Google ScholarGoogle Scholar
  10. M. Kulkarni et al. Optimistic parallelism requires abstractions. In Proceedings of the 2007 conference on Programming Language Design and Implementation (PLDI), pages 211--222, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. G. Lavender and D. C. Schmidt. Active object: An object behavioral pattern for concurrent programming. In Proceedings of the 2nd conference on Pattern Languages of Programs (PLoP), 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. A. Lee. The problem with threads. IEEE Computer, 39(5):33--42, May 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. C. E. Leiserson. Cilk++: Multicore-enabling legacy C++ code. Carnegie Mellon University Parallel Thinking Series, April 2008.Google ScholarGoogle Scholar
  14. Microsoft. Programming the ThreadPool in .NET. http://msdn.microsoft.com/en-us/library/ms973903.aspx.Google ScholarGoogle Scholar
  15. Microsoft. Task parallel library (TPL). http://msdn.microsoft.com/en-us/magazine/cc163340.aspx.Google ScholarGoogle Scholar
  16. OpenMP. The OpenMP API specification for parallel programming. http://openmp.org/wp/.Google ScholarGoogle Scholar
  17. J. Pisharath et al. NU-MineBench 2.0. Technical Report CUCIS-2005-08-01, Northwestern University, 2005.Google ScholarGoogle Scholar
  18. R. Rajwar and J. Larus. Transactional Memory. Morgan Claypool, October 2006.Google ScholarGoogle Scholar
  19. C. Ranger et al. Evaluating MapReduce for multi-core and multiprocessor systems, 2007.Google ScholarGoogle Scholar
  20. M. C. Rinard and M. S. Lam. The design, implementation, and evaluation of jade. ACM Transactions on Programming Languages and Systems, 20(3):483--545, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. Sutter and J. Larus. Software and the concurrency revolution. ACM Queue, 3(7), September 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, May 1995.Google ScholarGoogle Scholar

Index Terms

  1. Serialization sets: a dynamic dependence-based parallel execution model

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          PPoPP '09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
          February 2009
          322 pages
          ISBN:9781605583976
          DOI:10.1145/1504176
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 44, Issue 4
            PPoPP '09
            April 2009
            294 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1594835
            Issue’s Table of Contents

          Copyright © 2009 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 February 2009

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate230of1,014submissions,23%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!