<p>Yes, there are several distributed-computing projects that let people donate otherwise-idle CPU time to the project.</p>

<p>(Note that with modern computers, that means also donating amount of electricity (30 to 80 Watts), because actually-idle CPUs / GPUs use (much) less power than when fully loaded.  If you already heat your home with electricity, having your computer make the heat doesn't cost you anything extra, otherwise it add to your power bill.  And extra air-conditioning if you're using more electricity to move the heat out of your house).</p>

<ul>
<li>science: <a href="https://setiathome.berkeley.edu/" rel="nofollow noreferrer">SETI@Home</a> processing radio telescope data looking for signals for alien civilizations<br>
<a href="https://foldingathome.org/about/" rel="nofollow noreferrer">Folding@Home</a>:  <em>a distributed computing project for disease research that simulates protein folding, computational drug design, and other types of molecular dynamics.</em></li>
<li>math: <a href="https://www.mersenne.org/download/" rel="nofollow noreferrer">Mersenne prime searching: prime95</a></li>
<li>crypto brute force challenges like <a href="https://www.distributed.net/RC5" rel="nofollow noreferrer">https://www.distributed.net/RC5</a>.</li>
</ul>

<p>I'm sure there are more, those are just the few that I can think of off the top of my head.</p>

<p>distributed.net was one of the early pioneers of this form of distributed computing, where a central server can hand out work units for home computers and otherwise-idle servers to crunch on for hours, eventually sending back a bundle of results and fetching new ones.  All of the projects I listed use that same model.</p>

<p>They motivate people to keep their computers contributing by running a leaderboard for contributions, and let users make teams.  A little bit of gamification can get people to put in the effort to set up the software on some extra computers that they wouldn't otherwise.  (Of course there's also the reward of contributing to something useful or interesting.)</p>

<p><strong>To prevent cheating / corruption</strong>, the central servers will sometimes hand out the same block or chunk of data to multiple users, and compare the results.  <strong>For some problems, the client can compute a proof-of-work result as it goes</strong>, basically a hash of some internal result while crunching, which it couldn't compute much more efficiently without having gone through all the steps of the actual computation.  This allows the server to detect cheating clients that try to win the leaderboards (or just sabotage the project) by sending back work units as complete without actually having done the work.  For some projects, like prime searching, the actual result is just a "no primes in this range", which is obviously trivial to fake.</p>

<hr>

<p><strong>All of the problems this model is useful for are "<a href="https://en.wikipedia.org/wiki/Embarrassingly_parallel" rel="nofollow noreferrer">embarrasingly parallel</a>"</strong>: you can work on a subproblem without communicating <em>at all</em> with threads / nodes working on other subproblems.</p>

<hr>

<p>As @Anonymous says, databases are usually not like this.  The only thing I can think of is that maybe they're replicating the database onto every client, instead of having them send queries to a central server?  If it's small-ish, and read-mostly, that could make sense.  (Think like Git vs. SubVersion for revision  control: with a distributed VCS like GIT, everyone has their own copy of the repo and can run searches locally instead of putting load on a central server and needing the latency of a round-trip over the Internet.)</p>

<hr>

<h1>Or possibly the database you're talking about is only distributed over nodes in a tightly-coupled cluster</h1>

<p>That's already a thing, I think.</p>

<p>There are also cluster filesystems where a whole cluster of machines have disks that make up one huge filesystem, like PVFS, Lustre.  That can be called a <a href="https://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems" rel="nofollow noreferrer">distributed filesystem</a>, although distributed does often imply over a less tightly controlled cluster.  (There <em>are</em> some distributed filesystems that support having some nodes disconnected without stalling everything, though.)</p>

CC BY-SA 4.0
2019-01-20T12:18:16.357Z
2019-01-21T13:08:45.890Z
2019-01-21T13:08:45.890Z
Peter Cordes
<p>See <a href="https://hacks.mozilla.org/2018/07/introducing-the-d-web/" rel="nofollow noreferrer">DWeb</a>, an initiative from Mozilla foundation(?). They have a vision(search engine) for DWeb( for  distributed web)such as: </p>

