With the advent of GPGPU cards, all computers are becoming massively
parallel systems that are very difficult to program efficiently. Indeed,
the latest generation of NVIDIA cards provide more than 3000 cores grouped into multi-processors of 32 SIMD cores. This means that in order to efficiently execute an existing algorithm on a single PC with a hexacore CPU and a top notch GPGPU card, one should decompose the algorithm into 6 major tasks and 1024 minor ones which, 32 by 32, should execute the same instruction at the same time!
Because of necessary synchronizations between cores and data exchanges, exploiting efficiently such a machine (a standard PC) is virtually impossible with standard algorithms.
Fortunately, Complex Systems produce results that emerge from the multi-level interaction of many independent entities that can be directly implemented in a very efficient way on multi-level massively parallel machines such as the ones described above.
This tutorial will show how the EASEA-CLOUD massively parallel evolutionary platform implements evolutionary algorithms (that can optimize nearly any kind of continous, discrete, combinatorial, mixed problems) as a kind of Complex System, where entities are individuals that interact through genetic operators, not only on one machine, but on computing eco-systems such as clusters or grids of GPGPU machines, or a cloud of computers.