Summer of Code 2007
From Beagle
Page on Open BEAGLE's Summer of Code 2007
Contents |
How to apply
To participate in the SoC, please consult Google's Student FAQ page for details.
Open Beagle is an evolutionary computation framework written in C++. To understand how it works, a good place to start is by reading the Manual and Tutorials. The next step is to consult the Doxygen documentation or write to the developer's mailing list.
The administrators of this SoC are Marc Parizeau and Christian Gagné. They will also serve as main mentors.
Project ideas
Below is a list of project ideas. You should also consult the What goes on and Feature request pages.
MPI implementation of Distributed BEAGLE
A sophisticated master-slave Distributed BEAGLE has previously been developed for exploiting LAN's or WAN's of heterogeneous workstations. This implementation is based on TCP/IP socket communication with an SQLite database for data persistency. Although functional and robust, it is both too complex and ill-adapted for efficiently exploiting a cluster of homogenous servers. The idea is to redesign a simpler solution with MPI, especially customized for HPC clusters.
Mentor: Marc Parizeau
Configuration files, plugins and introspection
An important design goal of Open BEAGLE is to allow the customization of every parts of the framework according to the user's needs. The selection of the software components to use is now done in part by the configuration file and in part in the code. A first objective of the proposed project is develop mechanisms to allow complete customization of the application from a configuration file. A second objective would be to allow extension of the available modules by a portable plug-in mechanism. And finally, the third aspect would be to generate introspection of a given application based on Open BEAGLE, by generating structured "introspection file" (using a predefined format) detailing the possible configuration parameters and algorithms that a given application support.
Mentor: Christian Gagné
GUI to manage the configuration files
This project is closely related to the previous one, although it can be done independently, in parallel. Configuration files of Open BEAGLE allow a great deal of flexibility. It is plan that they would allow complete customization of applications. But their flexibility comes with a some complexity and are not always self-explainable. It would be very interesting, for beginners as well as expert users, to have a graphical interface to generate and manage the configuration files for a given application. This would mean to design a dynamic interface, that would be able to read the "introspection file" of an application describing of the configuration of a given application, and then offer an appropriated interface to generate new configuration files, or to modify existing one, in a user-friendly manner.
Mentor: Christian Gagné