<p>Problems that we commonly encounter in day to day usage: data sharing between devices(phone needs to connect to laptops when not connected to internet- as they mention on their website). Even to help in reading old versions of a web site. </p>

<p>To preempt internet giants usurping web sites contents, and thereby removing from the internet world any such sites (content) that may have succumbed to darwinism.</p>

<p>Actionable intent for this distributed project: </p>

<ul>
<li>Stop hate speech</li>
<li>Support net neutrality</li>
<li>Stop censorship, governmental intrusion. </li>
</ul>

<p>To this end, there is the <a href="https://beakerbrowser.com/about/" rel="nofollow noreferrer">beaker project</a>, a distributed web browser, an experimental browser that enables peer to peer browsing, and distributivity. This project may just be the start of something, as it allows for better person-to-person (read peer to peer) information sharing, and thus enabling distributed computing, as sharing(media, content,etc) is done on on a peer to peer basis.</p>

<p>A file system or database is the underpinning of distribution, and such efforts, only 
start in that direction. If for instance, peer to peer sharing in an environment that has 
established rules - this could be enforced by a hypermedia sharing protocol such as Dat. An example of p2p sharing</p>

<p>-media from entity X goes to entity Y regularly, so there is ground for distributed sharing, and shared resource allocation, a distributed browser could enable such distribution. </p>

<p>Data could be stored locally on your computer- just shared by people on the p2p network. 
For more <a href="https://blocksplain.com/2018/02/19/beaker-decentralized-browser" rel="nofollow noreferrer">Beaker’s decentralized browser, sans blockchain</a>! </p>

CC BY-SA 4.0
2019-01-20T18:39:20.233Z
2019-01-20T23:20:20.440Z
2019-01-20T23:20:20.440Z
user3483902
<p>The only systems which benefit from being distributed are ones that display the property of being "<a href="https://en.wikipedia.org/wiki/Embarrassingly_parallel" rel="noreferrer">embarrassingly parallel</a>", or some approximation of it. Tasks which do not require a significant amount of data to be transmitted between operating systems, or those which don't require a significant amount of coordination fit this description well. Typically anything like a database is poorly suited to being distributed due to the need for overall consistency, which is very difficult to achieve across a distance. </p>

<p>Bitcoin is the opposite of a distributed system at the node level, every participant in the system is expected to repeat the process of validation in perfect accuracy with the hundreds of thousands, or millions of previous attempts at synchronization that have happened before it. As the number of nodes increases, there is no change in the amount of computation done in either direction. </p>

<p>Generally speaking anything claiming to improve efficiency by using a decentralized, or distributed network should be met with skepticism, simply because this is typically an uphill battle that is taken on for other reasons <em>despite</em> its inefficiency, not in an attempt to gain efficiency. To exemplify this, Bitcoin would be most efficient, most usable, and most reliable if it ran on a single server, but that would largely defeat the design brief of being trust-less.  </p>

