[dundee] Concurrent Programming on Linux

Rick Moynihan rick.moynihan at gmail.com
Wed Nov 18 13:17:52 UTC 2009


2009/11/18 Gary Short <gary at garyshort.org>:
>> Sounds interesting, though as I said it depends on what you want to
>> do....  Don't just assume that you need a "concurrent language"
>> because multi-core CPU's are around the corner...  For example if
>> you're making an appliance then unit cost of the hardware might be
>> more of a concern than performance and load handling...  for example
>> if it's some kind of personal server, then it's possibly idling most
>> of the time anyway.  Scaling down to the embedded end might be more
>> important and profitable than scaling up...
>>
>> The good thing about Linux is the diversity and choice available...
>> And the fact that it scales down incredibly well... There are
>> libraries, servers and software for literally everything, many of
>> which have very low hardware requirements...  It's amazing the things
>> you can string together with little more than bash, cron and some kind
>> of network service.  Plus some of the new mini appliance hardware is
>> truly awesome if it's capable enough... e.g. the Sheeva plug:
>>
>> http://www.marvell.com/products/embedded_processors/developer/kirkwood/
>> sheevaplug.jsp
>
> Yeah good advice. I'm not too concerned with unit cost as this will be at
> the higher end and I won't be selling zillions of them (sadly). This
> appliance will be "always on" sampling and reporting on realtime data and
> "time-span-of-your-choice-to-date" analysis.

In that case Clojure is probably a good candidate, it (as Lisp did)
has found somewhat of a niche in statistical processing etc...  See:

http://incanter.org/

Some sample plots:

http://wiki.github.com/liebke/incanter/sample-plots-in-incanter

I toyed with it a while back to generate some basic plots, and found
it to be pretty good...

Also flightcaster.com are using Clojure in their backend to do all the
smarts (statistical inferencing) for when flights are likely to be
delayed...

http://www.infoq.com/articles/flightcaster-clojure-rails

If the data is realtime and ensuring consistency across concurrent
read/writes is important then Clojure's STM is likely to be a big help
too.

R.



More information about the dundee mailing list