
La migración de un sistema operativo o una aplicación solía exigir actualizar el hardware. Sin embargo, hoy los procesadores multicore son casi un estándar pero buena parte del software de negocios no se beneficia de ellos. El hardware no para. El mismo día de noviembre pasado Intel y AMD lanzaron nuevos procesadores de cuatro núcleos. Intel presentó el Core i7 como “el más rápido del planeta y, según dijo, puede manejar hasta ocho sets de instrucciones de software. AMD lanzó el Opteron Quad-Core de 45 nanómetros, prometiendo 35 por ciento más de performance. Pero, algunos meses antes, en la californiana Multicore Expo había quedado claro que las aplicaciones no aprovechan el procesamiento simultáneo o “multi-threading .
Todo indica que el software disponible no emplea bien el hardware de hoy. Bernardo Fourcade, Engineering Manager del Centro de Desarrollo de Software que Intel tiene en Córdoba (Argentina Software Development Center, o ASDC) admite: “Es un hecho, hay un cambio de paradigma. Como se llegó al límite de la performance de cada core, para sumar capacidad de procesamiento sólo era posible agregar cores. Y eso implica un cambio en la forma de programar .
El ejecutivo cuenta que la oferta comercial estándar es de cuatro cores, pero ya hay procesadores de ocho e Intel está realizando pruebas con 80 núcleos.
Del lado de los usuarios también lo admiten. Rodolfo Szuster, gerente de Desarrollo y Mantenimiento de Software de Banco Patagonia, cree que la carrera la está ganando el hardware. “Hasta hace poco, cuando el rendimiento de las aplicaciones empezaba a gruñir, se subía un escalón de tecnología y se seguía cargando la máquina. Hoy, el hardware es muy económico y el software tiene un ciclo de vida más largo , dice. Y asegura que las soluciones SOA (Arquitectura Orientada a Servicios) o de Gestión de Procesos de Negocios (BPM) se benefician con la mejora del hardware.
Una posible explicación de este divorcio la ofrece Iván Arce, CTO de Core Security Technologies, al afirmar que el software crece a menor ritmo que el hardware y, además, hacia otro lado: “Los drivers de crecimiento del hardware son la performance, el menor consumo, el precio y la escalabilidad. Y los del software son la funcionalidad, la facilidad de uso y de desarrollo, y el delivery. Se usan los recursos extra que ofrece el hardware pero no exhaustivamente, excepto en aplicaciones de juegos, procesamiento de señales de audio y otras específicas. El software de propósito general se beneficia de esas capacidades del hardware, pero no las necesita .
Sistemas operativos
Para Fernando Boettner, docente de Sistemas Operativos de la Universidad de La Matanza y de la Universidad Nacional del Noroeste de la provincia de Buenos Aires (UNNOBA), siempre el hardware evolucionó primero y luego lo hizo el software de base; pero en aplicaciones de arquitectura, juegos y animación 3D, entre otras, hoy ocurre al revés: al usuario suele “faltarle máquina .
Boettner, que también es responsable de Desarrollo de Sistemas de la empresa de servicios financieros Credencial Argentina, considera que “las empresas compran servidores multicore porque es más económico comprar uno potente que varios chicos .
Las nuevas versiones de sistemas operativos (encargados de distribuir la carga) pueden manejar procesadores multinúcleo. “Los sistemas operativos de escritorio manejan hasta cuatro núcleos y los de servidor, 32 o más. Lo hacen las nuevas versiones de GNU Linux, Windows Vista, Ubuntu 8, Fedora y Solaris. No así el Windows XP, que nació en 2001 para hardware de 2001, aunque puede usar la capacidad multitarea pero no hace uso eficiente del multinúcleo , explica David Garza Marín, Field Application Engineer de AMD México, América Central y Caribe. Pero Boettner, de Credencial Argentina, destaca que “la mayoría de los usuarios no tiene los nuevos sistemas operativos en su computadora. Es decir, la tecnología está lista para soportar multicore pero no es usada por la mayoría . Garza Marín lo sabe: “Hay algunas barreras que el usuario pone. Windows Vista es muy avanzado pero hay que sumarle memoria. Agregar 4 GB de RAM cuesta aproximadamente U$S 110, bastante menos de lo que costaban 512 MB para Windows XP en 2001; por eso todos deberían tener 4 GB de RAM .
Pero, aun cuando las nuevas versiones de sistemas operativos estuvieran instaladas y con la memoria correspondiente, se necesita todavía más para que el equipo aproveche eficientemente un procesador multinúcleo. Por ejemplo, suficiente ancho de banda en el bus como para que los datos se transmitan rápidamente.
Las aplicaciones
Es importante distinguir para qué aplicaciones tiene sentido el multicore. Para las de oficina es probable que no sea importante distribuir la carga en subprocesos, pero tal vez sí lo sea para las bases de datos y aplicaciones críticas de negocio. Fourcade, de Intel, explica que “las aplicaciones para servidores que derivan de High Performance Computing (HPC) ya están paralelizadas, están explotando el procesamiento en paralelo, pero en las de escritorio la transición va a tardar .
La programación multicore y la programación paralela son conceptos que permiten sumarle “features al software y agilizar el procesamiento, porque la tarea se divide en subprocesos o hilos (“threads ). Por ahora, los juegos y las aplicaciones científicas son las más avanzadas en cuanto a manejo de “multi-threading . Pero mientras los fabricantes de procesadores intentan mostrar sus bondades, los desarrolladores siguen ignorándolos por ahora.
En el Instituto Asegurador Mercantil Compañía de Seguros tienen el sistema operativo OS2 para un mainframe AS400, con aplicaciones de oficina y una red interna de 50 usuarios con Linux y Windows Server 2000. Alejandro Sansoni, jefe de Desarrollo de Sistemas de la firma, cuenta con un servidor con un solo núcleo “y no necesitamos más: desarrollamos aplicaciones de oficina y de back office y no son tan demandantes de procesamiento. Usamos Windows 2000, XP o Windows Server porque aún nos sirven, no se puede correr detrás de las mejoras que hay .
En Carta Credencial desarrollan generadores de resúmenes de tarjetas de crédito que requieren un considerable procesamiento y aplicaciones para transacciones online. Boettner dice que “como no son para procesos críticos tenemos hardware de sobra. Utilizamos las técnicas tradicionales de ingeniería de desarrollo, sin pensar en multicore. Hay que evaluar si la aplicación lo requiere . En Core Security Technologies proveen software de seguridad que corre en desktops o notebooks y, originalmente, los productos fueron desarrollados para un único procesador. Arce recuerda que con la aparición de los procesadores multicore algunos clientes actualizaron sus equipos y “eso nos generó un inconveniente porque tuvimos que rehacer algunas cosas, ya que los sistemas operativos hacían que nuestra aplicación corriera procesos en los dos cores y hubo problemas de concurrencia y sincronismo. Entonces primero nos aseguramos de que el software utilizara un core, luego sumamos la posibilidad de que corriera en los dos y, finalmente, encaramos la idea de hacer que los dos cores optimizaran la aplicación . Sin embargo, admite que no tienen muchos clientes que requieran procesamiento paralelo.
Iniciativas
Con mayor o menor énfasis, los fabricantes de procesadores responsabilizan a los programadores por la escasez de aplicaciones preparadas para “multi-threading , pero conceden algunas excusas. Garza Marín, de AMD, afirma que “el desarrollo es más costoso y no es tan sencillo. En general, las aplicaciones empresariales manejan hasta dos subprocesos. Los desarrolladores deben estudiar más profundamente las nuevas arquitecturas y AMD tiene el sitio ‘Develop with AMD’ con ese fin .
Fourcade, de Intel, reconoce que no es necesario paralelizar toda la aplicación y que habrá porciones de código que se beneficien más del procesamiento paralelo. La empresa lanzará en 2009 la iniciativa “Enclave para apoyar a las universidades en la capacitación de los programadores. “La idea es enseñar a escribir aplicaciones paralelizables y que garanticen la escalabilidad de los núcleos. En general, lo aprenden luego de graduarse, por eso es importante actualizar las currículas , comenta. Además, Intel tiene el programa “Parallel Studio , con herramientas de programación paralela para Microsoft Visual Studio.
Obligatoriamente, los fabricantes deben hacer un esfuerzo para que sus procesadores sean aprovechados porque la escasez de programadores crece geométricamente al evaluar cuántos saben desarrollar para multi-threading. Arce, de Core, dice que “no hay masa crítica de programadores que conozcan multi-threading pero los hay en ámbitos académicos y experimentales. Muchos se meten en el tema lo mínimo necesario porque no detectan demanda de los usuarios . Y Boettner, de Credencial Argentina, agrega que “hay información pero no desarrolladores que sepan programación multicore. El tema es que, al elegir el lenguaje en el que se va a desarrollar, se define un techo. Por ejemplo, si se usa Visual Basic nunca se podrá desarrollar en multicore. Y renovar todos los sistemas cambiando el lenguaje de programación es impensado .
Pasarán años hasta que el software sea reescrito y los usuarios vean diferencias. Pero no hay retorno. Según Fourcade, de Intel, en alrededor de cinco años llegará “la era del many-core, es decir, más de 16 cores y eso necesita nuevos lenguajes de programación como el Unified Parallel C (UPC), que está en investigación . Lo cierto es que, por ahora, procesadores y software corren a distinta velocidad.








