Supercomputing On A Cell Phone

HardOCP News

[H] News
Joined
Dec 31, 1969
Messages
0
You know that big, bad, quad core, CrossFire / SLI rig you got? Throw it away, a smart phone is all you need! Well, that might be a bit of an exaggeration but the folks at MIT say a supercomputer phone is possible:

New software that runs on a smart phone can approximate in seconds computations that would take a supercomputer hours. The software works for problems whose form is know but whose particulars aren't; slider bars allow users to set the values for which they want the problems solved.
 
think about 10 years ago something like the droid or iphone wasn't possible in another 10 years hmm can you say personal tricorders
 
So in otherwords if you do 99.999% of the problem on a super computer and cache the results on your phone it can do the last 0.001% of it quickly.


**YAWN**
 
Originally Posted by rcf1987
think about 10 years ago something like the droid or iphone wasn't possible in another 10 years hmm can you say personal tricorders

In 10 years we'll all be passive consumers and the only computer on the market will be an iCorder.
 
think about 10 years ago something like the droid or iphone wasn't possible in another 10 years hmm can you say personal tricorders

You mean someone hasn't designed an app based on NASA's long range chemical detection technologies (the one's that let us tell that a planet has Sodium from a few light years away using certain light frequencies) and retrofitted the camera plus phone bandwidth to detect the chemical composition of any object the camera lens sees? Same principal.. most of the math is already done on supercomputers somewhere.. all you're doing is taking a picture and finishing the equations.

Or designed a bandwidth resonance method on how sound and light waves bounce on and vibrate through a human body to detect anomalous structures like a sonogram with thousands of small signals instead of one major one?

I should probably patent ideas before I talk....
 
Some time ago, super computers used to be the equivalent of today's smartphones, or laptops.

It's very possible that what we think of as a "supercomputer" now will have the technology to put it on a cell phone in the future.
 
Some time ago, super computers used to be the equivalent of today's smartphones, or laptops.

It's very possible that what we think of as a "supercomputer" now will have the technology to put it on a cell phone in the future.

What I find most exciting is that the time period between advances seems to be shrinking the further technology progresses. Could it be possible that we'll see AI, immortality, etc. in our lifetime?
 
I'm confused as to what exactly defines a problem that requires a supercomputer as to a regular computer. Is this something to do with the type of problem, the architecture required, or is it just saying that you need something with a lot of processing power?? Basically, what is different with this??
 
Computational Fluid Dynamics (CFD) is a classic example, and is the example used in the linked article. I'll do a bunch of back-of-the-envelope calculations on sizes and speeds, with lots of fudge and hand-waving.

You're using a simple 3D model with, say, 2048^3 cells. That's 8 Gcells, or 32GB in single precision for one variable. You'll probably end up needing 10-15 variables per cell (e.g. 3D momentum * 2 or 3 depending on time stepping method, pressure, divergence, temperature, etc.). That's 320+ GB to hold your model state.

At this point you realize you're not going to run this on today's home computer or even most people's home network. That's just because of the amount of memory involved. One can discuss whether particular models need that resolution, or whether using fancy meshing could reduce the number of points. Certainly it can -- people were doing meaningful CFD long before they had hundreds of GB of memory, but that's something about CFD: you never have the all resources you really want. Wikipedia's clever wording for these problems is "problems whose full solution requires semi-infinite computing resources." In CFD you might want finer mesh spacing, simulating a whole plane/car instead of just one wing, simulating multiple cars to see how dirty air effects the flow (extremely important in F1, who spend millions on CFD every year), finer time scale, more accurate solution at each time step, etc.

Computationally, a really simple model will perform about 500 floating point operations per cell per time step (very rough estimate and I believe it is low). How many time steps you run varies of course, but 100k isn't abnormal. 8 Gcells * 100k ts * 500 fpops/cell/ts = 400M Gfpops. If you can run the whole thing at 1 teraflop you finish in a bit under 2 hours. Typical multicore CPU speeds for CFD are under 10 GFLOPs and that's before cluster overhead, so on one multicore machine you get your answer in about a week. Ouch. Today's supercomputer is going to be a cluster of multicore CPUs connected by a fast interconnect such as Infiniband. Sometimes enhanced with coprocessors such as GPUs. That cost effectively gives it lots of parallel computation power and lots of memory. Simple CFD code using Infiniband connected GPU cards can top 1 teraflop of sustained computation.

I think we see how a smartphone with 10 MFLOPS of computation, 1 GB of memory, and no fast networking, isn't going to be able to do much CFD work. In theory Tegra should give some decent computation speeds, albeit with a very small amount of memory. Which brings us to the paper in question, which is about using heuristics to get approximate solutions to certain problems, and having a handle on your error bounds. That sounds useful.
 

I understand that there isn't a correlation between forum time and helpfulness, but that's the most helpful post from a newbie before lol. Thanks. But this raises my next question, wtf allows this phone to so something that my PC can't?
 
first we need to reduce the size of everything! seriously, the memory card on the right is huge, I’m sure it can hold 64+GB.
One way to speed it up is to be very clever with how cells are allocated such that we have fewer cells (dense allocation where we expect turbulent flow, with a few big cells where we don't). If done right we can still get accurate results. There are companies whose sole product is meshing software designed to decide what the right cell configuration is to get the best result within some limit. This only works so well though -- at some point you just need more cells. There is also lots of interesting work in how to partition the problem across the cluster.

Memory speeds are quite important in the calculations. For instance, Intel i7 CPUs are very fast at doing floating point operations for the right kind of task. If structured so the operations come in with little latency, do a bunch of SSE operations in registers or L1 cache, then write it out, things are great. There are some tasks like that. Sparse matrix operations are on the opposite end of the spectrum, where you're almost entirely limited by memory bandwidth, and parallelism is complicated. CFD is somewhere inbetween, with a big advantage of regular structure, but there is still a lot of communication between cells going on and a mix of memory bandwidth vs. computation.

I discounted the SD cards in the phone memory, similar to discounting disk drives. Latencies I've seen are 20x that of DRAM, bandwidth is lower (especially for writes), and I'd be worried about doing computation on a device with that kind of wear cycle. It isn't as bad as a disk drive at least.
 
But this raises my next question, wtf allows this phone to so something that my PC can't?
It's done with heuristics. Your PC could do what they've written for the phone. If you take someone who really knows fluid mechanics and tell them to draw a picture of what the flow would look like in a channel with a cylinder at some Reynolds number, I bet they could sketch something pretty close. That's basically when their program is doing. Take that example of a cylinder in a channel, run it through real CFD code with various parameters, and come up with a way to interpolate the results. Replace the cylinder with some airfoil you actually care about, add in angle of attack as a parameter, and now you have something that I could see as handy on a phone to give some quick estimates for a real problem which you could answer on site or in a meeting. Once you decide you're on the right track, then you run the real CFD model / put it in a wind tunnel.

A computer related analogy might be estimating various things for a custom ASIC -- die size, power consumption, clock rate limits, etc. Running your full model will take lots of memory and computation, plus lock up an expensive license while it churns. In theory you could run the model for some configurations, derive a heuristic for a bunch of things, and have a decent calculator that could answer things like "what would happen if we doubled the cache?" or "what if we added an extra image processing stage?" and so on. It would run fast because it wasn't trying to do a chip layout -- it's just seeing the extra IP stage adds another memory port, which raises timing on the RAM, which makes you miss some timing window, and the grand result is you slowed your ASIC down by 100MHz and raised the cost by $x.xx. If you have the right engineer with the right knowledge in the room at the time he could tell you the same thing. But maybe you don't have that guy in the room with you, or he hasn't studied that area
 
You mean someone hasn't designed an app based on NASA's long range chemical detection technologies (the one's that let us tell that a planet has Sodium from a few light years away using certain light frequencies) and retrofitted the camera plus phone bandwidth to detect the chemical composition of any object the camera lens sees? Same principal.. most of the math is already done on supercomputers somewhere.. all you're doing is taking a picture and finishing the equations.

Or designed a bandwidth resonance method on how sound and light waves bounce on and vibrate through a human body to detect anomalous structures like a sonogram with thousands of small signals instead of one major one?

I should probably patent ideas before I talk....

Uhhh... not yet. There is an android tricorder app that measures:

•GRAV: monitor the local gravitational field and acceleration
•MAG: monitor the local magnetic field
•ACO: acoustic analysis; waveform, frequency and sound level analysis of the ambient sound
•GEO: display geographical information (lat, long, altitude, velocity)
•EMS: scan the electromagnetic spectrum for radio signals -- currently displays cellular and WiFi signals
•SOL: display current solar activity data -- downloads current solar data in the background (may take a while) and displays it along with current images
 
Back
Top