User avatar
Jessie
Posts: 1754
Joined: Fri Nov 04, 2011 7:40 pm
Location: C/S CO USA

Re: Distributed computing. Like F@H.

Tue Nov 29, 2011 8:29 pm

I like to participate in distributed computing projects. Now wouldn't it be nice if Stanford were to realease a client for the Pi? I know what some here will say, that it is computationally too weak, but what about 100 or 1000 of them hooked to a switch?

Right now when I would like to increase my output it leaves me with a couple expensive options. First is to build another computer. Second would be to upgrade the CPU or GPU in my current machine. It would be nice to be able to order point increases $35 at a time.

I understand that very few of these projects will bother to compile something with such a small user base. Most of them are closed source just to keep contibuters from cheating and other such things so there is no chance of a community developed client. But, I figured since we are waiting on the device still, why not discuss it anyway?

obarthelemy
Posts: 1407
Joined: Tue Aug 09, 2011 10:53 pm

Re: Distributed computing. Like F@H.

Tue Nov 29, 2011 10:02 pm

There have been back-of-the-envelope estimates: not worth it, neither money nor electricity-wise, unless you could tap the GPU, which you won't be able to do.

Svartalf
Posts: 596
Joined: Fri Jul 29, 2011 6:50 pm

Re: Distributed computing. Like F@H.

Tue Nov 29, 2011 10:29 pm

I wouldn't be so quick to dismiss GPU coding on the R-Pi- there's quite a few things you can manage to do with shader coding that would bring you close to what's possible with OpenCL- how do you think they came up with the notion of GPGPU programming in the first place? :D

Having said that, it remains to be seen, past the educational exercise aspects of things, whether this would buy you much for a Cloud situation.

Nutmeat
Posts: 35
Joined: Tue Oct 18, 2011 2:36 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 3:56 am

Quote from obarthelemy on November 29, 2011, 22:02
There have been back-of-the-envelope estimates: not worth it, neither money nor electricity-wise, unless you could tap the GPU, which you won't be able to do.
I've been thinking about those estimates, but I haven't done better than get a gut feeling that an all-pi cluster would be nothing more than an exercise in intelligent space heating with lots of flashing lights and not enough ram.

Can we talk about the theory behind those calculations?

Nutmeat
Posts: 35
Joined: Tue Oct 18, 2011 2:36 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 6:12 pm

No takers?
Here's my stab at the numbers:

I've used this:
http://www.theregister.co.uk/2.....pberry_pi/
to come to the specs on the SoC: A Broadcom BCM2835

From the Broadcom website:
http://www.broadcom.com/products/BCM2835

we have access to the "low power ARM1176JZ-F Applications Processor".

I'd like to leave the real meat of the SoC out: the dual core VideoCore IV Multimedia Co-Processor

According to this website:
http://en.wikipedia.org/wiki/L.....ssor_cores

The ARM1176JZ(F)-S with a variable, MMU + TrustZone Cache will provide, typically 965DMIPS@772 MHz.

Please poke holes in this if you'd like. I didn't realize the core was operating at 772 Mhz. Perhaps it will not. If that number drops to 700MHz, the linear performance would drop to 965*(700/772)=875DMIPS

