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.