On 30 July 2010 01:40, phallus99 <phal...@gmail.com> wrote:
Maybe that was out of line, but in any case this has been building up
for a month.
What has been building up for a month? Your hatred for this language? Why do you care so much about somebody elses language project? Go outside and get over it already! Its _just_ somebodies programming language project.
The thing is Ani is restricted in parallelization, meaning that the
compiler decides how it is done and all of that.
It leaves no room for finniking to fit a certain job better.
Also I don't under stand your hate for pthreads. I find it
extraordinarily easy, but that's just me, so whatever.
What is this certain job? Please, tell me. As somebody who (as sad as this sounds..) has a copy of "The Art of Multiprocessor Programming"[1], "Intel Threading Building Blocks"[2] and "Patterns in Parallel Programming"[3] sitting on his desk beside him, I have to disagree with your statements.
Pthreads (and similar) ARE hard. Just look at any ACM publication and you're very likely to see mentions of the "multicore problem" or other mentions of how hard multicore is.
Some things _are_ easy in pthreads, and when you find those, by all means, use pthreads! ANI is just a tool. Don't use it when pthreads makes more sense. However, a lot of problems are NOT well suited to pthreads.
Quick example - using pthreads, how to you best partition your work so that it runs as fast as possible on a dual core machine? How about the same code running as fast as possible on a quad core machine? A 64 core machine? An N core machine? The difficulty of multicore programming is making use of FUTURE cores and not hard coding the parallelism for todays machines.
If you happen to use C++, Intel Threading Building blocks makes this a lot lot simpler than using pthreads. ANI tries to elliminate this problem for as many cases as possible (but we never claimed for all).
--Daniel Kersten.
Leveraging dynamic paradigms since the synergies of 1985.
On Jul 29, 5:50 pm, Daniel Kersten <dkers...@gmail.com> wrote:Yes, we should. I believe you have the perms for doing so, too -- but
> Accidentally didn't post this to the list.
>
> Anyway, at some point we should edit the project page to explain these
> things, since it is an important question to a lot of people.
correct me if I'm wrong.
Also, this phallus character should be considered a learning
experience for the project; the next pointless troll that comes around
(there will be another one eventually) can simply be directed to this
discussion. And then, we win, because the troll fails to get what he
wants (to waste our time).
Kudos on handling it, Dan!
Thanks for the encouragement; it means a lot!
I definitely think that a restructuring in how we do languages is in
order. I'm not blind enough to say that ANI/anic is the best and only
way it should be done, but I think things are getting ridiculous with
trying to program multithreading in C/C++, which is the only way to do
it these days if you want good performance.
The problem is that multithreading scale is getting so difficult and
unsafe that nobody wants to do it unless they absolutely have to. And
when they *do* do it, the developper effort to set up the frameworks,
locking policies, and everything else is a nightmare and a huge source
of bugs.
Many people have tried to fix the problem with libraries and language
additions, but the problems are still there and I think that breaking
out of the imperative paradigm entirely deserves a try.
I think that a big thing holding back our use of parellelization isn't
our hardware or our inability to make use of it -- it's our ability to
program it, and that's what we're trying to fix here. C was a great
language for a single-processor terminal-connected mainframe, but
those ideas are so out of tune with the state of the art in processing
today that I think we need to look at the issue from the ground up
(e.g. "why do we need call stacks or function calls at all in a
parallel envoironment?") instead of adding more and more hacks onto
the old languages (e.g. "OpenMP") to ease the pain of tranasition into
the age where we can't boost raw clock speeds any further.
Adrian