Multi-core support? 

Is there a way to use MORE processors in one experiment at the same time?

Currently I can run 3 experiments with 100% usage on each processor but it is too complicated to make ends meet.

Thanks in advance.

Maciej Komosinski's picture

Framsticks supports parallel, multi-threaded evolution – see standard-mt.expdef. In a general case however, the way creatures should be simulated in parallel depends on the experiment definition (i.e., each experiment definition should do it in a different way, and for some experiments parallel simulation is not reasonable).

Read about technical details here:

For optimization and co-optimization experiments, we have developed a hybrid architecture where one of the available evolutionary toolkits (ecj) controls evolution, and Framsticks acts as an evaluator of creatures and a genetic engine – see "coevolution" here:

This allows you to have as many evaluators as you want, and distribute them on many machines if needed. The solution is usable but still in development, so if you are not a programmer, you won't be able to use it out-of-the-box.

A more friendly and high-level solution is a python wrapper here:

BTW, you can run as many processes as cores (4 in your case) and set low priority for them so that they do not interfere with your work; then you will have your computing power fully used. For larger experiments, CLI is recommended over GUI.

Another issue is that having many independent optimization processes is often advantageous: in the end you get many results instead of one, which gives you much more information about your simulation/process. Since evolution is non-deterministic, it is common to repeat each process 10 times or more in order to understand it better or draw more meaningful conclusions.

Thanks! I can't dig into the source, I'm simply running parallel default experiments and I occasionaly bifurcate best one (which I like the most). It is getting really interesting. I'll upload the result in some time. (Running Framsticks while working kicks ass)