Personal Volunteer Computing
Total Page:16
File Type:pdf, Size:1020Kb
Personal Volunteer Computing Erick Lavoie Advisor: Prof. Laurie Hendren School of Computer Science McGill University This dissertation is submitted for the degree of Doctor of Philosophy December 2019 I dedicate this thesis to everyone world-wide that is actively finding ways of living that increase the health of their natural and social environments. May the field of computing be part of and amplify those initiatives. Declaration I hereby declare that except where specific reference is made to the work of others, the contents of this dissertation are original and have not been submitted in whole or in part for consideration for any other degree or qualification in this, or any other university. This dissertation is my own work and contains nothing which is the outcome of work done in collaboration with others, except as specified in the text, acknowledgements, and the following three papers, whose material has been expanded. Personal Volunteer Computing, published at Computing Frontier 2019 and co-authored with Laurie Hendren, is a summarized version of the Background (Chapter 2), Volunteering Scenarios on a Local Wi-Fi Network (Section 6.2), and Future Research Directions (Sec- tion 8.1). For this paper, I articulated the socio-technical analysis framework, performed literature reviews, did the experiments, and generated new ideas for future directions. Laurie helped improve the flow of ideas, focus the argument on the essentials, suggested the mobile experiments, and revise the methodology and analysis to make sure it was sound. Pando: Personal Volunteer Computing in Browsers, published at Middleware 2019, co-authored with Laurie Hendren, Frederic Desprez, and Miguel Correia, is a summarized version of the Design of Pando (Chapter 3), the Pull-Stream Design Pattern (Section 4.1), the StreamLender presentation (Section 4.4), the Applications (Chapter 5), and the Volunteering Scenarios on a Wide Area Network (Section 6.3). For this paper, I designed and implemented Pando in JavaScript, I articulated the core properties of the programming model, I suggested a notation to describe the algorithms, I described the existing Pull-Stream Design pattern and its properties, I implemented all applications (except for the first version of Raytracer that was done by Umair Khan), and I performed and described all experiments on the Grid5000 and PlanetLab testbeds. Laurie helped improve the clarity of descriptions, the flow of the text, the use of examples, suggested categories of applications to implement, and helped structure the argument presentations over the various revisions of this paper. Fred and Miguel suggested references to existing work in distributed systems and helped improve the flow and quality of writings. Genet: A Quickly Scalable Fat-Tree Overlay for Personal Volunteer Computing using WebRTC, published at SASO 2019 and co-authored with Laurie Hendren, Frederic Desprez, vi and Miguel Correia, is a summarized version of Genet: Quickly Scalable Fat-Tree Overlay for WebRTC (Chapter 7). For this paper, I designed the overlay, implemented it in JavaScript for Pando, implemented the simulation tool for assessing the balance of trees as well as the webrtc-connectivity-testing tool for testing the connectivity of WebRTC between groups of participants, I performed all experiments, generated figures, did a first analysis of the results, and performed a literature review of existing work. Fred and Miguel suggested related works and Laurie, Fred, and Miguel helped revise the writings. Erick Lavoie December 2019 Acknowledgements First and foremost, thanks to Quebec and Canadian tax payers who funded most of my research, either through scholarships, grants, or subsidized education fees. I would never have had the financial means to do it otherwise and this funding provided me with much needed free time to articulate the ideas in this dissertation. It is my hope that those ideas will provide direct and indirect benefits that are at least commensurate with the resources that supported my education and research training. Thanks also to the various funding bodies, such as the National Science and Engineering Research Council (NSERC) of Canada, and Fond de Recherche du Quebec – Nature et Technologies (FRQNT) for managing those funds so they can reach researchers and maintain a lively and world-class intellectual environment. While my funding came from those organisms, any opinions, findings, and conclusions or recommendations expressed in this dissertation do not necessarily reflect the views of NSERC or FRQNT. In a similar spirit and to ensure the French government continues to fund common infrastructure for research, I acknowledge that some experiments presented in this paper were carried out using the Grid’5000 testbed, supported by a scientific interest group hosted by Inria and including CNRS, RENATER and several Universities as well as other organizations (see https://www.grid5000.fr). Thanks to Umair Khan for creating the initial version of the Raytracing application example described in Section 3.1 and Section 5.1.2. Umair emailed me in July 2017, after having just graduated from Delhi Technological University, wanting to contribute to some of the research projects we were doing at McGill. His feedback and thirst for learning have helped improve Pando, and his volunteering initiatives have fuelled my motivation to continue working on the project. Thanks to the many members of the McLab team at McGill throughout the years. In particular, thanks to Faiz Khan, Sujay Kathrotia, and Vincent Foley-Bourgon for their collaboration on our first JavaScript benchmarking paper that established the performance feasability of Pando. Thanks to Faiz additionally for properly setting me on the "dating scene", which set things in motions that eventually led me to meeting the love of my life. Thanks to David Herrera and Hanfeng Chen for our collaboration, and much of the groundwork, on the second JavaScript benchmarking paper that showed the performance opportunity on mobile viii devices was even more interesting that we previously thought. And thanks to everyone else in the team over the years that had the patience to listen to my ideas (and rants!) in lab presentation and informal discussions, these interactions have been key to turns the seeds of ideas in sprouts. Thanks also for all the supporting staff at McGill who manage the administrative affairs and helped ensure our rooms were clean. It is quite easy to forget that lively intellectual environments depend much also on well functioning bureaucracies and well-tended physical spaces. Many of them have duly performed their work even through the challenging budget cuts that we collectively experienced in the mid 2010s. Thanks to Miguel Pupo Correia in providing helpful and timely feedback on papers we co-authored over the years, as well as the welcoming environment when I visited Lisbon. While Pando’s design evolved in a way that eventually did not require the improved version of the Kademlia design we published together, the work we did helped me understand the drawbacks in complexity of global persistent peer-to-peer platforms that prompted the articulation of personal volunteer computing and the later designs. Thanks to many colleagues and friends at INRIA in Grenoble. In particular, thanks to Frédéric Desprez, Imma Presseguer, and the rest of the CORSE team at INRIA for providing a welcoming environment, first in hosting me for an internship in the summer of 2016, and then providing a working space and company during much of the writing process of this dissertation. Thanks to Antoine Hokayem for having taught me to put the technical contributions and core ideas ahead of my personal agenda in research papers, I am convinced it has made a difference in getting the latest version of the Personal Volunteer Computing paper accepted. Thanks also to Fabian, François, George, Antoine and everyone else for passing by regularly in my office and pulling me for beers and social activities, this was a much needed relief. I hope we will all be done with our dissertations soon! And thanks to the NanoD and OneAngstrom teams on the first floor, for their participation in the smartphone experiments of this dissertation and their company in sharing meals, breaks, "publishing" cookies and cakes. Your presence has made my work environment much more lively. Thanks to many people from the Secure Scuttlebutt (SSB) evolving community. Thanks to Dominic Tarr who shared his contagious curiosity, insights, and for quickly "pulling" me in the community by trusting me with administrator privileges on the pull-stream organization as soon as I had produced new useful modules. Thanks to Bob Haugen for revising a rejected version of the Personal Volunteer Computing paper, which has helped keep my motivation level high at times when I had trouble finding the right audience and adequately communicating the insights behind the approach. Thanks to Alexander Cobleigh, aka ’cblgh’, for voluntarily revising and commenting on a draft of this dissertation: knowing someone ix else than my advisor and review committee has read my thesis voluntarily made the entire effort worthwhile! Thanks to Daan, the only SSB friend I can regularly meet in Grenoble for beers and Lego. Thanks to the rest of the community, too numerous to mention, for fostering a "radical" intellectual environment that inspired the articulation of the personal volunteer computing paradigm. Thanks to the Soulakins, an informal group of friends in Grenoble and elsewhere in Europe sharing