[Push] Speed

Lee Spector lspector at hampshire.edu
Wed Jun 30 14:57:15 EDT 2010


On Jun 30, 2010, at 1:28 PM, PerPlex Ed wrote:
> 
>> PS I should also say with respect to the Clojush timings that in Clojure, as in many Lisps, you can usually get really major speed improvements by specifying optional type information ("hints"), but I haven't done any of that at all. Yet.
> 
> I guess that will conflict with automatic promotion.

Probably for hinting within numeric types to some extent, but I think there would be performance gains from hinting other types too.


>> Also BTW one of the selling points of Clojure is that it's fairly trivial to make things run on multiple cores, and I'm relying in part on that to do large scale runs (with 16-core nodes and a 48-core node soon).
> 
> Genetic Programming is trivial to run on multiple cores on any platform. It really takes few lines more lines than running on a single core.

True enough, but although I'm no concurrency guru I think that Clojure makes things even easier by encouraging the use of immutable data structures almost everywhere and providing some particularly elegant high-level concurrency structures. In a lot of cases (though this isn't what I currently have in Clojush) going mulitcore is as  simple as changing map to pmap, and you don't have to worry much about contention or races etc.

> Anyway, I was primarily worried that I didn't do anything really bad. I saw a web java applet with Koza-style symbolic regression that appeared to be faster than mine and got scared. I'm not using Push enough to justify spending more time in making it run faster.But I would like to find a way to save the initialization time of the random generator.
> 
> Thanks for Clojush's timings!

I'm glad you're working to make yours efficient! It does matter, for sure.

But do bear in mind that a Koza-style GP system (esp with a small purely numeric function set, etc.) is a different beast from PushGP in a bunch of ways.

FWIW although I often think of efficiency considerations relatively late in the game some of the other Pushers are much better at this, and you might get some ideas from the non-Lisp implementations.

 -Lee

--
Lee Spector, Professor of Computer Science
School of Cognitive Science, Hampshire College
893 West Street, Amherst, MA 01002-3359
lspector at hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438

Check out Genetic Programming and Evolvable Machines:
http://www.springer.com/10710 - http://gpemjournal.blogspot.com/



More information about the Push mailing list