ec.exchange.2-Island-Server.README Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ecj Show documentation
Show all versions of ecj Show documentation
ECJ, A Java-based Evolutionary Computation Research System.
ECJ is a research EC system written in Java. It was designed to be highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file. All structures in the system are arranged to be easily modifiable. Even so, the system was designed with an eye toward efficiency.
ECJ is developed at George Mason University's ECLab Evolutionary Computation Laboratory. The software has nothing to do with its initials' namesake, Evolutionary Computation Journal. ECJ's sister project is MASON, a multi-agent simulation system which dovetails with ECJ nicely.
The newest version!
[If you're looking for a simple example of doing an island
model, don't look here -- look instead in 3-Island.]
This model is a special example of how to create a server
that's not actually a client program -- the process
SOLELY exists to be a server. Why would you want to do this?
Well, we were running on a beowulf cluster maintained by a
company that wouldn't allow us to know beforehand exactly
what the IP address was of *any* node. (They were using a
queueing system, argh). We got around this by putting our
clients out on the cluster, but having a dedicated machine
with a known IP address as the server. The company permitted
this because the server doesn't have almost any network traffic
going to it -- it's just for synchronization.
So in this example we'll have two islands, Minoa and Crete,
using minoa.params and crete.params, plus a separate server
(in server.params). You need to launch the server differently
than you'd normally launch an ECJ process. What you do here
is launch the server as:
java ec.exchange.IslandExchange -file server.params
Then you launch your islands:
java ec.Evolve -file crete.params
java ec.Evolve -file minoa.params
If you're running crete and minoa on separate machines from
the server, you'll need to modify the parameter to tell them
where the server is:
java ec.Evolve -file crete.params \
-p exch.server-addr=address.of.server.com
java ec.Evolve -file minoa.params \
-p exch.server-addr=address.of.server.com
© 2015 - 2025 Weber Informatics LLC | Privacy Policy