On Apr 8, 2013, at 5:16 PM, Mehran Maghoumi wrote:

> OK so the subject may be a bit misleading but that is the best I could come up with.
> I am trying to evaluate my individuals on CUDA. Based on some papers, I concluded that the best way to 
> do so is by converting the individuals to Reverse Polish Notation (Postfix) expressions.
> I know the best way to do this is to write classes that generate postfix individuals in the first place.
> However, since the main focus of my work is not ultra-optimization, any conversion of the tree to postfix 
> expression will do.
> Right now what I am doing is using a modified version of the "makeLispTree" method in GPNode class to 
> generate a posfix expression from the tree.
> As it is stated in that function's JavaDoc, this is not a good method for doing over and over again or 
> sending the individuals over the network.
> What method can I use to do the same thing but with better performance?

Your approach will probably be fine, don't worry about it.

HOWEVER, I strongly suggest that if you're doing CUDA evaluation, you might first talk to Denis Robilliard, Virginie Marion-Poty, or Cyril Fonlupt.  See http://www-lil.univ-littoral.fr/~robillia/GPUregression.html

These folks have already done a lot of ECJ + CUDA work.


> Since ECJ has IslandModel parallelism, how is it transferring individuals with acceptable performance from 
> an island to the next?

It's writing the object graph as a binary object, using DataOutput.  That won't be useful for you.

Sean