Sender: |
|
Date: |
Fri, 22 Jan 2010 08:49:53 -0500 |
MIME-version: |
1.0 (Apple Message framework v936) |
Reply-To: |
|
Content-type: |
text/plain; charset=US-ASCII; format=flowed; delsp=yes |
Subject: |
|
From: |
|
In-Reply-To: |
|
Content-transfer-encoding: |
7bit |
Comments: |
|
Parts/Attachments: |
|
|
Nope. Though I would be pretty surprised to find that it made a
_huge_ difference.
Some stuff to note. Way back when we had ECJ more heavily
multithreaded in certain locations. And discovered that as a result
it was *slower* than just running on a single CPU. This is because
the thread overhead is quite high if your threaded tasks are short in
duration.
LoadElites is expensive: it's O(n^2) in the worst case. So it's an
obvious candidate for parallelization if possible. And Java's thread
overhead has reduced since the earlier days described before (but not
as much as you'd think). So go for it if you've got a strategy for
doing so. But (1) I think it may not be trivial to parallelize
LoadElites and (2) compared to the evaluation phase -- which usually
dominates stuff timewise -- ordinarily such a beast wouldn't be that
costly. So think carefully first about whether it'd really be worth
it...
Sean
On Jan 22, 2010, at 7:25 AM, Adam Spalek wrote:
> All,
> I am running SPEA2 on several CPUs. The problem with the
> SPEA2Breeder class
> is that all of the loadElites(...) loops run just on one CPU. Has
> anybody
> already developed a support for multi-threads?
> Cheers
|
|
|