Re: Road to Clojure Survey 2.0



Phil Armitage schrieb:
On Feb 19, 9:22 pm, André Thieme <address.good.until.
2009.may...@xxxxxxxxxxx> wrote:

But of course we see that quad-core cpus cost 115€.
This year we will have 6-core and maybe also octa-core CPUs. For next
year 12 cores are coming. In two years Intel will ship its 80-core
server cpu. Have a dual 80-core box and enjoy the 160 cores :)

If you want to use them then you are facing some problems with mutable
data structures. Locks bring you back to single-core land.
Clojures semi-optimistic STM with MVCC and immutable data structures
however let you solve such tasks way easier. Safety built in.

This is just my opinion which may turn out to be embarrassing in a few
years time but it seems that some people are getting quite worked up
about the need to keep all those cores busy with one instance of a
program.

If I have 160 cores in my computer then I'm going to be running more
than one program on it at a time! Workstations running consumer OS'
already run many processes and high performance server programs could
be designed as multiple instances thereby gaining not only in
performance and scalability but also from fail-over, redundancy and
stability.

Some of us are already writing our software this way rather than
betting everything on single applications that soak up every cycle of
every core using as yet unproven technologies.

I'm obviously not saying that all programs should have just one thread
of execution, but rather that not that many programs need hundreds
(and yes, you can come up with examples that do but there are many
orders of magnitude more that don't).

I agree with you on most points.
Out of the set of 80% of the most widely used programs tons of cores are
not needed. Even with 2-4 probably most of those 80% run quite well.
The cores help to improve the user feeling when running more programs.

One thing that is very possible though is that many programs could
profit from massive parallelism for some parts of their code base.
Enough applications ship with some kind of search. If you have 8000
emails in your mail software and want to search for one then you could
profit if 80 cores each have to search inside max 100 mails.
I keep the default setting of 90 days history in my firefox.
Ctrl+Shift+h should bring up the full history and make it searchable.
Firefox gets very very slow on my Dual-Core Notebook.
Letting each of my 13 tabs in Firefox run on their own core may also
help a little to further improve my user experience.

Clojure allows you to write much more parts in your software in a way,
such that they can run in parallel. Without these features you would
not even have cared about putting those things into their own threads.
But with the Clojure system your software will automatically adopt to
how many cores are available.


I personally have an interest that is one of those exceptional cases
that you mentioned, and that is Genetic Programming (and AI in general).
Honestly, I could easily use 100% CPU power of a Billion-Core CPU system
and still wish to have more cores.

The real need for that kind of systems lies in my opinion in an upcoming
Matrix and in AI systems.
When our software will typically be enabled to learn, and get its own
neural network, then we want to run several parts of these brains in
parallel.
Human brains are the most massive parallel computers we know. They have
vastly more powerful capabilities than we find it todays software.
Looking at the human brain tells us, that parallelism is good for thinking.
Both work very well together. And that is going to happen IMO with our
computers as well. We will expect to have conversations with our
computers, and we would maybe like to hear their opinion about a new
movie, etc.
These pieces of software will become (in the future) our new main
applications. Not Word, Thunderbird and Firefox anymore.

And about this Matrix stuff:
Even today some nice successes can be found in the area of Retina Displays.
They could be very well become cheap enough around 2015 for private
persons. As I see it, Retina Displays will become the major plattform
for visual information. Everyone wants to have his RD in his glasses,
and a few years later in his contact lenses available everywhere.
We will expect from our mobile phones/computers to have much more
computational power than todays top systems. Because we want to be
able to fill our complete field of sight with visual 3d information
that must look extremly realistic. Hopefully indistinguishable from
„reality” ;)

Those upcoming applications will replace a lot of the software that
is most widely used today.
Yes I know, this all was a bit philosophical, and not all of this
will be here in the next 3 years (and some of it may never become
reality, but who knows?), but those „Centurion-CPUs” (100 cores)
each running on 140 GHz are also still some years away.

But again back to the top: I think it is fair to say that many
typical applications which we write today can load their work for
peaks to many CPUs. So, the cores can help to make those peaks nicer.
And server side software that needs to deal with hundreds of users
at the same time... obvious.


André
--
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org/
.