Print

Print


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