Calculating power of all smartphones - can it be used for anything good?

In past years the point made by proponents of distributed “crowd-sourced” computing is the computing capacity “even beat the largest supercomputers”: SETI@home - Wikipedia

SETI@home Chief Scientist: “It’s the biggest supercomputer on the planet by far”: http://archive.wired.com/science/discoveries/news/2000/12/40801?currentPage=all

That was true years ago but it is no longer true. That is a major change. The cause for this change was the transition of the supercomputing industry to massively parallel machines from vector machines. Understanding this transition is important to grasping what kinds of tasks are suitable for volunteer crowd-sourced distributing computing, and which are not. There is still useful work they can do but the situation today is totally different from years ago.

Regarding price, in 2000 the entire SETI@home network could produce about 25 teraflops. Today a single desktop PC with a Xeon Phi coprocessor card can do about 6 teraflops, or roughly 1/4 that fast – from one desktop machine. That one machine is consuming a lot less power and is overall much cheaper.

But you would probably see self-driving cars used pretty quickly for pizza delivery! That, and other food delivery, is a specialized kind of freight that could be easily accommodated.

It was Seymore Cray. "“If you were ploughing a field, which would you rather use: Two strong oxen or 1024 chickens?” Two strong oxen being a Cray X-MP.

One of the standard texts for parallel programming I used to use had on its cover - lots and lots of chickens.

I think there are some misconceptions about the possibilities and limitations.

The key limitation is, as noted above, power and thermal. Phones would need to be on their chargers otherwise they would quickly deplete their batteries, and generally annoy their owners.

But phones do contain quite a bit of compute power. The trick is to craft a task that can use it. SETI@home and the protein folding tasks are perfectly adapted to this. They are single tasks that can be initialised with a small amount of data, and can then run to completion with no further communication needs. Further they are part of a very long lived task that does not care about the timeliness for delivery of the result. This is very different to many tasks that are run on large scale machines and clusters. Here the design of the machine is driven by the intercommunication and storage needs of the task. This can often mean very high bandwidth, low latency links. The communication component can cost as much as the rest of the machine. So, the model for things like SETI@home and the like is to have small simple tasks that asynchronously request the data and parameters for their next run from a central service, and then simply go away and chum on the problem. When they are done they send back the results they got. The communication needed could be managed in something as trivial as an SMS message. The time between tasks could be hours.

Modern smart-phones have some pretty spiffy compute capability in their GPUs. However this suffers from the usual issues in trying to get leverage on making good use of this power. The fit between the GPU operation and many tasks is poor. But for some tasks it can be good enough that the speed can be quite satisfying. But writing software that can gain access to the GPU, and work usefully on the wide range of GPUs on all the different phones around would be a major undertaking.

Calculating the compute power of something like SET@home and the like is very difficult. There is no metric that can usefully compare it to Top 500 supercomputers. That ranking is still done with Linpack. Which whilst it has some pretty significant flaws as a benchmark metric does at least reflect contribution from the communication network to the overall speed. Running SETI@home on any of these supercomputers would be a waste - as the task would not make use of much of the inherent capability of the machines.

Running SETI@Home on any machine is a total waste of energy IMHO. Protein folding and similar tasks actually have some benefit.

Except personal cars are, get this, personal. People store stuff in their cars. People don’t want strangers rifling through their Yanni CDs and emergency toddler snacks and so on, all of which would happen if their cars were operating as pizza delivery vehicles or ad hoc taxis or whatever else.

I’m perfectly on-board with the idea of self-driving cars. I’m definitely on-board with the idea of fleets of self-driving cars being used as taxis. I’m just leery of the idea of the average person wanting to clean out their car at the end of the day so it can become a taxi on the graveyard shift.

Just wanted to point out that this is a thread about distributed computing, not self-driving cars.

Right. And you do see smartphones being used for specialized computation purposes, even ones that the people who bought them weren’t really planning on.

Like, above, people pointed out that routing software like Waze uses the position of the phone to figure out where to route people. But those uses take advantage of the important capabilities of a smartphone, which is that people carry it with them and it’s got a bunch of sensors that tell it where it is.

Apologies for the digression about self driving cars. Agreed that are plenty of threads about those, and we don’t need to make this into one. But I think the analogy is useful. A bunch of smartphones is not a server, and while you could sort of brute force them into one, it’s not generally economically viable.