skip to main content
10.1145/2774959.2774964acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
short-paper

High-level accelerated array programming in the web browser

Published:13 June 2015Publication History

ABSTRACT

Client-side web programming currently means using technologies embedded in web browsers to run computations on the client computer. Most solutions imply using JavaScript which allows to describe computations, and modifications of the DOM displayed by the browser. However, JavaScript limits static checking as everything (types, names, etc.) is checked at runtime. Moreover its concurrent model does not take advantage of multi-core or GPU architectures. In this paper we present WebSPOC, an adapted version of the SPOC library for web applications. SPOC is an OCaml GPGPU library focusing on abstracting memory transfers and handling GPGPU computations in a strongly static typed context. SPOC proposes a specific language, called Sarek, to express kernels and different parallel skeletons to compose them. To run SPOC programs on the Web client side, its OCaml part is compiled to JavaScript code and its Sarek part to kernels running on GPUs or multi-core CPUs.

References

  1. T. Aarnio and M. Bourges-Sevenier. WebCL 1.0 specification. Khronos WebCL Working Group, 2014.Google ScholarGoogle Scholar
  2. V. Balat, J. Vouillon, and B. Yakobowski. Experience report: Ocsigen, a web programming framework. In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming, ICFP ’09, pages 311–316. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Bourgoin and E. Chailloux. GPGPU Composition with OCaml. In ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, pages 1–6. ACM SIGPLAN, June 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Bourgoin and E. Chailloux. High Performance Client-Side Web Programming with SPOC and Js_of_ocaml. In The OCaml Users and Developers Workshop, pages 1–3, Sept. 2014.Google ScholarGoogle Scholar
  5. M. Bourgoin, E. Chailloux, and J.-L. Lamotte. Efficient Abstractions for GPGPU Programming. International Journal of Parallel Programming, pages 1–18, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. de Rauglaudre. Camlp4 - Reference Manual, Sept. 2003. URL http: //caml.inria.fr/pub/docs/manual-camlp4/index.html.Google ScholarGoogle Scholar
  7. K. O. W. Group. OpenCL 1.2 specifications, 2012.Google ScholarGoogle Scholar
  8. D. Jackson. WebGL 2 Specification. Khronos WebGL Working Group, 2014.Google ScholarGoogle Scholar
  9. F. Khan, V. Foley-Bourgon, S. Kathrotia, E. Lavoie, and L. Hendren. Using JavaScript and WebCL for Numerical Computations: A Comparative Study of Native and Web Technologies. In Proceedings of the 10th ACM Symposium on Dynamic Languages, DLS ’14, pages 91–102. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. X. Leroy, D. Doligez, A. Firsch, J. Garrigue, D. Remy, and J. Vouillon. The OCaml System Release 4.02 : Documentation and User’s Manual. Technical report, Inria, 2014. URL http://caml.inria.fr.Google ScholarGoogle Scholar
  11. T. MacWilliam and C. Cecka. CrowdCL: Web-based volunteer computing with WebCL. In IEEE High Performance Extreme Computing Conference, HPEC 2013, Waltham, MA, USA, September 10-12, 2013, pages 1–6. IEEE, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  12. F. Pérez and B. E. Granger. IPython: a System for Interactive Scientific Computing. Computing in Science and Engineering, 9(3):21–29, May 2007.. URL http://ipython.org. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Vouillon and V. Balat. From Bytecode to JavaScript: The js_of_ocaml Compiler. Software: Practice and Experience, 44(8):951–972, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. High-level accelerated array programming in the web browser

          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
            ARRAY 2015: Proceedings of the 2nd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming
            June 2015
            59 pages
            ISBN:9781450335843
            DOI:10.1145/2774959

            Copyright © 2015 ACM

            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]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 13 June 2015

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • short-paper

            Acceptance Rates

            Overall Acceptance Rate17of25submissions,68%

            Upcoming Conference

            PLDI '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader