Trabalho apresentado no âmbito do Mestrado em
Engenharia Informática, como requisito parcial
para obtenção do grau de Mestre em Engenharia
InformáticaThe current trend of evolution in CPU architectures favours increasing the number
of processing cores in lieu of improving the clock speed of an individual core. While
improving clock rates automatically benefits any software executing on that processor,
the same is not valid for adding new cores. To take advantage of an increased number
of cores, software must include explicit support for parallel execution.
This work explores a solution based on diverse replication which allows applications
to transparently explore parallel processing power: macro-components.
Applications typically make use of components with well-defined interfaces that
have a number of possible underlying implementations with different characteristic.
A macro-component is a component which encloses several of these implementations
while offering the same interface as a regular implementation. Inside the macro-component,the implementations are used as replicas, and used to process any incoming operations.
Using the best replica for each incoming operation, the macro-component is able
to improve global performance.
This dissertation provides an initial research on the use of these macro-components,detailing the technical challenges faced and proposing a design for the macro-component support system. Additionally, an implementation and subsequent validation of the proposed system are presented. These examples show that macro-components can achieve improved performance versus simple component implementations