Let's talk about providing a simple communication layer for not-entirely independent optimization runs. The general idea is to provide some class that provides a very minimal set of functionality that is sufficient to implement replica exchange and such methods. The class would be something like class JobManager { unsigned int get_number_of_jobs(); unsigned int get_my_job_number(); void publish_particles(int to_job, ParticlesTemp); void receive_particles(int from_job, ParticlesTemp); }; Implementation could be provided via files or MPI as needed.
So we need to make sure we know enough about cluster jobs management to make sure things are feasible and sufficient (Ben) and what exactly is needed for replica exchange (Yannick). For other people, what other types of optimization protocols are worth thinking about?
Tuesday at 1pm.