Live data from Hacker News

Booting 5000 Erlangs on Ampere One 192-core

underjord.io

31–40 of 51 posts

Re: Booting 5000 Erlangs on Ampere One 192-core

#31

Earlier quoted context omitted.

Neat! I always thought the name of the Erlang programming language just meant “Ericsson Language”, since this programming language was invented for Ericsson. Never knew there was anything more than that to the name!

I believe it's both.

[deleted]

Re: Booting 5000 Erlangs on Ampere One 192-core

#32

Earlier quoted context omitted.

Neat! I always thought the name of the Erlang programming language just meant “Ericsson Language”, since this programming language was invented for Ericsson. Never knew there was anything more than that to the name!

I believe it's both.

I believe it's neither:

"The origin of queueing theory dates back to 1909, when Agner Krarup Erlang (1878–1929) published his fundamental paper on congestion in telephone traffic [for a brief account, see Saaty (1957), and for details on his life and work, see Brockmeyer et al. (1948)]." -- https://www.sciencedirect.com/topics/engineering/queueing-th...

Re: Booting 5000 Erlangs on Ampere One 192-core

#33
post #6

Earlier quoted context omitted.

I really like the manycores approach, but we haven’t seen it come to fruition — at least not on general purpose machines. I think a machine that exposes each subset of cores as a NUMA node and doesn’t try to flatten memory across the entire set of cores might be a much more workable approach. Otherwise the interconnect becomes the scaling limit quickly (all cores being able to access all memory at speed). Erlang, at…

Paraphrasing the late great Joe Armstrong, the great thing about Erlang as opposed to just about any other language is that every year the same program gets twice as fast as last year. Manycores hasn't succeeded because frankly the programming model of essentially every other language is stuck in 1950. I, the program, am the entire and sole thing running on this computer, and must manually manage resources to match i…

I'm curious, which actor model warts are you referring to exactly?

[The obvious candidates from my point of view are (1) it's an abstract mathematical model with dispersed application/implementations, most of which introduce additional constraints (in other words, there is no central theory of the actor model implementation space), and (2) the message transport semantics are fixed: the model assumes eventual out-of-order delivery of an unbounded stream of messages. I think they should have enumerated the space of transport capabilities including ordered/unordered, reliable/unreliable within the core model. Treatment of bounded queuing in the core model would also be nice, but you can model that as an unreliable intermediate actor that drops messages or implements a backpressure handshake when the queue is full.]

Re: Booting 5000 Erlangs on Ampere One 192-core

#34

Earlier quoted context omitted.

I believe it's both.

I believe it's neither: "The origin of queueing theory dates back to 1909, when Agner Krarup Erlang (1878–1929) published his fundamental paper on congestion in telephone traffic [for a brief account, see Saaty (1957), and for details on his life and work, see Brockmeyer et al. (1948)]." -- https://www.sciencedirect.com/topics/engineering/queueing-th...

also the namesake of the unit fwiw

Re: Booting 5000 Erlangs on Ampere One 192-core

#35
post #15

"5000 Erlangs" - oh, they meant 5000 instances of some Erlang interpreter. Not Erlang as a unit of measure.[1] One voice call for one hour is one Erlang. [1] https://en.wikipedia.org/wiki/Erlang_(unit)

Neat! I always thought the name of the Erlang programming language just meant “Ericsson Language”, since this programming language was invented for Ericsson. Never knew there was anything more than that to the name!

And it was a pun by Ericsson engineers, as they used Erlang to program telephone switches where the capacity planing included Erlangs.

Re: Booting 5000 Erlangs on Ampere One 192-core

#36

Earlier quoted context omitted.

I believe it's both.

I believe it's neither: "The origin of queueing theory dates back to 1909, when Agner Krarup Erlang (1878–1929) published his fundamental paper on congestion in telephone traffic [for a brief account, see Saaty (1957), and for details on his life and work, see Brockmeyer et al. (1948)]." -- https://www.sciencedirect.com/topics/engineering/queueing-th...

In the early days of telephony, system load was measured by how much current was being drawn from the talk power supply. This was done with a watt-hour meter, calibrated in erlangs.[1]

(It's amazing how little logging went on in the phone system before computerized switching. But that's another subject.)

[1] https://physicsmuseum.uq.edu.au/erlangmeter

Re: Booting 5000 Erlangs on Ampere One 192-core

#37
post #30

Earlier quoted context omitted.

Paraphrasing the late great Joe Armstrong, the great thing about Erlang as opposed to just about any other language is that every year the same program gets twice as fast as last year. Manycores hasn't succeeded because frankly the programming model of essentially every other language is stuck in 1950. I, the program, am the entire and sole thing running on this computer, and must manually manage resources to match i…

Can you explain the joe armstrong quote a bit to someone not familiar with the language?

Erlang's runtime system, the BEAM, automatically takes care of scheduling the execution of lightweight erlang processes across many cpus/cores. So a well written Erlang program can be sped up almost linearly by adding more cpus/cores. And since we are seeing more and more cores being crammed into cpus each year, what Joe meant is that by deploying your code on the latest cpu, you've doubled the performance without touching your code.

Re: Booting 5000 Erlangs on Ampere One 192-core

#38
post #20
post #6

Earlier quoted context omitted.

I really like the manycores approach, but we haven’t seen it come to fruition — at least not on general purpose machines. I think a machine that exposes each subset of cores as a NUMA node and doesn’t try to flatten memory across the entire set of cores might be a much more workable approach. Otherwise the interconnect becomes the scaling limit quickly (all cores being able to access all memory at speed). Erlang, at…

> Erlang, at least the programming model, lends itself well to this, where each process has a local heap. If that can stay resident to a subsection of the CPU, that might lend itself better to a reasonably priced many core architecture. I tend to agree. Where it gets -really- interesting to think about, are concepts like 'core parking' actors of a given type on specific cores; e.x. 'somebusinessprocess' actor code al…

The BEAM launches a scheduler process per CPU thread in SMP mode, although I don't know if it moves Erlang processes between them.

Re: Booting 5000 Erlangs on Ampere One 192-core

#39
post #6

Earlier quoted context omitted.

I really like the manycores approach, but we haven’t seen it come to fruition — at least not on general purpose machines. I think a machine that exposes each subset of cores as a NUMA node and doesn’t try to flatten memory across the entire set of cores might be a much more workable approach. Otherwise the interconnect becomes the scaling limit quickly (all cores being able to access all memory at speed). Erlang, at…

> Erlang, at least the programming model, lends itself well to this, where each process has a local heap. That loosely describes plenty of multithreaded workloads, perhaps even most of them. A thread that doesn't keep its memory writes "local" to itself as much as possible will run into heavy contention with other threads and performance will suffer a lot. It's usual to try and write multithreaded workloads in a way…

Yes, but in Erlang, everything on every process is immutable and nothing is ever trying to write anywhere besides locally. Every variable assignment leaves the previous memory unchanged and fully accessible to anything directly referencing it.

Re: Booting 5000 Erlangs on Ampere One 192-core

#40

I would be much more interesting in seeing 5000 under heavy load. Just being able to star that many instances is not that exciting until we know what they can do.

Erlang handles heavy load VERY well, between work stealing schedulers and soft realtime via reduction counting (any program can be interrupted and stopped after any instruction and resumed transparently)
Post reply on HN