[en] The objectives and requirements of computer science are constantly changing. Nowadays, when developing an algorithm, it is not enough to solve the problem itself since the energy-time performance or memory usage should also be taken into account, especially in high-dimensional problems such as FS. For some years, energy-aware computing has gained importance as it allows data centers to save costs by reducing energy consumption, and it is even today a topic of global interest due to environmental reasons. The present trend in the development of computer architectures that offer improvements in both performance and energy efficiency has provided distributed platforms with interconnected nodes including multiple multi-core CPUs and accelerators. In these so-called heterogeneous systems, the applications can take advantage of different parallelism levels according to the characteristics of the devices in the platform. Precisely, these differences between computing devices are what make heterogeneous computing, unlike homogeneous, present other problems to deal with. However, this process is not automatic and requires the intervention of the developer to properly program the applications and thus achieve good results. With this in mind, the objective of this thesis is the development of parallel and energy-efficient codes for time-demanding problems that frequently appear in bioinformatics and biomedical engineering applications. Specifically, this thesis tackles with unsupervised EEG classification, which is one of the aforementioned high-dimensional problems due to the characteristics of the EEG signals. To cope with the high number of features that each EEG contains, the implemented procedures are based on a multi-objective FS approach. The codes have been designed to take advantage of the heterogeneous architectures by exploiting the computing capabilities of their devices. In addition, they have been developed in a procedural way due to their complexity. This thesis also studies and compares the codes to identify the advantages and drawbacks of each, as well as analyzes the performance behavior in terms of energy consumption, execution times, and quality of the solutions under different situations such as workload, available computing resources, device clock frequency, and others that will be described in the corresponding chapters. The results show the importance of developing efficient methods to meet the energy-time requirements, pointing out the methodology to be followed and demonstrating that energy-aware computing is the way to continue on the right track.

[es] Los objetivos y requisitos de las ciencias de la computación cambian constantemente. Hoy día, los algoritmos deben desarrollarse pensando tanto en el problema a resolver como en factores relacionados con la energía, el tiempo y el uso de memoria, especialmente en problemas de alta dimensionalidad como la FS. Desde hace años, la computación eficiente ha ganado importancia ya que permite a los centros de datos ahorrar costes al reducir el consumo energético, siendo actualmente un tema de interés mundial por razones medioambientales. La tendencia actual en arquitectura de computadores está proporcionando mejoras de rendimiento a través de plataformas distribuidas y heterogéneas cuyos nodos interconectados incluyen CPUs multi-núcleo y aceleradores. En estos sistemas, las aplicaciones pueden aprovechar diferentes niveles de paralelismo según las características de sus dispositivos. Sin embargo, las diferencias entre dispositivos hacen que la computación heterogénea, a diferencia de la homogénea, presente otros inconvenientes que también deben tratarse. Como este proceso no es automático, la intervención del desarrollador para programar adecuadamente las aplicaciones y lograr buenos resultados es necesaria. Con esto en mente, el objetivo de esta tesis es desarrollar códigos paralelos y energéticamente eficientes para problemas costosos en tiempo que aparecen con frecuencia en aplicaciones de bioinformática e ingeniería biomédica. Específicamente, esta tesis trata con la clasificación no supervisada de señales EEG ya que es uno de los problemas de alta dimensionalidad mencionados anteriormente. Para hacer frente a la gran cantidad de características que cada EEG contiene, los procedimientos implementados hacen uso de la FS multi-objetivo y aprovechan las capacidades computacionales de los dispositivos presentes en las plataformas heterogéneas utilizadas. Además, han tenido que ser desarrollados de forma procedural debido a su gran complejidad. A lo largo de esta tesis, todos los procedimientos son evaluados para identificar sus ventajas e inconvenientes. El rendimiento de cada uno de ellos es analizado en términos de consumo energético, tiempo de ejecución y calidad de las soluciones bajo diferentes condiciones experimentales tales como la carga de trabajo, recursos de cómputo disponibles, frecuencia de operación del dispositivo y otras que se describirán en el capítulo correspondiente. Los resultados muestran la importancia de desarrollar métodos eficientes para cumplir con los requisitos de tiempo y energía, señalando la metodología a seguir y demostrando que la computación energéticamente eficiente es el camino a seguir.