CC BY-SA 4.0
2019-01-20T11:58:39.600Z
Unless it actually *is* an embarrassingly parallel problem, like [SETI@Home](https://setiathome.berkeley.edu/) or [Mersenne prime searching](https://www.mersenne.org/download/), where a central server can hand out work units for home computers and otherwise-idle servers to crunch on for hours.  Distributed computing has had good success in those few niche problems, like getting people to donate idle CPU time to science, math, or some other problem (like crypto brute force challenged: https://www.distributed.net/RC5)
Peter Cordes
CC BY-SA 4.0
2019-01-21T03:34:25.230Z
"Idle time" is an extremely poor way of putting it. While CPUs aren't under load, they don't use as much power. At the end of the day all of these projects cost significant amounts of money to run, rather than the implication that they are simply using otherwise wasted capacity.
Claris
CC BY-SA 4.0
2019-01-21T13:03:25.277Z
Yes, I'm aware of that.  Some of these projects started before idle power saving was such a huge deal.  But good point, I should add a caveat to my answer.
Peter Cordes
CC BY-SA 4.0
2019-01-20T08:53:06.283Z
2019-01-20T08:53:06.283Z
Claris
<p>I was recently talking to a German start-up that was in an accelerator programme. They are building a product which is a distributed database that they are proposing will have efficiency benefits over companies which keep their data on their own centralized database. They talked about leveraging the computational capacity of different computers in the company to increase efficiency. From what I know about distributed computing, it is more inefficient than having a centralized architecture. Are there scenarios where it provides some efficiency benefits and is this being applied?</p>

<decentralization>
Is there any benefits to a distributed computing architecture outside of cryptocurrencies?
AdaptiveAnalysis
# Is there any benefits to a distributed computing architecture outside of cryptocurrencies?

(Asked by: username_0 on 2019-01-20)

I was recently talking to a German start-up that was in an accelerator programme. They are building a product which is a distributed database that they are proposing will have efficiency benefits over companies which keep their data on their own centralized database. They talked about leveraging the computational capacity of different computers in the company to increase efficiency. From what I know about distributed computing, it is more inefficient than having a centralized architecture. Are there scenarios where it provides some efficiency benefits and is this being applied?

**Tags:** decentralization


---

## 3 answers

### Answer by username_3 on 2019-01-20. Score: 10 | Accepted answer

The only systems which benefit from being distributed are ones that display the property of being "[embarrassingly parallel](https://en.wikipedia.org/wiki/Embarrassingly_parallel)", or some approximation of it. Tasks which do not require a significant amount of data to be transmitted between operating systems, or those which don't require a significant amount of coordination fit this description well. Typically anything like a database is poorly suited to being distributed due to the need for overall consistency, which is very difficult to achieve across a distance.

Bitcoin is the opposite of a distributed system at the node level, every participant in the system is expected to repeat the process of validation in perfect accuracy with the hundreds of thousands, or millions of previous attempts at synchronization that have happened before it. As the number of nodes increases, there is no change in the amount of computation done in either direction.

Generally speaking anything claiming to improve efficiency by using a decentralized, or distributed network should be met with skepticism, simply because this is typically an uphill battle that is taken on for other reasons *despite* its inefficiency, not in an attempt to gain efficiency. To exemplify this, Bitcoin would be most efficient, most usable, and most reliable if it ran on a single server, but that would largely defeat the design brief of being trust-less.

> **Comments:**
> **username_1**: Unless it actually *is* an embarrassingly parallel problem, like [SETI@Home](https://setiathome.berkeley.edu/) or [Mersenne prime searching](https://www.mersenne.org/download/), where a central server can hand out work units for home computers and otherwise-idle servers to crunch on for hours.  Distributed computing has had good success in those few niche problems, like getting people to donate idle CPU time to science, math, or some other problem (like crypto brute force challenged: https://www.distributed.net/RC5)  
> **username_3**: "Idle time" is an extremely poor way of putting it. While CPUs aren't under load, they don't use as much power. At the end of the day all of these projects cost significant amounts of money to run, rather than the implication that they are simply using otherwise wasted capacity.  
> **username_1**: Yes, I'm aware of that.  Some of these projects started before idle power saving was such a huge deal.  But good point, I should add a caveat to my answer.  

---

### Answer by username_1 on 2019-01-20. Score: 2

Yes, there are several distributed-computing projects that let people donate otherwise-idle CPU time to the project.

(Note that with modern computers, that means also donating amount of electricity (30 to 80 Watts), because actually-idle CPUs / GPUs use (much) less power than when fully loaded. If you already heat your home with electricity, having your computer make the heat doesn't cost you anything extra, otherwise it add to your power bill. And extra air-conditioning if you're using more electricity to move the heat out of your house).

* science: [SETI@Home](https://setiathome.berkeley.edu/) processing radio telescope data looking for signals for alien civilizations  
  [Folding@Home](https://foldingathome.org/about/): *a distributed computing project for disease research that simulates protein folding, computational drug design, and other types of molecular dynamics.*
* math: [Mersenne prime searching: prime95](https://www.mersenne.org/download/)
* crypto brute force challenges like <https://www.distributed.net/RC5>.

I'm sure there are more, those are just the few that I can think of off the top of my head.

distributed.net was one of the early pioneers of this form of distributed computing, where a central server can hand out work units for home computers and otherwise-idle servers to crunch on for hours, eventually sending back a bundle of results and fetching new ones. All of the projects I listed use that same model.

They motivate people to keep their computers contributing by running a leaderboard for contributions, and let users make teams. A little bit of gamification can get people to put in the effort to set up the software on some extra computers that they wouldn't otherwise. (Of course there's also the reward of contributing to something useful or interesting.)

**To prevent cheating / corruption**, the central servers will sometimes hand out the same block or chunk of data to multiple users, and compare the results. **For some problems, the client can compute a proof-of-work result as it goes**, basically a hash of some internal result while crunching, which it couldn't compute much more efficiently without having gone through all the steps of the actual computation. This allows the server to detect cheating clients that try to win the leaderboards (or just sabotage the project) by sending back work units as complete without actually having done the work. For some projects, like prime searching, the actual result is just a "no primes in this range", which is obviously trivial to fake.

---

**All of the problems this model is useful for are "[embarrasingly parallel](https://en.wikipedia.org/wiki/Embarrassingly_parallel)"**: you can work on a subproblem without communicating *at all* with threads / nodes working on other subproblems.

---

As @Anonymous says, databases are usually not like this. The only thing I can think of is that maybe they're replicating the database onto every client, instead of having them send queries to a central server? If it's small-ish, and read-mostly, that could make sense. (Think like Git vs. SubVersion for revision control: with a distributed VCS like GIT, everyone has their own copy of the repo and can run searches locally instead of putting load on a central server and needing the latency of a round-trip over the Internet.)

---

# Or possibly the database you're talking about is only distributed over nodes in a tightly-coupled cluster

That's already a thing, I think.

There are also cluster filesystems where a whole cluster of machines have disks that make up one huge filesystem, like PVFS, Lustre. That can be called a [distributed filesystem](https://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems), although distributed does often imply over a less tightly controlled cluster. (There *are* some distributed filesystems that support having some nodes disconnected without stalling everything, though.)


---

### Answer by username_2 on 2019-01-20. Score: -1

See [DWeb](https://hacks.mozilla.org/2018/07/introducing-the-d-web/), an initiative from Mozilla foundation(?). They have a vision(search engine) for DWeb( for distributed web)such as:

Problems that we commonly encounter in day to day usage: data sharing between devices(phone needs to connect to laptops when not connected to internet- as they mention on their website). Even to help in reading old versions of a web site.

To preempt internet giants usurping web sites contents, and thereby removing from the internet world any such sites (content) that may have succumbed to darwinism.

Actionable intent for this distributed project:

* Stop hate speech
* Support net neutrality
* Stop censorship, governmental intrusion.

To this end, there is the [beaker project](https://beakerbrowser.com/about/), a distributed web browser, an experimental browser that enables peer to peer browsing, and distributivity. This project may just be the start of something, as it allows for better person-to-person (read peer to peer) information sharing, and thus enabling distributed computing, as sharing(media, content,etc) is done on on a peer to peer basis.

A file system or database is the underpinning of distribution, and such efforts, only
start in that direction. If for instance, peer to peer sharing in an environment that has
established rules - this could be enforced by a hypermedia sharing protocol such as Dat. An example of p2p sharing

-media from entity X goes to entity Y regularly, so there is ground for distributed sharing, and shared resource allocation, a distributed browser could enable such distribution.

Data could be stored locally on your computer- just shared by people on the p2p network.
For more [Beaker’s decentralized browser, sans blockchain](https://blocksplain.com/2018/02/19/beaker-decentralized-browser)!


---

