Live data from Hacker News

Erlang and IBM Power8 in the cloud: super-high single-system parallelism

erlang.org

21–30 of 64 posts

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#22

It is not just about Erlang, but any language+runtime which has been designed upon a well-known set of sound principles (immutability, share-nothing, message-passing). As long as order of evaluation does not matter (for a pure-functional code) some [major] parts of a program could be evaluated in parallel by runtime without any changes in the code (especially when a high-order function composition - map/filter/reduce…

> So, Haskell, for example, will do it too. By "will do it" you mean "would, in theory, support a compiler that parallelized significant amounts of idiomatic code with no source changes"? Maybe. I don't think any existing Haskell compiler does that, though.

I've had GHC automagically parallelize tree-traversal code before. However, I think in general you have to put a bit of work in to it.

Of course, you could theoretically just write an actor library that did the exact same thing as erlang.

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#23

It is not just about Erlang, but any language+runtime which has been designed upon a well-known set of sound principles (immutability, share-nothing, message-passing). As long as order of evaluation does not matter (for a pure-functional code) some [major] parts of a program could be evaluated in parallel by runtime without any changes in the code (especially when a high-order function composition - map/filter/reduce…

Haskell will do what? Automatic parallelization of code? The big difference between Erlang and Haskell is that Erlang fundamentally encourages the programmer to think in terms of individual processes that communicate by message-passing. Programmers have also been taught that spawning processes is cheap so idiomatic Erlang code typically have tons of them.

> Programmers have also been taught that spawning processes is cheap so idiomatic Erlang code typically have tons of them.

The green threads in Haskell are just as cheap, in some cases, cheaper than Erlang's processes. Haskell programmers are similarly encouraged.

Concurrency and parallelism are pretty easy in Haskell.

http://chimera.labs.oreilly.com/books/1230000000929

http://hackage.haskell.org/package/slave-thread

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#24

While the performance seen here is nice, i'm curious to see the price/performance ratio. Running against a 8-core XEON would not make sense if the closer Intel system price-wise is a quad 12-core xeon... Obviously we are talking cloud here so it might not even apply. By my experience with Power7, the price/performance ratio is much lower on Power then Intel systems. Maybe it changed but i'm not holding my breath, eve…

the thing you're getting here is primarily throughput on a single image. Even if it's more expensive per-core per-hour, you can't discount that you'd have to work a lot harder to get the equivalent 30-box distributed solution to work properly, and even then it would have certain disadvantages owing to network latency.

This is interesting and I'd like to hear more opinions on it. My impression is that distributed computing has been eating Power/Sparc/Z processors' lunch for a long time now because software has made up for the deficiencies of coordinating 30 boxes. Do you and do any others believe that we are at an inflection point where the pendulum swings back in the direction of 'high-performance' processors like Power8, or will improvements in 'scale-out' ease-of-use and economies of scale continue to win the day?

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#25

Earlier quoted context omitted.

Haskell will do what? Automatic parallelization of code? The big difference between Erlang and Haskell is that Erlang fundamentally encourages the programmer to think in terms of individual processes that communicate by message-passing. Programmers have also been taught that spawning processes is cheap so idiomatic Erlang code typically have tons of them.

> Programmers have also been taught that spawning processes is cheap so idiomatic Erlang code typically have tons of them. The green threads in Haskell are just as cheap, in some cases, cheaper than Erlang's processes. Haskell programmers are similarly encouraged. Concurrency and parallelism are pretty easy in Haskell. http://chimera.labs.oreilly.com/books/1230000000929 http://hackage.haskell.org/package/slave-thread

Yes, indeed. Marlow's book is really good one.

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#26
post #18
post #16

Earlier quoted context omitted.

That is interesting. RAM bandwidth could significantly impact a lot of applications. I guess the only ways it to measure and compare. The problem I see with power is it has a different endiannes and even though compilers know how to handle it, a lot of libraries and code might just assume some specific ordering (little endian) and thus fail un-expectedly on POWER.

That's why Power is now little-endian.

Power has been little endian for a while. No one bothered to tell the software guys to write a little endian OS and tools for it....

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#27

How does POWER8 compare to x86, e.g. Haswell? Just skimming some of the architecture details... * 4x hardware threads per core (8-way SMT vs. 2) * 1/4th FP throughput per core (8 SP flops/cycle vs. 32) * 3x bandwidth to RAM (230 GB/s vs. 68) [edit: updated for Haswell-EP] https://en.wikipedia.org/wiki/POWER8#Specifications http://www.redbooks.ibm.com/abstracts/tips1153.html What is it good for?

Based on experience with POWER7, emptying your wallet.

it's surprising how much cheaper these Power8 boxes are compared to the Power7 boxes. You can get a tyan 2U, 1 socket system for $2800 FOB HK: http://www.tyan.com/campaign/openpower/

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#28

How does POWER8 compare to x86, e.g. Haswell? Just skimming some of the architecture details... * 4x hardware threads per core (8-way SMT vs. 2) * 1/4th FP throughput per core (8 SP flops/cycle vs. 32) * 3x bandwidth to RAM (230 GB/s vs. 68) [edit: updated for Haswell-EP] https://en.wikipedia.org/wiki/POWER8#Specifications http://www.redbooks.ibm.com/abstracts/tips1153.html What is it good for?

> What is it good for? Running very demanding single-system software. It's the sort of box you'd install DB2 or Oracle on, especially if you've already tied your business to IBM solutions in the past.

It depends on what you mean by "demanding". I think that single threaded applications on x86 (with nothing else running) will smoke the Power8 system. But if you have lots of threads and high levels of concurrency going on, i think that the results will be very much workload dependent.

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#29
post #18

Earlier quoted context omitted.

That's why Power is now little-endian.

Power has been little endian for a while. No one bothered to tell the software guys to write a little endian OS and tools for it....

My point is that little-endian Ubuntu is now available.

Re: Erlang and IBM Power8 in the cloud: super-high single-system parallelism

#30
post #21

A while ago (here's an article from 2002: http://lwn.net/Articles/6367/ ), the big new thing was going to be ibm mainframes running linux VMs. Whatever became of that? Is anyone still doing that?

the last I heard, Linux on the IBM Mainframes were driving > 50% of their sales.
Post reply on HN