Parallel thoughts
Andy Armstrong
n at rciss.us
Tue Oct 2 08:43:59 BST 2007
On 2 Oct 2007, at 03:37, Eric Wilhelm wrote:
>> The problem with 2 is that all the parsing is still happening in a
>> single process. This bottleneck gets worse as you throw more cores at
>> the problem.
>
> This "drawback" is also a benefit if you look at it WRT callbacks and
> other things not having to deal with the forks and/or storable.
That's a benefit in the way that only running a single process is a
benefit because it's easier :)
> The problem with #3 is that you cannot distribute it across machines
> without having (matching) Storable and TAP::Parser installed on the
> nodes. There's probably also something to do with running a different
> perl version as the harness vs the tests.
Yes, but the problem with the other two is that they're CPU bound
before we've done anything interesting.
> If you look at it from the POV of parsing an archive (rather than
> running a harness) I would think multi-threading would be the way
> to go
> to speed-up the parsing process, otherwise I would guess that IPC
> becomes a real PITA and everything gets really complicated. Of
> course,
> it would be nice to just make the grammar run faster and quit
> trying to
> throw cores at it.
We haven't spent much of our total CPU time just parsing archives so
far. I'm guessing you don't like the IPC / fork based version?
> Why is the multiplexer not a subclass of TAP::Harness?
The multiplexer is a separate class. All three harness
implementations are next to each other in TAP::Harness at the moment
for ease of experimenting with.
--
Andy Armstrong, Hexten
More information about the tapx-dev
mailing list