I want to use the parallel evaluation feature of ECJ to run the evolution of a robot inside a simulation. I have been reading through the ECJ tutorials and the manual and apparently this can be done either by using multithreading or by using parallel processes. The problem is that it is better for me to start multiple instances of the simulator only at the beginning of the evolutionary process, since it is an external program, and then use each individual thread or process to control only one individual instance of a simulator at a given time, that is, the simulator instances would act as servers waiting for the threads to connect, run the simulation and return the result,  so:

Is there a way to identify different threads in the multithread case so that one thread would only control one simulator instance at a time? or

is there a way to know in which slave a problem is running in the parallel process case?

Can the master-slave parallel process system be run on one computer or should it be always used in a cluster?

Thank you very much,

Best Regards,