JSDoop and TensorFlow.js: Volunteer Distributed Web Browser-Based Neural
  Network Training
  In 2019, around 57\% of the population of the world has broadband access to
the Internet. Moreover, there are 5.9 billion mobile broadband subscriptions,
i.e., 1.3 subscriptions per user. So there is an enormous interconnected
computational power held by users all around the world. Also, it is estimated
that Internet users spend more than six and a half hours online every day. But
in spite of being a great amount of time, those resources are idle most of the
day. Therefore, taking advantage of them presents an interesting opportunity.
In this study, we introduce JSDoop, a prototype implementation to profit from
this opportunity. In particular, we propose a volunteer web browser-based
high-performance computing library. JSdoop divides a problem into tasks and
uses different queues to distribute the computation. Then, volunteers access
the web page of the problem and start processing the tasks in their web
browsers. We conducted a proof-of-concept using our proposal and TensorFlow.js
to train a recurrent neural network that predicts text. We tested it in a
computer cluster and with up to 32 volunteers. The experimental results show
that training a neural network in distributed web browsers is feasible and
accurate, has a high scalability, and it is an interesting area for research.
