skip to main content
10.1145/3361525.3361539acmconferencesArticle/Chapter ViewAbstractPublication PagesmiddlewareConference Proceedingsconference-collections
research-article

Pando: Personal Volunteer Computing in Browsers

Published:09 December 2019Publication History

ABSTRACT

The large penetration and continued growth in ownership of personal electronic devices represents a freely available and largely untapped source of computing power. To leverage those, we present Pando, a new volunteer computing tool based on a declarative concurrent programming model and implemented using JavaScript, WebRTC, and WebSockets. This tool enables a dynamically varying number of failure-prone personal devices contributed by volunteers to parallelize the application of a function on a stream of values, by using the devices' browsers. We show that Pando can provide throughput improvements compared to a single personal device, on a variety of compute-bound applications including animation rendering and image processing. We also show the flexibility of our approach by deploying Pando on personal devices connected over a local network, on Grid5000, a French-wide computing grid in a virtual private network, and seven PlanetLab nodes distributed in a wide area network over Europe.

References

  1. 1981. Transmission Control Protocol. https://www.ietf.org/rfc/rfc793.txt. [Online; accessed 16-October-2018].Google ScholarGoogle Scholar
  2. 2003. The Base16, Base32, and Base64 Data Encodings. https://tools.ietf.org/html/rfc3548. [Online; accessed 16-October-2018].Google ScholarGoogle Scholar
  3. 2008. PlanetLab Europe. https://www.planet-lab.eu. [Online; accessed 12-May-2019].Google ScholarGoogle Scholar
  4. 2008. The Chromium Projects. https://www.chromium.org/. [Online; accessed 12-October-2018].Google ScholarGoogle Scholar
  5. 2010. Web Workers. https://w3c.github.io/workers/. [Online; accessed 26-October-2018].Google ScholarGoogle Scholar
  6. 2011. The WebSocket Protocol. https://tools.ietf.org/html/rfc6455. [Online; accessed 13-February-2017].Google ScholarGoogle Scholar
  7. 2011. WebCL: Heterogeneous parallel computing in HTML5 web browsers. https://www.khronos.org/webcl/. [Online; accessed 26-October-2018].Google ScholarGoogle Scholar
  8. 2013. The Dat project. https://datproject.org/ [Online; accessed 12-October-2018].Google ScholarGoogle Scholar
  9. 2013. WebTorrent. https://webtorrent.io/. [Online; accessed 17-April-2017].Google ScholarGoogle Scholar
  10. 2014. ZeroMQ. http://zeromq.org/. [Online; accessed 12-October-2018].Google ScholarGoogle Scholar
  11. 2015. Novena Main Page. https://www.kosagi.com/w/index.php?title=Novena_Main_Page. [Online; accessed 9-November-2018].Google ScholarGoogle Scholar
  12. 2017. Beaker. https://beakerbrowser.com/. [Online; accessed 12-October-2018].Google ScholarGoogle Scholar
  13. 2017. Browserify. http://browserify.org/. [Online; accessed 15-April-2017].Google ScholarGoogle Scholar
  14. 2017. Matjuice Repository. https://github.com/sable/matjuice. [Online; accessed 13-February-2017].Google ScholarGoogle Scholar
  15. 2017. Pull-Stream Module List. https://pull-stream.github.io/. [Online; accessed 25-July-2017].Google ScholarGoogle Scholar
  16. 2017. Simple-Peer. https://github.com/feross/simple-peer. [Online; accessed 17-April-2017].Google ScholarGoogle Scholar
  17. 2017. The Collatz Conjecture. http://boinc.thesonntags.com/collatz/. [Online; accessed 14-February-2017].Google ScholarGoogle Scholar
  18. 2017. WebRTC 1.0: Real-time Communication Between Browsers. https://www.w3.org/TR/webrtc/. [Online; accessed 05-April-2017].Google ScholarGoogle Scholar
  19. 2018. Deadline Compute Management System. https://deadline.thinkboxsoftware.com/. [Online; accessed 16-October-2018].Google ScholarGoogle Scholar
  20. 2018. Heroku. https://www.heroku.com/ [Online; accessed 17-November-2017].Google ScholarGoogle Scholar
  21. 2018. Node Package Manager. https://www.npmjs.com/ [Online; accessed 17-November-2017].Google ScholarGoogle Scholar
  22. 2018. Raspberry Pi. https://www.raspberrypi.org/Google ScholarGoogle Scholar
  23. 2018. Standard ECMA-262. https://www.ecma-international.org/publications/standards/Ecma-262.htm. [Online; accessed 16-October-2018].Google ScholarGoogle Scholar
  24. 2018. Zinc Render. https://www.zyncrender.com/. [Online; accessed 16-October-2018].Google ScholarGoogle Scholar
  25. 2019. Gartner Says Global Smartphone Sales Stalled in the Fourth Quarter of 2018. https://www.gartner.com/en/newsroom/. [Online; accessed 17-May-2019].Google ScholarGoogle Scholar
  26. Nabil Abdennadher and Regis Boesch. 2005. Towards a Peer-to-Peer Platform for High Performance Computing. In Proceedings of the Eighth International Conference on High-Performance Computing in Asia-Pacific Region. IEEE, 8-pp. https://doi.org/10.1109/HPCASIA.2005.98Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Leila Abidi, Christophe Cérin, Gilles Fedak, and Haiwu He. 2015. Towards an Environment for doing Data Science that runs in Browsers. In Proceedings of the International Conference on Smart City/SocialCom/SustainCom (SmartCity). IEEE, 662--667. https://doi.org/10.1109/SmartCity.2015.145Google ScholarGoogle ScholarCross RefCross Ref
  28. Albert D Alexandrov, Maximilian Ibel, Klaus E Schauser, and Chris J Scheiman. 1997. SuperWeb: Towards a global web-based parallel computing infrastructure. In Parallel Processing Symposium, 1997. Proceedings., 11th International. IEEE, 100--106.Google ScholarGoogle ScholarCross RefCross Ref
  29. David P. Anderson. 2004. BOINC: A System for Public-Resource Computing and Storage. In Proceedings of the 5th IEEE/ACM International Workshop on Grid Computing (GRID). IEEE, 4--10. https://doi.org/10.1109/GRID.2004.14Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. David P. Anderson. 2019. BOINC: A Platform for Volunteer Computing. CoRR abs/1903.01699 (2019). arXiv:1903.01699 http://arxiv.org/abs/1903.01699Google ScholarGoogle Scholar
  31. Daniel Balouek, Alexandra Carpen Amarie, Ghislain Charrier, Frédéric Desprez, Emmanuel Jeannot, Emmanuel Jeanvoine, Adrien Lèbre, David Margery, Nicolas Niclausse, Lucas Nussbaum, Olivier Richard, Christian Pérez, Flavien Quesnel, Cyril Rohr, and Luc Sarzyniec. 2013. Adding Virtualization Capabilities to the Grid'5000 Testbed. In Cloud Computing and Services Science, IvanI. Ivanov, Marten Sinderen, Frank Leymann, and Tony Shan (Eds.). Communications in Computer and Information Science, Vol. 367. Springer International Publishing, 3--20. https://doi.org/10.1007/978-3-319-04519-1_1Google ScholarGoogle Scholar
  32. Arash Baratloo, Mehmet Karaul, Zvi M Kedem, and Peter Wijckoff. 1999. Charlotte: Metacomputing on the Web. Future Generation Computer Systems 15, 5 (1999), 559--570. https://doi.org/10.1016/S0167-739X(99)00009-6Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Kevin Berry. 2009. Distributed and Grid Computing via the Browser. In Proceedings of the 3rd Villanova University Undergraduate Computer Science Research Symposium (CSRS 2009).Google ScholarGoogle Scholar
  34. Fabio Boldrin, Chiara Taddia, and Gianluca Mazzini. 2007. Distributed computing through web browser. In Vehicular Technology Conference, 2007. VTC-2007 Fall. 2007 IEEE 66th. IEEE, 2020--2024.Google ScholarGoogle ScholarCross RefCross Ref
  35. Mitch Cherniack, Hari Balakrishnan, Magdalena Balazinska, Donald Carney, Ugur Cetintemel, Ying Xing, and Stanley B Zdonik. 2003. Scalable Distributed Stream Processing.. In CIDR, Vol. 3. 257--268.Google ScholarGoogle Scholar
  36. Pawel Chorazyk, Aleksander Byrski, Kamil Pietak, Marek Kisiel-Dorohinicki, and Wojciech Turek. 2017. Volunteer computing in a scalable lightweight web-based environment. Computer Assisted Methods in Engineering and Science 24, 1 (2017), 17--40.Google ScholarGoogle Scholar
  37. Bernd O. Christiansen, Peter Cappello, Mihai F. Ionescu, Michael O. Neary, Klaus E. Schauser, and Daniel Wu. 1997. Javelin: Internet-based parallel computing using Java. Concurrency: Practice and Experience 9, 11 (1997), 1139--1160. https://doi.org/10.1002/(SICI)1096-9128(199711)9:11<1139::AID-CPE349> 3.0.CO;2-KGoogle ScholarGoogle ScholarCross RefCross Ref
  38. Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: simplified data processing on large clusters. Commun. ACM 51, 1 (2008), 107--113.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Roman Dębski, Tomasz Krupa, and Przemyslaw Majewski. 2013. ComcuteJS: A web browser based platform for large-scale computations. Computer Science 14 (2013).Google ScholarGoogle Scholar
  40. David Dias and Luís Veiga. 2018. BrowserCloud.js - A federated community cloud served by a P2P overlay network on top of the web platform. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing (SAC '18). ACM, New York, NY, USA, 2175--2184. https://doi.org/10.1145/3167132.3167366Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Jerzy Duda and Wojciech Dłubacz. 2012. Distributed Evolutionary Computing System Based on Web Browsers with JavaScript. In International Workshop on Applied Parallel Computing. Springer, 183--191.Google ScholarGoogle Scholar
  42. Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. 1988. Consensus in the Presence of Partial Synchrony. J. ACM 35, 2 (April 1988), 288--323. https://doi.org/10.1145/42282.42283Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Tomasz Fabisiak and Arkadiusz Danilecki. 2017. Browser-based harnessing of voluntary computational power. Foundations of Computing and Decision Sciences 42, 1 (2017), 3--42. https://doi.org/10.1515/fcds-2017-0001Google ScholarGoogle ScholarCross RefCross Ref
  44. Gilles Fedak. 2012. Desktop Grid Computing. Chapman & All/CRC Press. 362 pages. https://hal.inria.fr/hal-00757056Google ScholarGoogle Scholar
  45. Gilles Fedak. 2015. Contributions to Desktop Grid Computing. Habilitation à diriger des recherches. Ecole Normale Supérieure de Lyon. https://hal.inria.fr/tel-01158462Google ScholarGoogle Scholar
  46. David Finkel, Craig E Wills, Brian Brennan, and Chris Brennan. 1999. Distriblets: Java-based distributed computing on the Web. Internet Research 9, 1 (1999), 35--40.Google ScholarGoogle ScholarCross RefCross Ref
  47. Vincent Foley-Bourgon and Laurie Hendren. 2016. Efficiently Implementing the Copy Semantics of MATLAB's Arrays in JavaScript. In Proceedings of the 12th Symposium on Dynamic Languages (DLS 2016). ACM, New York, NY, USA, 72--83. https://doi.org/10.1145/2989225.2989235Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Ilya Grigorik. 2009. Collaborative Map-Reduce in the Browser. https://www.igvita.com/2009/03/03/collaborative-map-reduce-in-the-browser/. [Online; accessed 16-October-2018].Google ScholarGoogle Scholar
  49. Jayanth Gummaraju and Mendel Rosenblum. 2005. Stream Programming on General-Purpose Processors. In Proceedings of the 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 38). IEEE Computer Society, Washington, DC, USA, 343--354. https://doi.org/10.1109/MICRO.2005.32Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Andreas Haas, Andreas Rossberg, Derek L. Schuff, Ben L. Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, and JF Bastien. 2017. Bringing the Web Up to Speed with WebAssembly. SIGPLAN Not. 52, 6 (June 2017), 185--200. https://doi.org/10.1145/3140587.3062363Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Andrew B Harrison. 2008. Peer-to-grid computing: Spanning diverse service-oriented architectures. Ph.D. Dissertation. Cardiff University (United Kingdom). https://search.proquest.com/openview/69ebafc7df184c92a437b66ee04345ee/Google ScholarGoogle Scholar
  52. David Herrera, Hanfeng Chen, Erick Lavoie, and Laurie Hendren. 2018. Numerical Computing on the Web: Benchmarking for the Future. In Proceedings of the 14th ACM SIGPLAN International Symposium on Dynamic Languages (DLS 2018). ACM, New York, NY, USA, 88--100. https://doi.org/10.1145/3276945.3276968Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Yonghao Hu, Zhaohui Chen, Xiaojun Liu, Fei Huang, and Jinyuan Jia. 2017. WebTorrent Based Fine-grained P2P Transmission of Large-scale WebVR Indoor Scenes. In Proceedings of the 22Nd International Conference on 3D Web Technology (Web3D '17). ACM, New York, NY, USA, Article 7, 8 pages. https://doi.org/10.1145/3055624.3075944Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Abhinav Jangda, Bobby Powers, Emery D. Berger, and Arjun Guha. 2019. Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code. In 2019 USENIX Annual Technical Conference (USENIX ATC 19). USENIX Association, Renton, WA, 107--120. https://www.usenix.org/conference/atc19/presentation/jangdaGoogle ScholarGoogle Scholar
  55. Alan B. Johnston and Daniel C. Burnett. 2012. WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web. Digital Codex LLC, USA.Google ScholarGoogle Scholar
  56. Brian W. Kernighan and Rob Pike. 1983. The UNIX Programming Environment. Prentice Hall Professional Technical Reference.Google ScholarGoogle Scholar
  57. Faiz Khan, Vincent Foley-Bourgon, Sujay Kathrotia, Erick Lavoie, and Laurie Hendren. 2014. 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). ACM, New York, NY, USA, 91--102. https://doi.org/10.1145/2661088.2661090Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Jik-Soo Kim. 2009. Decentralized and scalable resource management for desktop grids. Ph.D. Dissertation. University of Maryland, College Park. http://hdl.handle.net/1903/9259Google ScholarGoogle Scholar
  59. Jik-Soo Kim, Beomseok Nam, and Alan Sussman. 2014. Scalable and effective peer-to-peer desktop grid system. Cluster Computing 17, 4 (2014), 1185--1201. https://doi.org/10.1007/s10586-014-0390-zGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  60. Jon Klein and Lee Spector. 2007. Unwitting distributed genetic programming via asynchronous JavaScript and XML. In Proceedings of the 9th annual conference on Genetic and evolutionary computation. ACM, 1628--1635.Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Fumikazu Konishi, Manabu Ishii, Shingo Ohki, Ryo UMESTU, and Akihiko Konagaya. 2007. RABC: A conceptual design of pervasive infrastructure for browser computing based on AJAX technologies. In Cluster Computing and the Grid, 2007. CCGRID 2007. Seventh IEEE International Symposium on. IEEE, 661--672.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Makoto Kuhara, Noriki Amano, Kan Watanabe, Yasuyuki Nogami, and Masaru Fukushi. 2014. A peer-to-peer communication function among Web browsers for Web-based Volunteer Computing. In Communications and Information Technologies (ISCIT), 2014 14th International Symposium on. IEEE, 383--387.Google ScholarGoogle ScholarCross RefCross Ref
  63. Philipp Langhans, Christoph Wieser, and François Bry. 2013. Crowdsourcing MapReduce: JSMapReduce. In Proceedings of the 22nd International Conference on World Wide Web. ACM, 253--256.Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Erick Lavoie. 2017. Pando Handbook. https://github.com/elavoie/pando-handbook [Online; accessed 17-November-2017].Google ScholarGoogle Scholar
  65. Erick Lavoie. 2017. Pando Repository. https://github.com/elavoie/pando-computing [Online; accessed 17-November-2017].Google ScholarGoogle Scholar
  66. Erick Lavoie. 2017. Pando Server. https://github.com/elavoie/pando-server [Online; accessed 17-November-2017].Google ScholarGoogle Scholar
  67. Erick Lavoie. 2017. Pull-LendStream Implementation. https://github.com/elavoie/pull-lend-stream and https://www.npmjs.com/package/pull-lend-stream. [Online; accessed 15-April-2017].Google ScholarGoogle Scholar
  68. Erick Lavoie. 2018. Pull-Stubborn Implementation. https://github.com/elavoie/pull-stubborn. [Online; accessed 28-October-2018].Google ScholarGoogle Scholar
  69. Erick Lavoie. 2019. Personal Volunteer Computing. Ph.D. Dissertation. McGill University.Google ScholarGoogle Scholar
  70. Erick Lavoie and Laurie Hendren. 2019. Personal Volunteer Computing. In Proceedings of the 16th ACM International Conference on Computing Frontiers (CF '19). ACM, New York, NY, USA, 240--246. https://doi.org/10-1145/3310273.3322819Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Erick Lavoie, Laurie Hendren, Fréderic Desprez, and Miguel Correia. 2019. Genet: A Quickly Scalable Fat-Tree Overlay for Personal Volunteer Computing using WebRTC. arXiv e-prints, Article arXiv:1904.11402 (Apr 2019), arXiv:1904.11402 pages. arXiv:cs.DC/1904.11402 Publication to appear at SASO'19.Google ScholarGoogle Scholar
  72. Guillaume Leclerc, Joshua E. Auerbach, Giovanni Iacca, and Dario Floreano. 2016. The Seamless Peer and Cloud Evolution Framework. In Proceedings of the Genetic and Evolutionary Computation Conference 2016 (GECCO '16). ACM, New York, NY, USA, 821--828. https://doi.org/10.1145/2908812.2908886Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Tommy MacWilliam and Cris Cecka. 2013. CrowdCL: Web-based volunteer computing with WebCL. In High Performance Extreme Computing Conference (HPEC), 2013 IEEE. IEEE, 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  74. Gonzalo J Martınez and Leonardo Val. 2015. Capataz: a framework for distributing algorithms via the World Wide Web. CLEI Electronic Journal 18, 02 (2015), 2. http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200002&lng=en&nrm=isoGoogle ScholarGoogle Scholar
  75. Petar Maymounkov and David Mazieres. 2002. Kademlia: A peer-to-peer information system based on the xor metric. In International Workshop on Peer-to-Peer Systems. Springer, 53--65.Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Edward Meeds, Remco Hendriks, Said Al Faraby, Magiel Bruntink, and Max Welling. 2015. MLitB: machine learning in the browser. PeerJ Computer Science 1, e11 (2015). https://doi.org/10.7717/peerj-cs.11Google ScholarGoogle Scholar
  77. Juan Julián Merelo-Guervós, Pedro A Castillo, Juan Luis Jiménez Laredo, A Mora Garcia, and Alberto Prieto. 2008. Asynchronous distributed genetic algorithms with Javascript and JSON. In Evolutionary Computation, 2008. CEC 2008.(IEEE World Congress on Computational Intelligence). IEEE Congress on. IEEE, 1372--1379.Google ScholarGoogle ScholarCross RefCross Ref
  78. Ujan Mukhopadhyay, Anthony Skjellum, Oluwakemi Hambolu, Jon Oakley, Lu Yu, and Richard Brooks. 2016. A brief survey of cryptocurrency systems. In Privacy, Security and Trust (PST), 2016 14th Annual Conference on. IEEE, 745--752.Google ScholarGoogle ScholarCross RefCross Ref
  79. Satoshi Nakamoto. 2008. Bitcoin: A peer-to-peer electronic cash system. (2008).Google ScholarGoogle Scholar
  80. Sagnik Nandy. 2005. Large scale autonomous computing systems. Ph.D. Dissertation. UC San Diego. https://escholarship.org/uc/item/3s96x9qcGoogle ScholarGoogle Scholar
  81. Noam Nisan, Shmulik London, Oded Regev, and Noam Camiel. 1998. Globally distributed computation over the internet-the popcorn project. In Distributed Computing Systems, 1998. Proceedings. 18th International Conference on. IEEE, 592--601.Google ScholarGoogle ScholarCross RefCross Ref
  82. J. K. Nurminen, A. J. R. Meyn, E. Jalonen, Y. Raivio, and R. GarcÄśa Marrero. 2013. P2P media streaming with HTML5 and WebRTC. In 2013 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS). 63--64. https://doi.org/10.1109/INFCOMW.2013.6970739Google ScholarGoogle ScholarCross RefCross Ref
  83. Pijush Kanti Dutta Pramanik, Prasenjit Choudhury, and Anindita Saha. 2017. Economical supercomputing thru smartphone crowd computing: An assessment of opportunities, benefits, deterrents, and applications from India's perspective. In Proceedings of the 4th International Conference on Advanced Computing and Communication Systems (ICACCS). IEEE, 1--7. https://doi.org/10.1109/ICACCS.2017.8014613Google ScholarGoogle ScholarCross RefCross Ref
  84. Sean R. Wilkinson and Jonas S. Almeida. 2014. QMachine: commodity supercomputing in web browsers. BMC Bioinformatics (2014), 1--1. https://doi.org/10.1186/1471-2105-15-176Google ScholarGoogle Scholar
  85. Cushing Reginald, Ganeshwara Putra, Spiros Koulouzis, Adam Belloum, Marian Bubak, and Cees de Laat. 2013. Distributed Computing on an Ensemble of Browsers. IEEE Internet Computing 17, 5 (Sept. 2013), 54--61. https://doi.org/10.1109/MIC. 2013.3Google ScholarGoogle Scholar
  86. Andrew Rosen. 2016. Towards a Framework for DHT Distributed Computing. Ph.D. Dissertation. Georgia State University. https://scholarworks.gsu.edu/cs_diss/107Google ScholarGoogle Scholar
  87. Antony Rowstron and Peter Druschel. 2001. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems. In IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing. Springer, 329--350.Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. David P Roy, MA Wulder, Thomas R Loveland, CE Woodcock, RG Allen, MC Anderson, D Helder, JR Irons, DM Johnson, R Kennedy, et al. 2014. Landsat-8: Science and product vision for terrestrial global change research. Remote sensing of Environment 145 (2014), 154--172.Google ScholarGoogle Scholar
  89. Sandy Ryza and Tom Wall. 2010. MRJS: A JavaScript MapReduce Framework for Web Browsers. http://www.cs.brown.edu/courses/csci2950-u/f11/papers/mrjs.pdfGoogle ScholarGoogle Scholar
  90. Luis FG Sarmenta and Satoshi Hirano. 1999. Bayanihan: Building and Studying Web-Based Volunteer Computing Systems using Java. Future Generation Computer Systems 15, 5-6 (1999), 675--686.Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Luis Francisco Gumaru Sarmenta. 2001. Volunteer computing. Ph.D. Dissertation. Massachusetts Institute of Technology. http://hdl.handle.net/1721.1/16773Google ScholarGoogle Scholar
  92. John F Shoch and Jon A Hupp. 1982. The "worm" programs - early experience with a distributed computation. Commun. ACM 25, 3 (1982), 172--180. https://doi.org/10.1145/358453.358455Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Gert Smolka. 1995. The Oz programming model. In Computer science today. Springer, 324--343.Google ScholarGoogle Scholar
  94. Ion Stoica, Robert Morris, David Karger, M Frans Kaashoek, and Hari Balakrishnan. 2001. Chord: A scalable peer-to-peer lookup service for internet applications. ACM SIGCOMM Computer Communication Review 31, 4 (2001), 149--160.Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Cristiano Tapparello, Colin Funai Bora Karaoglu, He Ba, Shurouq Hijazi, Jiye Shi, Abner Aquino, and Wendi Heinzelman. 2015. Volunteer Computing on Mobile Devices: State of the Art and Future. In Enabling Real-Time Mobile Cloud Computing through Emerging Technologies, Tolga Soyata (Ed.). IGI Global, 153--181.Google ScholarGoogle Scholar
  96. Dominic Tarr. 2016. Pull Streams. http://dominictarr.com/post/145135293917/history-of-streams. [Online; accessed 7-February-2017].Google ScholarGoogle Scholar
  97. Niklas Therning and Lars Bengtsson. 2005. Jalapeno: Decentralized Grid Computing Using Peer-to-peer Technology. In Proceedings of the 2Nd Conference on Computing Frontiers (CF '05). ACM, New York, NY, USA, 59--65. https://doi.org/10.1145/1062261.1062274Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. N. Tindall and A. Harwood. 2015. Peer-to-peer between browsers: cyclon protocol over WebRTC. In 2015 IEEE International Conference on Peer-to-Peer Computing (P2P). 1--5. https://doi.org/10.1109/P2P.2015.7328517Google ScholarGoogle ScholarCross RefCross Ref
  99. Peter Van-Roy and Seif Haridi. 2004. Concepts, Techniques, and Models of Computer Programming. MIT Press.Google ScholarGoogle Scholar
  100. C. Vogt, M. J. Werner, and T. C. Schmidt. 2013. Leveraging WebRTC for P2P content distribution in web browsers. In 2013 21st IEEE International Conference on Network Protocols (ICNP). 1--2. https://doi.org/10.1109/ICNP.2013.6733637Google ScholarGoogle ScholarCross RefCross Ref
  101. William W Wadge and Edward A Ashcroft. 1985. LUCID, the dataflow programming language. Vol. 303. Academic Press London.Google ScholarGoogle Scholar
  102. M. J. Werner, C. Vogt, and T. C. Schmidt. 2014. Let Our Browsers Socialize: Building User-Centric Content Communities on WebRTC. In 2014 IEEE 34th International Conference on Distributed Computing Systems Workshops (ICDCSW). 37--44. https://doi.org/10.1109/ICDCSW.2014.35Google ScholarGoogle Scholar
  103. Turner Whitted. 1980. An Improved Illumination Model for Shaded Display. Commun. ACM 23, 6 (June 1980), 343--349. https://doi.org/10.1145/358876.358882Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Dany Wilson. 2015. Architecture for a Fully Decentralized Peer-to-Peer Collaborative Computing Platform. Ph.D. Dissertation. Université d'Ottawa/University of Ottawa. https://doi.org/10.20381/ruor-4170Google ScholarGoogle Scholar
  105. Shinichi Yamagiwa and Leonel Sousa. 2007. Design and implementation of a stream-based distributedcomputing platform using graphics processing units. In Proceedings of the 4th international conference on Computing frontiers. ACM, 197--204.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Pando: Personal Volunteer Computing in Browsers

      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
        Middleware '19: Proceedings of the 20th International Middleware Conference
        December 2019
        342 pages
        ISBN:9781450370097
        DOI:10.1145/3361525

        Copyright © 2019 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: 9 December 2019

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate203of948submissions,21%

        Upcoming Conference

        MIDDLEWARE '24
        25th International Middleware Conference
        December 2 - 6, 2024
        Hong Kong , Hong Kong

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader