
|
Algorithms 1. Self-Assembly and Self-Organization in Complex Systems Self-assembly is the
fundamental process that creates the specific conditions under which atoms,
molecules, or even galaxies spontaneously arrange themselves into a final
entity (molecule, drug, universe, etc). On the other hand, self-organization
is a process in which the components (or state) of a system increase in
complexity without external intervention. In some cases, self-organizing
systems could exhibit emergent behaviour. The aim of this project is use a
range of algorithmic techniques to study and gain insight into the processes
of self-assembly and self-organization for a wide range of systems. 2. Computing By Using Membrane Models The
basic operations on membranes, implemented by a variety of molecular mechanisms,
are local fusion (two patches merging) and local fission (one patch splitting
in two). In two dimensions at the local scale of membrane patches, fusion and
fission become a single operation, a switch. A switch is a fusion when it
decreases the number of whole membranes, and is considered fission when it
increases such number. Membrane machines are very unusual computational
models and they exhibit certain properties that qualify them for the
execution of ‘real’ algorithms. This project involves the study
of these models to explore their potential for the execution of different
classes of algorithms. 3. The Mapping of Optimization
Algorithms on Different Families of Computer Architectures This project involves the mapping of different
classes of optimization algorithms on a variety of computer architectures
(e.g. multicores, GPUs, FPGAs). For example, developing and analyzing
specialized parallel algorithms (GAs, ACO, PSO, etc)
for a cluster of GPUs. Then compare them against
traditional clusters and characterize their algorithmic and run time behaviour,
as well as their efficiency/efficacy in solving standard benchmarks and one
target problem (telecoms or other domains). Another example is the
development of algorithms to run on multicore
computers (threads utilization) and comparison in efficiency and different
other features with traditional cluster parallel algorithms. Development of
an optimization software library targeted to optimization on multicore computers.
|