Problemas al compilar blas-atlas en Gentoo
Esta es una de esas entradas que pongo aquí sobre todo para evitar olvidarme si me enfrento de nuevo al mismo problema.
Ayer estaba en la biblioteca estudiando para un examen de control digital y necesitaba usar octave para hacer algunas pruebas. Descubrí con horror que iba mal cuando se quedó colgado al pedirle las raíces de un polinomio:
octave:1> v = roots([1 3 2 0 2])
Tuve que interrumpir la operación con el típico Ctrl+C porque, además, el octave estaba usando en ese momento el 100% de CPU según top. Lo sorprendente es que al volver a intentar la misma operación, en vez de colgarse, me mostró este error:
octave:1> v = roots([1 3 2 0 2])
error: dgeev failed to converge
error: evaluating assignment expression near line 65, column 9
error: evaluating if command near line 62, column 5
error: evaluating if command near line 59, column 3
error: called from `roots’ in file `/usr/share/octave/2.1.73/m/polynomial/roots.m’
error: evaluating assignment expression near line 1, column 3
El problema no sólo aparecía con la función roots, sino con muchas otra de las que necesitaba, que quizá usaban ésta en su código. Un poco de investigación al llegar a casa me hizo saber que el problema estaba en que había compilado la versión de octave ofrecida como estaba por Gentoo sin Blas entre sus uses. En el Changelog de octave decía que en la versión más reciente (2.1.73-r2), Blas había dejado de ser opcional.
Desenmascaré entonces esta versión de octave y comenzó la instalación de blas-atlas, que es una de las implementaciones de ¡Blas disponibles. Pero duró poco, la instalación se detuvo con un mensaje en pantalla que decía que tenía que ejecutar la instalación en modo interactivo. Seguí los pasos indicados pero, independientemente de las opciones que escogiese en el proceso, la compilación fallaba.
En un hilo del foro de Gentoo donde había un usuario quejándose del mismo problema que yo, el desarrollador encargado del ebuild de octave en Gentoo aconsejaba desenmascarar las últimas versiones de blas-atlas y blas-lapack (además de dos de sus dependencias que también estaban enmascaradas). Hecho esto repetí el intento de instalación y esta vez no sólo me hizo menos preguntas que antes sino que aparentemente estaba funcionando.
El proceso de compilación de blas-atlas es largo, y por la salida que ofrece en ocasiones parece que ha entrado en un ciclo infinito. Pero no pierdas la calma, que no es así; cada iteración es diferente y no se ciclan, así que resiste la tentación de cancelar. No puedo decir cuanto tardó porque me fui a dormir, pero esta mañana, cuando le pregunté a octave de nuevo por las raíces del mismo polinomio de ayer, me respondió esto rápidamente:
octave:1> v = roots([1 3 2 0 2])
v =
-1.79051 + 0.55231i
-1.79051 - 0.55231i
0.29051 + 0.69660i
0.29051 - 0.69660i
Una advertencia, aunque aparece en pantalla antes de empezar: Si tienes un procesador que ajusta su velocidad a las necesidades del software, desactiva esta opción y deja una velocidad fija de procesador durante la compilación, porque blas-atlas hace pruebas de rendimiento para optimizarse y una velocidad variable del procesador puede traer resultados no deseados.
Eso es todo, Jake out.
Esta entrada se publicó el Viernes, 2 de Febrero de 2007 a las 5:35 pm y está archivada en Linux con estos tags o etiquetas: blas atlas, gentoo, linux, octave. Puedes seguir las respuestas a esta entrada mediante el feed RSS 2.0. Puedes dejar dejar un comentario, o hacer trackback desde tu propia web.


Tu comentario
Los campos en negrita son obligatorios. Las direcciones de email nunca se publican ni se distribuyen.
Se permiten algunas etiquetas de HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>. Las URIs deben ser completas (p. ej.: http://www.domainname.com) y todas las etiquetas deben cerrarse correctamente.Los saltos de línea y los párrafos se forman automáticamente.
Por favor, escribe comentarios mínimamente relevantes. Los comentarios ofensivos, inapropiados o fuera de tema pueden ser editados o borrados.