Reconstruir el árbol genealógico de la vida —esa red de parentescos que conecta virus, bacterias y mamíferos a través de millones de años de evolución— tiene un coste que rara vez se menciona: el energético. Analizar genomas complejos para trazar relaciones evolutivas puede disparar el consumo eléctrico de los centros de cálculo y, con él, su huella de carbono.
Durante años, la investigación en bioinformática se centró casi exclusivamente en ir más rápido, dejando en un segundo plano cuánta energía se gastaba por el camino. Un equipo de la Universidad de Extremadura ha querido invertir esa prioridad. Combinando tres ingredientes —el reparto de cálculos entre varios núcleos del procesador, la vectorización, que permite procesar decenas de datos a la vez con una sola instrucción, y el ajuste fino de la velocidad del procesador— han conseguido que uno de los algoritmos más usados en filogenética, el algoritmo de Fitch, consuma hasta veinte veces menos energía en los escenarios más exigentes.
Lo interesante no es solo el ahorro, sino cómo lo logran: no basta con bajar la frecuencia del procesador para ahorrar energía, ni con programar mejor el software; hace falta combinar ambas estrategias con cabeza. El trabajo, además, compara su diseño con herramientas ya establecidas en el campo, como el software Parsimonator incluido en RAxML, y muestra mejoras notables también frente a él.
Este artículo resume en qué consiste esa propuesta y qué implica para el futuro de una bioinformática más responsable con el planeta.
El precio energético de reconstruir el árbol de la vida
Cuando los científicos quieren saber cómo están emparentadas distintas especies, cepas víricas o bacterias, recurren a los árboles filogenéticos: diagramas en forma de rama que representan quién desciende de quién a lo largo de la evolución. Para construir y evaluar esos árboles se necesitan grandes cantidades de cálculo, porque cada secuencia genética puede tener miles de posiciones y hay que comparar cientos o miles de esas secuencias entre sí.
Ese cálculo intensivo tiene una cara oculta: el consumo eléctrico. Estudios previos citados en este trabajo han llegado a estimar emisiones de hasta 3.565 kilogramos de CO2 equivalente en escenarios experimentales reales de análisis filogenético. Es una cifra que pone números a algo que la comunidad bioinformática rara vez calculaba: cada árbol reconstruido tiene también una huella ambiental.
Hasta ahora, la búsqueda de eficiencia energética en este terreno se había limitado casi en exclusiva a soluciones basadas en FPGA, unos chips programables especializados que no todos los laboratorios tienen a mano. Quedaba pendiente una pregunta más práctica: ¿se puede conseguir algo parecido usando simplemente una CPU convencional, el tipo de procesador que hay en cualquier servidor de cálculo?

El algoritmo de Fitch, paso a paso
El protagonista de este trabajo es el algoritmo de Fitch, una de las herramientas clásicas de la filogenética. Su función es calcular la parsimonia de un árbol evolutivo, es decir, el número mínimo de mutaciones necesarias para explicar las diferencias genéticas observadas entre los organismos representados. Cuanto menor sea ese número, más «económica» —y por tanto más plausible, según este criterio— se considera la hipótesis evolutiva.
El algoritmo recorre el árbol desde las hojas (los organismos actuales, de los que se conoce la secuencia genética completa) hasta la raíz (los ancestros hipotéticos), calculando en cada nodo interno un conjunto de estados posibles a partir de los estados de sus dos descendientes. Cuando los dos hijos comparten algún estado, se asume herencia directa; cuando no comparten ninguno, se infiere que ha habido una mutación, y ese nodo suma un punto a la parsimonia total del árbol.
Es un proceso con una característica muy útil desde el punto de vista computacional: aunque el recorrido del árbol tiene que respetar cierto orden (no se puede calcular un nodo antes que sus hijos), el cálculo de cada posición de la secuencia genética es independiente del resto. Esa independencia es la puerta de entrada perfecta para el procesamiento paralelo.
Tres piezas para ahorrar energía: hilos, vectores y frecuencia
El equipo de la Universidad de Extremadura ha diseñado una implementación del algoritmo de Fitch que combina tres estrategias:
Procesamiento multihilo con OpenMP. El trabajo se reparte entre los distintos núcleos del procesador, de modo que cada uno se encarga de un grupo de posiciones de la secuencia genética.
Vectorización con instrucciones AVX512. Cada núcleo, además, puede procesar hasta 64 posiciones genéticas a la vez gracias a un tipo de instrucciones del procesador pensadas para trabajar con muchos datos simultáneamente. En este trabajo, los estados genéticos se codifican en formato binario compacto —cada nucleótido ocupa un bit concreto—, lo que permite resolver las operaciones de intersección y unión propias del algoritmo de Fitch mediante simples operaciones lógicas AND y OR a nivel de bit, mucho más rápidas que comparar carácter a carácter.
Ajuste de frecuencia del procesador. Por último, se explora qué ocurre si se hace trabajar a la CPU a distintas velocidades, desde 2,3 gigahercios hasta 1 gigahercio, usando la herramienta cpupower de Linux y midiendo el consumo real mediante la tecnología RAPL, que permite leer directamente cuánta energía gasta el procesador y la memoria.
La clave del trabajo es que ninguna de estas tres piezas basta por sí sola. Bajar la frecuencia reduce la potencia instantánea, pero alarga el tiempo de ejecución; y un tiempo más largo también consume energía. Es la combinación de un diseño paralelo eficiente con la frecuencia adecuada la que permite encontrar el punto óptimo.

