skip to main content
research-article

TigerQuoll: parallel event-based JavaScript

Published:23 February 2013Publication History
Skip Abstract Section

Abstract

JavaScript, the most popular language on the Web, is rapidly moving to the server-side, becoming even more pervasive. Still, JavaScript lacks support for shared memory parallelism, making it challenging for developers to exploit multicores present in both servers and clients. In this paper we present TigerQuoll, a novel API and runtime for parallel programming in JavaScript. TigerQuoll features an event-based API and a parallel runtime allowing applications to exploit a mutable shared memory space. The programming model of TigerQuoll features automatic consistency and concurrency management, such that developers do not have to deal with shared-data synchronization. TigerQuoll supports an innovative transaction model that allows for eventual consistency to speed up high-contention workloads. Experiments show that TigerQuoll applications scale well, allowing one to implement common parallelism patterns in JavaScript.

References

  1. HTML5 Web Worker API specification draft. URL http://dev.w3.org/html5/workers/.Google ScholarGoogle Scholar
  2. Node.JS: evented programming for networked services in JS. URL http://www.nodejs.org.Google ScholarGoogle Scholar
  3. OpenCL, the standard for parallel programming of GPU. URL http://developer.amd.com.Google ScholarGoogle Scholar
  4. Mozilla SpiderMonkey JS engine. URL www.mozilla.org/js/spidermonkey/.Google ScholarGoogle Scholar
  5. D. Bonetta, P. Achille, C. Pautasso, and W. Binder. S: a scripting language for high-performance RESTful Web services. In Proc. of PPoPP, pages 97--106, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Cascaval, C. Blundell, M. Michael, H. W. Cain, P. Wu, S. Chiras, and S. Chatterjee. Software Transactional Memory: Why Is It Only a Research Toy? Queue, 6 (5): 46--58, Sept. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In Proc. of OOPSLA, OOPSLA '05, pages 519--538, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Cole. Algorithmic skeletons: structured management of parallel computation. MIT Press, Cambridge, MA, USA, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Cole. Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Comput., 30 (3): 389--406, Mar. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Hybrid transactional memory. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, ASPLOS-XII, pages 336--346, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. Commun. ACM, 51 (1): 107--113, Jan. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In Proceedings of the 20th international conference on Distributed Computing, DISC'06, pages 194--208, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Dragojević, R. Guerraoui, and M. Kapalka. Stretching transactional memory. In Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, PLDI '09, pages 155--165, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Dragojević, P. Felber, V. Gramoli, and R. Guerraoui. Why S™ can be more than a research toy. Commun. ACM, 54 (4): 70--77, Apr. 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Erbad, N. C. Hutchinson, and C. Krasic. DOHA: scalable real-time Web applications through adaptive concurrent execution. In Proceedings of the 21st international conference on World Wide Web, WWW '12, pages 161--170, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Flanagan. JavaScript. The Definitive Guide. O'Reilly, 5th rev. edition, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. H. Halstead, Jr. Multilisp: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst., 7 (4): 501--538, Oct. 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T. Harris, J. Larus, and R. Rajwar. Transactional Memory. Morgan and Claypool, 2nd edition, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Herhut, R. L. Hudson, T. Shpeisman, and J. Sreeram. Parallel programming for the Web. In Proceedings of the 4th USENIX conference on Hot Topics in Parallelism, HotPar'12, pages 1--6, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Isard and A. Birrell. Automatic mutual exclusion. In Proceedings of the 11th USENIX workshop on Hot topics in operating systems, HOTOS'07, pages 3:1--3:6, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Lea. Concurrent Programming in Java. Second Edition: Design Principles and Patterns. Addison-Wesley, Boston, MA, USA, 2nd edition, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Lea. A Java fork/join framework. In Proceedings of the ACM 2000 conference on Java Grande, JAVA '00, pages 36--43, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. N. D. Matsakis. Parallel closures: a new twist on an old idea. In Proceedings of the 4th USENIX conference on Hot Topics in Parallelism, HotPar'12, pages 1--6, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. D. McCool. Structured parallel programming with deterministic patterns. In Proceedings of the 2nd USENIX conference on Hot topics in parallelism, HotPar'10, pages 1--6, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Mehrara, P.-C. Hsu, M. Samadi, and S. A. Mahlke. Dynamic parallelization of JavaScript applications using an ultra-lightweight speculation mechanism. In 17th International Conference on High-Performance Computer Architecture, HPCA-17, pages 87--98, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Odersky, S. Micheloud, N. Mihaylov, M. Schinz, E. Stenman, M. Zenger, and et al. An overview of the Scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.Google ScholarGoogle Scholar
  27. R. Power and J. Li. Piccolo: building fast, distributed programs with partitioned tables. In Proceedings of the 9th USENIX conference on Operating systems design and implementation, OSDI'10, pages 1--14, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. D. Syme, T. Petricek, and D. Lomov. The F# asynchronous programming model. In Proceedings of the 13th international conference on Practical aspects of declarative languages, PADL'11, pages 175--189, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. TigerQuoll: parallel event-based JavaScript

      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

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 48, Issue 8
        PPoPP '13
        August 2013
        309 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2517327
        Issue’s Table of Contents
        • cover image ACM Conferences
          PPoPP '13: Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
          February 2013
          332 pages
          ISBN:9781450319225
          DOI:10.1145/2442516

        Copyright © 2013 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 February 2013

        Check for updates

        Qualifiers

        • research-article

      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!