Bibliographic record
Abstract
In this dissertation, we articulate the new Personal Volunteer Computing paradigm, that refines Volunteer Computing by focusing on solutions that are personal to the user on multiple dimensions: they target personal projects, they leverage the participation of volunteers from their personal social network, and they are built into personal tools that can be deployed on personal devices and can be easily maintained by a single developer.We then present Pando, a new and first tool for personal volunteer computing written in and for JavaScript, that distributes the application of a function on a stream of inputs into the browsers of participating devices. Pando dynamically scales to new devices, gracefully tolerates sudden disconnections, and is easy to program because it is based on a declarative concurrent programming paradigm, in which the non-determinism of parallel executions is not observable by users. We follow with a more detailed presentation of the implementation of Pando, based on the new Limiter, StreamLender, and DistributedMap abstractions. Our presentation uses a high-level notation, independent of JavaScript and that simplifies reasoning about concurrent aspects, to introduce all the algorithms that implement the Limiter, StreamLender, and DistributedMap abstractions. Because the concurrent aspects make StreamLender challenging to implement, even with a clear description, we present a run-time verification approach to ensure it is correct. The approach is easy to parallelize, with Pando for example, and quickly generates a large number of random executions to ensure a high-probability of correctness. The combination of clear descriptions and testing strategy should make Pando easy to reimplement in other programming environments.We then present a large scope of applications that we implemented for Pando, based on existing libraries and examples. These applications represent various dataflow patterns and show Pando can be used not only for compute-intensive tasks but also for crowd-processing. We then measure the throughput performance of these applications in three networking scenarios: (1) over a local-area Wi-Fi network, with personal laptop and smartphones, (2) over a virtual private network distributed throughout France, with the Grid5000 nodes, and (3) with a wide-area network throughout Europe on the Internet, with the PlanetLab EU nodes. We show personal devices are competitive in all scenarios, sometimes with older devices competing with newer models, and other times with combinations of personal devices outcompeting remote server nodes. The flexible and easy support of all these scenarios is, to the best of our knowledge, a first in the volunteer computing literature. We then present Genet, a new fat-tree overlay for WebRTC that enables Pando to overcome the limits of WebRTC in the number of connections, and showed the resulting combination of Pando and Genet to be able to scale to a thousand browsers in 30-55 seconds on local networks. Those results are possible because the design of Genet only uses local information to deterministically route the WebRTC connection messages, while ensuring the resulting tree is probabilistically balanced.We conclude by outlining new exciting research directions that take into account the limits to growth our society is currently facing. Compared to the current trends in research, these new directions make smaller whole-system designs done by small teams viable again, but bring a stronger focus on leveraging abundant personal computing devices and taking into account the growing importance of efficiently using renewable electricity sources
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.004 | 0.014 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.001 | 0.001 |
| Science and technology studies | 0.003 | 0.002 |
| Scholarly communication | 0.004 | 0.007 |
| Open science | 0.002 | 0.008 |
| Research integrity | 0.002 | 0.002 |
| Insufficient payload (model declined to judge) | 0.035 | 0.009 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".