Parallel and Distributed Tools for Evolutionary Computations ------------------------------------------------------------ Over the past 20 years, because of their generic solving capabilities, evolutionary algorithms (EA) have become more and more popular. They have demonstrated their usefulness at solving real world problems in almost all of the hardest problem areas. They may not be the most efficient methods for all problems, but they are always applicable and, in many of the hard cases where optimal solutions are intractable, they represent one of the better alternative. The price to pay for this genericity, however, is high (sometimes huge) computational effort. Thus the need for parallel and distributed evolutionary computation tools. This seminar is structured into three 2-hour parts. Part I is about fundamentals, part II about existing tools, and part III about a new software architecture that we are currently developing for distributed EA deployment. Our main objective is to survey the field of evolutionary computations (EC) in order to identify potential areas of parallelism. We will not be introducing any new EA per se, nor describe bleeding edge techniques, our aim is more to highlight the range of existing EA flavours and their embarrassingly parallel nature. We will not introduce any new parallel paradigms either, what we wish to achieve is to identify what can be parallelized and how to implement this parallelization as simply and efficiently as possible on a large supercomputer. For part I, we will thus start by justifying the need for EC, and then carry on with a survey of its main flavours: genetic algorithms, evolutionary strategies, evolutionary programming, and genetic programming. We will also address several important paradigms in EC, like island models, coevolution, hybrid methods, and multicriteria optimization. Finally, we will also overview some fundamental concepts of parallelism like distributed memory and message passing. In part II, will focus on hardware and software tools. In particular, we will first introduce the CLUMEQ consortium for high performance computing and its new Colossus supercomputer. Then, we will focus on requirements for building software tools that enable rapid prototyping of evolutionary systems on such parallel computers. Finally, we will overview Open BEAGLE, one of the fairly well-known and freely available framework for distributed EC, and discuss some of the weaknesses that it shares with other frameworks: general complexity and lack of documentation. Finally, part III will present an on-going project called DEAP that we hope will constitute the foundations for the next generation of EC applications, to enable the rapid and efficient development of distributed evolutionary algorithms, thus facilitating and accelerating the validation of new research ideas.