Resumen:
|
[ES] Dada la complejidad actual en el diseño de sistemas, incluyendo la variedad de componentes, interfaces de conexión, modos de operación, etc., es necesario realizar una exploración sistemática del espacio de diseño ...[+]
[ES] Dada la complejidad actual en el diseño de sistemas, incluyendo la variedad de componentes, interfaces de conexión, modos de operación, etc., es necesario realizar una exploración sistemática del espacio de diseño para poder determinar la configuración óptima para unos requisitos dados. Esta aproximación también puede extenderse a todos
aquellos ámbitos en los que las alternativas disponibles son demasiado numerosas como para considerarlas en su totalidad. Un claro ejemplo lo constituye la compilación de
algoritmos descritos en C, ya que compiladores como GCC disponen de más de 200 opciones de compilación, que pueden configurarse a diferentes niveles, y cuya combinación
generará diferentes códigos binarios con diferentes características.
En este trabajo se han analizado diferentes estrategias de exploración del espacio de diseño multiobjetivo con el fin de definir una metodología que permita determinar una configuración (sub-)óptima de las diversas opciones de configuración del compilador GCC que permita optimizar una serie de objetivos como i) el uso de memoria RAM, ii) el tamaño del fichero ejecutable, iii) el tiempo de ejecución del algoritmo, iv) la utilización de la CPU y v) la robustez del fichero binario resultante, y permita añadir fácilmente a futuro nuevos objetivos a optimizar. Durante el trabajo se analizan diferentes metodologías de investigación operativa y se presenta la elegida.
El objetivo principal de la herramienta creada es permitir a los usuarios finales configurar adecuadamente GCC para optimizar el binario resultante de acuerdo a los objetivos
planteados
[-]
[EN] Given the increasing complexity of current systems, their design space must be thoroughly explored to find the best possible configuration to meet a given set of constraints.
This approach can also be applied to ...[+]
[EN] Given the increasing complexity of current systems, their design space must be thoroughly explored to find the best possible configuration to meet a given set of constraints.
This approach can also be applied to all those domains in which there exist too many alternatives to be completely analysed. For instance, compilers for C programs, like gcc,
have more than 200 compilation flags that can be set to several levels and that will lead to binary codes with different characteristics. This work presents a methodology that makes use of operational research techniques, like design space exploration and multi-criteria decision making, to enable the optimal configuration of gcc compilation flags to meet a set of goals like memory and CPU use, execution time, and size and robustness of the generated executable file, among others.
A tool has also been developed to support this methodology and enable final users to properly configure gcc to optimize the generated binary file according to selected goals
[-]
[CA] Donada la complexitat actual en el disseny de sistemes, incloent la varietat de components, interfícies de connexió, maneres d’operació, etc., cal fer una exploració sistemàtica
de l’espai de disseny per poder ...[+]
[CA] Donada la complexitat actual en el disseny de sistemes, incloent la varietat de components, interfícies de connexió, maneres d’operació, etc., cal fer una exploració sistemàtica
de l’espai de disseny per poder determinar la configuració òptima per a uns requisits
donats. Aquesta aproximació també es pot estendre a tots aquells àmbits en què les alternatives disponibles són massa nombroses com per considerar-les íntegrament. Un clar
exemple el constitueix la compilació d’algoritmes descrits en C, ja que compiladors com
GCC disposen de més de 200 opcions de compilació, que poden configurar-se a diferents
nivells, i la combinació generarà diferents codis binaris amb diferents característiques.
En aquest treball s’han analitzat diferents estratègies d’exploració de l’espai de disseny multiobjectiu amb la finalitat de definir una metodologia que permeta determinar
una configuració (sub-)òptima de les diverses opcions de configuració del compilador
GCC que permeta optimitzar una sèrie d’objectius com a i) l’ús de memòria RAM, ii) la
grandària del fitxer executable, iii) el temps d’execució de l’algorisme, iv) la utilització de
la CPU i v) la robustesa del fitxer binari resultant, i permeta afegir fàcilment a futur nous
objectius a optimitzar. Durant el treball s’analitzen diferents metodologies d’investigació
operativa i es presenta la triada.
L’objectiu principal de l’eina creada és permetre als usuaris finals configurar adequadament GCC per optimitzar el binari resultant d’acord amb els objectius plantejats.
[-]
|