Lo que muestran los datos: hasta 20 veces menos energía
Para poner a prueba el método, los investigadores usaron cuatro conjuntos de datos genéticos reales, con tamaños muy distintos: desde 50 secuencias de bacterias de la familia Enterobacteriaceae hasta 1.459 secuencias del virus VIH-1, pasando por secuencias de Salmonella enterica y de mamíferos. Los experimentos se ejecutaron en un procesador Intel Xeon Gold de 16 núcleos, repitiendo cada prueba once veces sobre 2.000 árboles filogenéticos distintos para asegurar resultados estadísticamente fiables.
Los resultados muestran que la frecuencia máxima del procesador (2,3 GHz) es la que ofrece los tiempos de ejecución más rápidos, mientras que la frecuencia mínima (1 GHz) es la que menos potencia instantánea consume. Pero ni una ni otra son las mejores opciones en términos de energía total gastada. El punto óptimo se sitúa en frecuencias intermedias: 1,70 GHz para tres de los cuatro conjuntos de datos y 1,85 GHz para el conjunto más grande, el del VIH-1. En ese último caso, ajustar la frecuencia permitió reducir el consumo de 140,1 a 120,9 julios respecto a la configuración de máxima velocidad.
Cuando se compara el diseño completo —vectorización, multihilo y frecuencia ajustada— con una versión que solo usa autovectorización del compilador (es decir, sin ninguna de estas optimizaciones específicas) funcionando a máxima frecuencia, la diferencia es mucho mayor: el consumo energético llega a bajar de 1.830,6 julios a apenas 120,9 julios en el conjunto de datos más exigente, una mejora de 15 veces. En los otros conjuntos de datos, las mejoras llegan a ser de hasta 20,6 veces. Los autores destacan que las ganancias más grandes aparecen precisamente en los escenarios con secuencias genéticas más largas, donde el cálculo vectorizado tiene más margen para lucirse.
Cómo se compara con las herramientas ya existentes
Los investigadores no se quedaron solo con la comparación interna entre sus propias variantes. También pusieron su diseño a prueba frente a Parsimonator, una implementación alternativa del algoritmo de Fitch incluida en RAxML, uno de los programas de referencia en filogenética a nivel mundial.
El resultado favorece de forma consistente al nuevo diseño: en el conjunto de datos más complejo, el de las 1.459 secuencias del VIH-1, el tiempo de ejecución pasó de 10,76 segundos con Parsimonator a 1,45 segundos con la propuesta de la Universidad de Extremadura, y el consumo energético se redujo de 1.010,7 a 121,9 julios, una mejora de más de 8 veces. Y todo ello manteniendo una potencia instantánea prácticamente idéntica en ambos casos, alrededor de 50 vatios de media.

Por qué importa esto más allá del laboratorio
Este trabajo no busca únicamente presumir de velocidad, algo habitual en la investigación en computación de altas prestaciones. Su aportación distintiva es demostrar que, con procesadores convencionales y sin necesidad de hardware especializado como las FPGA, es posible reducir de forma drástica el impacto energético de una tarea bioinformática cada vez más frecuente: analizar genomas para rastrear el origen y la propagación de virus, estudiar la biodiversidad o investigar relaciones evolutivas entre especies.
Los propios autores señalan como líneas de trabajo futuro explorar estas mismas ideas en otras arquitecturas de procesador, como ARM o RISC-V, cada vez más presentes en centros de datos, y en nuevas tecnologías de cálculo vectorial como AMX, así como extender el enfoque a problemas relacionados, como la inferencia de redes filogenéticas. Son pasos que apuntan en una dirección clara: la eficiencia energética deja de ser un añadido opcional para convertirse en un criterio de diseño tan relevante como la velocidad a la hora de programar las herramientas científicas del futuro.
Esta investigación forma parte del Proyecto de Generación de Conocimiento X-BIO (identificador PID2022-137275NA-I00), financiado por la Agencia Estatal de Investigación, el Ministerio de Ciencia, Innovación y Universidades (MICIU/AEI/10.13039/501100011033/) y el FEDER/UE.
Artículo creado a partir del trabajo Combinando Escalado en Frecuencia, Procesamiento Multihilo y Vectorización para una Filogenética más Sostenible, de Sergio Santander-Jiménez y Miguel A. Vega-Rodríguez, del Departamento de Tecnología de los Computadores y de las Comunicaciones de la Universidad de Extremadura.





