Dual Processors

Shawn Pearce <>
Mon Sep 9 19:36:17 CEST 2002


Well, Erts today is not yet able to use multiple CPUs at once.
The driver async thread system can use the other CPUs in the
system to perform IO operations on, but this is only of benefit
if you are doing that much IO...  which is doubtful.

Best is to setup a distributed Erlang system with one Erts node
per CPU.  Configure some type of pool resource or something to
send jobs to the two nodes, trying to split the load between them
as evenly as possible.  Something of a PITA, since Erts won't
do it on its own.  Since you stated that your application is
pretty concurrent, this may be pretty easy to setup.

Fast single CPU boxes may be very good for Erts, as the cost
to communicate between two nodes on the same machine is not much
higher than the cost to communicate over a switched Ethernet
network one hop.  There is a difference, but multiple machines may
give you extra memory bandwidth, not to mention more disk space and
bandwidth and better reliability for hardware failure cases, esp.
if you only need all nodes to meet some performance target, but can
"limp along" with one or more down.

"martin j. logan" <> wrote:
> Hello all,
> 
>         I was just wondering if the current erlang implementation could 
> reap
> considerable performace benefits from running on a dual CPU machine?
> 
> I have an application, Call Detail Record Collection, that is very 
> resource hungry.
> It spawns processes like mad - one for each truly concurrent activity. 
> What hardware
> enviornment does ERTS thrive in?
> 
> Thanks,
> Martin
> 

-- 
Shawn.

Try the Moo Shu Pork.  It is especially good today.



More information about the erlang-questions mailing list