Compare that to: (from http://en.wikipedia.org/wiki/M.....per_second)
An AMD Phenom II X4 940 which is good for 4,282 DMIPS @ 3.0GHz.

4282 DMIPS / 875 DMIPS = 4.9x the performance... by the processor.

If I simplify, the AMD product, costing about $120 (check your local retailer), is about 3.5x the price (no motherboard, no RAM). Add RAM and a MB, and you should break through the MIPS/$ barrier: Raspi wins.
If I look at watts, the 140W(!) used by the AMD is two orders of magnitude in excess of that used by the Raspi. The Raspi will always win here, unless the goal is to boil water.

Now where my gut feeling comes into play:
How does the cluster pass data?
Via that 100baseT connection? Wow, we found our bottleneck, and it's skinny.
Even looking at using USB2.0 you'll never go beyond the 480Mb/s transfer rate. Compare that with Gigabit ethernet for the more conventional system, and you'll need 3-10 Raspis just to match that bandwidth.
This is where the case for a Raspi cluster with $35 per point upgrade starts to fall apart.

Am I making a reasoned and at least partially correct back of envelope analysis here?
I'm coming to believe that the Raspi may make a cheap cluster testing tool, but as a production device, it doesn't look to be built for the task.

obarthelemy
Posts: 1407
Joined: Tue Aug 09, 2011 10:53 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 6:29 pm

I won't dive into numbers, but I would guess that AMD CPU is far from the best x86 to line up against the ARM. How does an i3, or an E-350, fare ? Plus you can probably get a bit of GPGPU off the E-350, no clue about the i3 (I think it does HD2000, not 3000, and not straight HD)

Svartalf
Posts: 596
Joined: Fri Jul 29, 2011 6:50 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 8:35 pm

Quote from Nutmeat on November 30, 2011, 03:56
I've been thinking about those estimates, but I haven't done better than get a gut feeling that an all-pi cluster would be nothing more than an exercise in intelligent space heating with lots of flashing lights and not enough ram.

An All-R-Pi cluster is going to be more of an exercise in learning about cluster technology without being able to tie into the GPU (Which IS doable if you're talking an MPI type cluster instead of Shared-System-Image (Kerrighed, etc...)- at least until someone can figure a good way to migrate a GPU compute kernel from processor to processor inside of an SSI system...). Having said this, for at least SOME tasks (Originally GPU computation was doing hacks on top of the stock OpenGL/DirectX GPU APIs through clever tricks with render targets and shaders...), you'll be able to leverage the GPU's power- but it's not going to be like a true GPGPU situation until someone shows Broadcom the viability of that sort of thing on a VideoCore IV GPU.

Svartalf
Posts: 596
Joined: Fri Jul 29, 2011 6:50 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 8:37 pm

Quote from obarthelemy on November 30, 2011, 18:29
I won't dive into numbers, but I would guess that AMD CPU is far from the best x86 to line up against the ARM. How does an i3, or an E-350, fare ? Plus you can probably get a bit of GPGPU off the E-350, no clue about the i3 (I think it does HD2000, not 3000, and not straight HD)

It's good enough for off-the-cuff stuff. High-end AMD server CPUs compare fairly against Intel's Xeons for overall performance. They put out more heat, so typically they're not used in clusters unless you have a memory throughput /integer execution requirement on the cluster that'd dictate the Opterons (They've got some advantages there with 64-bit code...).

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24692
Joined: Sat Jul 30, 2011 7:41 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 8:54 pm

Quote from Svartalf on November 30, 2011, 20:35
Having said this, for at least SOME tasks (Originally GPU computation was doing hacks on top of the stock OpenGL/DirectX GPU APIs through clever tricks with render targets and shaders...), you'll be able to leverage the GPU's power- but it's not going to be like a true GPGPU situation until someone shows Broadcom the viability of that sort of thing on a VideoCore IV GPU.


It's certainly possible, but viable? Given the large amount of cash required to implement something like OpenCL (It would need to be done by Broadcom engineers on Broadcom's time), where is the payback?

There are quite a few people who would like to see access to the GPU power from the host (there is a lot of it), me included, but even we as proponents cannot yet see a market that would pay for it.

Some would argue - let the community do it. But they wouldn't be able to - there simply isn't the experience required outside of Broadcom. I can count on the fingers of two hands the number of people capable of programming the vector unit well, and as for some of the other cores, well, that's the fingers of one hand.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I own the world’s worst thesaurus. Not only is it awful, it’s awful."

Svartalf
Posts: 596
Joined: Fri Jul 29, 2011 6:50 pm

Re: Distributed computing. Like F@H.

Wed Nov 30, 2011 11:43 pm

You don't need OpenCL to do GPGPU coding- it's just that it's MUCH easier to do it. (Like I said, OpenCL wasn't conceived as an idea to begin with. They were just beginning to think in terms of how to make the basic texture/render target/shader code tricks be done easier back when I was working for AMD some 6-7 years ago...). It shouldn't be too hard, I would think, to move the tricks that started all of it over to OpenGL ES 2.0 since the needed aspects are in both worlds.

I suppose I'll be one of the people trying it when the R-Pi gets out.

[edit]

Here's a link to a tutorial about doing the kinds of stuff I've been talking about. No OpenCL- just OpenGL commands that'd be mostly portable to OpenGL ES 2.0.

http://www.mathematik.tu-dortm.....orial.html

Nutmeat
Posts: 35
Joined: Tue Oct 18, 2011 2:36 pm

Re: Distributed computing. Like F@H.

Thu Dec 01, 2011 2:59 am

Quote from jamesh on November 30, 2011, 20:54
...
Some would argue - let the community do it. But they wouldn't be able to - there simply isn't the experience required outside of Broadcom. I can count on the fingers of two hands the number of people capable of programming the vector unit well, and as for some of the other cores, well, that's the fingers of one hand.
:)
http://news.cnet.com/8301-1377.....67-52.html
Sorry, the parallel came straight to mind.
:)

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24692
Joined: Sat Jul 30, 2011 7:41 pm

Re: Distributed computing. Like F@H.

Thu Dec 01, 2011 7:40 pm

That's good work. But not in the same league (by several orders of magnitude probably) as what is needed to do an OpenCL driver for a GPU.

To be clear, I'm not saying it would be impossible for a third party to come in and do the job, but they (they - this would be a multiple man team job) would need a lot of access to the Broadcom engineers for the help they would undoubtedly need.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I own the world’s worst thesaurus. Not only is it awful, it’s awful."

Nutmeat
Posts: 35
Joined: Tue Oct 18, 2011 2:36 pm

Re: Distributed computing. Like F@H.

Sat Dec 03, 2011 2:02 pm

Quote from Svartalf on November 30, 2011, 23:43
...
Here's a link to a tutorial about doing the kinds of stuff I've been talking about. No OpenCL- just OpenGL commands that'd be mostly portable to OpenGL ES 2.0.

http://www.mathematik.tu-dortm.....orial.html

I really enjoyed that. Thanks!

Quote from jamesh on December 1, 2011, 19:40
That's good work. But not in the same league (by several orders of magnitude probably) as what is needed to do an OpenCL driver for a GPU. ...
A different kettle of fish indeed.

Warringer
Posts: 56
Joined: Tue Aug 23, 2011 5:04 pm

Re: Distributed computing. Like F@H.

Sun Dec 04, 2011 2:07 pm

Theoretically it should be possible to write one using the OpenGL ES 2.0 API.

Not going to be very fast through. And there is the need for more people taking interest in it.

I would try to help, but I have absolutely no idea how to program a driver. Let alone one that is going to be this complex.

Return to “Other projects”