Agradecemos sus comentarios
Nos interesa su opinión sobre el sitio. Por favor, díganos lo que piensa y qué podemos mejorar.
Inicio › Tecnología e investigación › Revista Technology@Intel ›
Cambio radical: El procesamiento multi-core ofrece innovadoras posibilidades a las empresas
Este artículo está publicado en su totalidad en la revista Intel® Software Insight de septiembre de 2006.
 
Una profunda transformación en los paradigmas de la programación
 
Periódicamente, se produce un cambio tecnológico que revoluciona la industria y sacude el mundo del software hasta sus raíces. La computación paralela, revitalizada por los procesadores multi-core de reciente aparición, representa este tipo de cambio. El cambio a la computación paralela está revolucionando los paradigmas de la programación lineal convencional y generando un renacimiento de las herramientas de desarrollo, nuevos conceptos de programación, nuevos modelos de multitarea y numerosas oportunidades para que los desarrolladores de soluciones y los arquitectos de sistemas innoven y creen aplicaciones que marcan tendencias. Las empresas pueden esperar un futuro en el que el desempeño con consumo eficaz de energía y la preparación para el futuro de las aplicaciones impulsan la innovación, prolongan la vida útil de los productos y ofrecen ventajas competitivas a aquellos que deciden adoptar la tecnología hoy.

En medio de la confusión y la reestructuración que suscita todo cambio tecnológico, las empresas tienen la oportunidad ideal de sumarse a esta revolución a medida que se expande y adaptar las aplicaciones a fin de aprovechar al máximo la tecnología de varios subprocesos y el desempeño con menor consumo de energía que ofrecen las microarquitecturas Intel® Core™. Intel acompaña a las empresas que deciden aceptar el desafío del progreso mediante una amplia gama de herramientas y tecnologías que comprenden desde formación y capacitación universitarias hasta módulos para subprocesos múltiples con el fin de acelerar el desarrollo. En este artículo se analiza la dirección y el potencial de desarrollo de aplicaciones de varios subprocesos, los modelos de uso emergentes y la promesa del diseño de aplicaciones preparado para el futuro cuando se orientan las iniciativas a los procesadores de muchos núcleos que se encuentran en las fases de planificación en la actualidad como alternativa de los procesadores de dos o cuatro núcleos.
 
 
Se multiplican los usos innovadores
 
Para fines de 2007, la inmensa mayoría de los equipos nuevos que se comercialicen contendrán la tecnología Intel® dual-core o quad-core. La adopción generalizada de la tecnología de procesador multi-core está inspirando nuevas ideas acerca de las posibilidades de la informática y está impulsando la creación de innovadores diseños de soluciones. Los desarrolladores que crean aplicaciones de clientes podrán evaluar nuevas formas de emplear la multitarea que en el pasado resultaron poco prácticas o complejas. Por ejemplo, podrán ejecutarse las tareas útiles en todo momento: el antivirus que se ejecuta de manera permanente con un enfoque preventivo, una utilidad de copia de seguridad automática que garantiza que no se pierda ningún archivo de trabajo, un monitor de volumen de trabajo inteligente que anticipa las necesidades del usuario y proporciona información en tiempo real según el contexto. La diversidad de aplicaciones prácticas que se ejecutarán en segundo plano en forma permanente seguirá aumentando a medida que se incorpore cada vez más el procesamiento multi-core en los equipos clientes.

Al ofrecerse en línea otras funciones de procesamiento, las oportunidades de desarrollo no se limitarán a las mejoras del desempeño. Los comandos activados por voz, comunicaciones de voz y video por IP, funciones de acceso en tiempo real y asistencia por nueva información, administración IP superior así como funciones de búsqueda y recuperación en varias capas son sólo algunas de las funciones que permitirán a los usuarios disfrutar de entornos informáticos más dinámicos y con mayor capacidad de respuesta. El ecosistema del software está maduro para incorporar otros usos innovadores que materialicen este tipo de ideas en dominios totalmente nuevos.
 
 
 
Secciones del artículo
 
 
 

 
En esta edición
Artículo principal
 
bar

“Sólo piense: por primera vez en la historia de la informática, las computadoras de uso general ya no serán máquinas von Neumann sino paralelas. Como nuestras aplicaciones se ejecutarán en máquinas paralelas, tenemos ante nosotros una extraordinaria oportunidad y mucho trabajo por hacer. Por cierto, la simultaneidad ya se ha probado antes; algunas de las personas ya mencionadas investigaron la computación paralela y empresas como Cray la utilizan desde hace años. Sin embargo, el programador y los entornos convencionales no la implementan de rutina y recién ahora hemos comenzado el proceso de generalización de la simultaneidad y la programación paralela.”

—Dr. Dobb’s Journal, agosto de 2006

bar

Intel ha asumido el compromiso de ayudar a los desarrolladores a utilizar nuevas técnicas y a aprovechar las funciones de los nuevos procesadores mediante formación, capacitación y nuevos productos para el desarrollo de software. Nuestro objetivo es lograr que la próxima generación de desarrolladores "piense en paralelo". Este cambio será una evolución gradual; es indudable que no se producirá de la noche a la mañana. A medida que los diseñadores, ingenieros de software, arquitectos de sistemas y desarrolladores de soluciones comprendan el concepto vinculado con la capacidad de ejecutar varios subprocesos de manera simultánea, se abrirán nuevos horizontes en términos de lo que podrán hacer las computadoras.

Asimismo, el diseño de aplicaciones de subprocesos amplía las posibilidades de la comunidad de desarrollo de software y los usos innovadores que ya están surgiendo y dan una pauta de su potencial. Un investigador de la Universidad de California, San Diego, hace poco realizó una demostración de una aplicación que ejecuta subprocesos y que permitirá salvar las vidas de las personas. Las erupciones volcánicas en la isla de Java, Indonesia, periódicamente amenazan a los habitantes de una de las zonas con mayor densidad poblacional del mundo. Para evaluar los niveles de amenaza y ayudar a elaborar los planes de evacuación, el investigador diseñó una aplicación de subprocesos y que simultáneamente recupera datos topográficos, mapas satelitales de la región, datos sobre la actividad sísmica y demás información relacionada. Al combinar y estratificar las imágenes y los datos, generó un mapa tridimensional fotorrealista que ilustra con claridad las líneas de fallas, las zonas en peligro y los posibles riesgos para los centros poblados. Los geólogos, los urbanistas, el personal de atención de emergencias, los servicios de información y demás actores de la región de Java ahora cuentan con una herramienta de subprocesos que puede ayudar a salvar vidas y evaluar los riesgos materiales. Los datos de la aplicación se actualizan periódicamente en función de los movimientos volcánicos. Las autoridades gubernamentales, con la ayuda de esta información, pueden adoptar medidas de protección en favor de las personas que corren el riesgo de perder sus hogares.

 
 
Diseño de aplicaciones preparado para el futuro
 
Los subprocesos pueden aprovechar los diseños de los procesadores actuales y futuros de maneras que los desarrolladores recién ahora están comenzando a entender. Por ejemplo, si una aplicación está configurada para la tecnología Hyper-Threading (HT), podrá ofrecer ventajas inmediatas en un sistema dual-core debido a que sencillamente fue escrita para utilizar dos subprocesos. Se espera que la aplicación esté escrita para crear más de dos subprocesos de modo que pueda utilizar un procesador superior a uno con tecnología HT o dual-core. En condiciones ideales, un programa se escribe y prepara para crear, al menos, tantos subprocesos como procesadores haya. Al contar con un programa preparado para utilizar subprocesos adicionales, mediante los núcleos o la tecnología HT, es posible incrementar el desempeño de la aplicación según la cantidad de procesadores.

Al diseñar aplicaciones para procesadores dual-core y quad-core, los desarrolladores suelen pensar en el uso de dos o cuatro subprocesos, bajo la influencia de los conceptos relativos al funcionamiento que tenían las plataformas en el pasado. No obstante, si los desarrolladores diseñan programas para todos los subprocesos posibles, cuando surjan núcleos adicionales, la aplicación se ejecutará a mayor velocidad y con mayor eficacia. La práctica de diseñar programas con una cantidad de subprocesos superior a la cantidad de núcleos disponibles básicamente prepara el diseño de la aplicación para el futuro y ofrece un retorno de la inversión realizada en tiempo y esfuerzos que, una vez lanzada al mercado la aplicación, perdura en el tiempo.

bar

“Al aprovechar la amplia gama de herramientas de desarrollo de software de Intel para subprocesos y su vasta experiencia, pudimos apreciar un 70% de aumento del desempeño cuando nuestros mp3 y códecs SURROUND de mp3 se ejecutaron en tecnología móvil Intel® Centrino® Duo. Gracias a ello los consumidores pueden disfrutar aún más del placer de escuchar música.”

—Rocky Caldwell, Gerente General de licencias de mp3, Thomson

bar

En condiciones óptimas, los desarrolladores y los diseñadores de software no deberían plantearse si necesitan tecnología dual-core o quad-core. En cambio, al diseñar aplicaciones resulta práctico y eficaz considerar cuántas tareas pueden realizarse en paralelo.

Si los desarrolladores diseñan aplicaciones tomando en consideración la mayor cantidad posible de subprocesos desde el inicio, sacarán provecho de la guía de Intel en los próximos años. Si se diseña con el único fin de paralelizar dos tareas (considerando que el objetivo es el dual-core), se perderán las ventajas de los próximos adelantos de los procesadores. A medida que se introducen en el mercado plataformas nuevas con mayor capacidad, las aplicaciones diseñadas para la mayor cantidad posible de subprocesos podrán ejecutarse a mayor velocidad.

Figura 1


Los desarrolladores de software deberán afrontar el desafío de crear aplicaciones escalables, responder a nuevos problemas de depuración y a su vez crear código que sea fácil de mantener. En general, el desarrollo de software deberá fundarse en mayor medida en abstracciones a fin de evitar la administración explícita de subprocesos. La mayoría de los desarrolladores de herramientas deberán prestar más atención a esta área. Las abstracciones como bibliotecas, OpenMP* y los módulos Intel® para subprocesos son fundamentales para lograr la adaptación eficaz en la práctica. Por último, para implementar una aplicación con confianza es preciso hacer frente a la amenaza de condiciones de bloqueo o carrera (errores comunes de la programación paralela). La herramienta Intel® Thread Checker puede ayudar a manejar estas amenazas. Como nota positiva, cabe destacar que las herramientas están mejorando de manera considerable y, con el tiempo, los fabricantes descubrirán métodos para mejorar aún más la programación paralela. Es necesario que los desarrolladores comprendan los problemas de escalabilidad, depuración y mantenimiento del código y a su vez utilicen herramientas de software a fin de simplificar la programación y garantizar que sea correcta a la hora de transformar las aplicaciones al paralelismo.
 
 
Presentación de los módulos Intel® para subprocesos
 
Los productos de desarrollo de software de Intel que admiten el paralelismo son bibliotecas, herramientas de comprobación de subprocesos, compiladores con extensiones OpenMP*, depuradores y analizadores del desempeño. Para complementar esta amplia gama de productos, Intel acaba de presentar los módulos Intel® para subprocesos, una biblioteca de tiempo de ejecución con plantillas en lenguaje C++ para múltiples plataformas. Su objeto es reducir la brecha entre las complejas herramientas de desarrollo de varios subprocesos de bajo nivel y los algoritmos listos para usarse de alto nivel. Al utilizar estas plantillas, los desarrolladores pueden incorporar de inmediato estructuras paralelas escalables comprobadas en el código existente. Los módulos Intel para subprocesos se caracterizan porque facilitan la programación, ayudan a prestar particular atención a la propiedad de los algoritmos de subprocesos y propician la escalabilidad. Estas características y funciones deben atraer a los desarrolladores de C++ que poseen menos experiencia con los conceptos de subprocesos y les permitirán crear con rapidez aplicaciones de subprocesos seguros y de alta simultaneidad.

Gracias a su compatibilidad con Microsoft Windows*, Linux* y el sistema operativo Mac X* en plataformas de 32 bits y 64 bits, estos módulos serán una herramienta muy apreciada por los grupos de desarrollo con visión de futuro que trabajan en implementaciones de procesadores multi-core y desean simplificar el desarrollo. Además, este producto resulta ser más atractivo aún por su compatibilidad con los compiladores Intel, Microsoft y GNU. Las herramientas de subproceso Intel ayudan a los ingenieros de software a afrontar con rapidez las complejidades de los subprocesos de aplicaciones, una ventaja que permite a las empresas ahorrar tiempo y dinero, y llevar adelante los proyectos de software según lo planificado. Si desea obtener mayor información, visite www.intel.com/software/products/tbbInformación en inglés.
 
 
Menor consumo de energía integrado
 
En el pasado, los aumentos del desempeño del procesador solían traducirse en un incremento del consumo de energía así como de las temperaturas de operación. La microarquitectura Intel Core rompe con ese molde al proporcionar un extraordinario aumento del desempeño por vatio y generar un entorno para una nueva generación de soluciones informáticas:

  • Dispositivos compactos de alto desempeño que funcionan a temperaturas inferiores
  • Salas de servidores que consumen menos energía y necesitan menos aire acondicionado
  • Soluciones móviles que aumentan la duración de la batería
  • Soluciones para consumidores y empresas que eran físicamente imposibles con los procesadores de las generaciones anteriores
Prácticamente todas las plataformas se benefician gracias al consumo eficaz de la energía que subyace a la transición de la arquitectura al procesamiento multi-core.

 
Cómo afrontar el cambio
 
Con la mirada puesta en el futuro, James Reinders, director de marketing y negocios de la división de Productos de Desarrollo de Software de Intel®, señala: “En términos de desarrollo futuro, me da la impresión de que el cambio que experimentarán los desarrolladores de software será de gran magnitud. En una década, miraremos hacia el pasado y pensaremos en las notables diferencias de los métodos de programación. El paralelismo será ubicuo para todos. Y, en realidad, ofrece increíbles oportunidades a las empresas y nuevas posibilidades a todos los desarrolladores de software y de herramientas como nuestro equipo del Grupo de Desarrollo de Software de Intel. Precisamente ahora tenemos una excelente oportunidad para replantear las estrategias de programación y planificarlas para la próxima década así como identificar las formas para aprovechar plenamente las posibilidades que ofrecen las arquitecturas de procesadores multi-core.”

Muchas de las ventajas de las arquitecturas de varios procesadores pueden aprovecharse de inmediato sin necesidad de modificar los diseños de las aplicaciones. Al sacar el máximo provecho de las posibilidades que brindan los subprocesos, surgen otras capacidades y es posible optimizar el uso de los recursos de procesamiento disponibles. A medida que los desarrolladores incorporen este cambio de paradigma que está teniendo lugar, la naturaleza inherente del procesamiento multi-core redefinirá el mapa del desempeño del futuro. Afortunadamente, disponemos de una amplia gama de recursos educativos, oportunidades de capacitación y especialistas técnicos que podemos aprovechar a fin de mitigar el impacto de este cambio.

 
Resumen
 
Este es el momento ideal para que los fabricantes de software independientes y los desarrolladores de soluciones se sumen con decisión a la transición y comiencen a forjar el camino que asegurará la compatibilidad de las funciones emergentes de procesamiento de multitarea y el desempeño con sus diseños de aplicaciones.

La transformación de la computación paralela ya está en marcha y las empresas que decidan sumarse a ella tienen una excelente oportunidad para obtener una ventaja competitiva, preparar sus aplicaciones para el futuro y así incrementar sus ingresos y aumentar el desempeño a medida que surjan los procesadores con muchos núcleos, además de rediseñar las aplicaciones con funciones superiores que entusiasmarán a los clientes, mejorarán la capacidad de respuesta y abrirán nuevos e innovadores caminos en el mundo del software. Las organizaciones que esperen quedarán a la zaga.

 
 
Actúe ya
Acciones para grupos de TI:

Diseñe las implementaciones de servidores para incrementar el desempeño y reducir las temperaturas de operación con sistemas equipados con los procesadores multi-core más recientes de Intel.
Identifique los cuellos de botella de las aplicaciones empresariales y los factores que limitan el desempeño mediante herramientas de desarrollo de software de Intel.
Incremente la eficacia de los procesos de negocios mediante el uso eficaz del diseño de aplicaciones de varios subprocesos.
Incremente la productividad y la eficacia del personal al aprovechar la multitarea en los conjuntos y las aplicaciones empresariales.

Acciones para desarrolladores de software

Incorpore los subprocesos en las aplicaciones existentes y nuevas para admitir la máxima cantidad de núcleos de procesadores y subprocesos.
Capacite a su personal para aprovechar las funciones y características de los procesadores multi-core y preparar para el futuro los diseños de aplicaciones.
Identifique los cuellos de botella de la memoria de E/S y elimínelos.
Valide sus aplicaciones con los productos de desarrollo de software de Intel® más recientes.
Sepa dónde su sistema operativo preferido cuenta con subprocesos y aprovéchelo al máximo.
Ofrezca productos que mejoran la experiencia del usuario final gracias a un procesamiento de medios más dinámico, la ejecución simultánea de multitareas y las ventajas del desempeño de varios subprocesos.
 
 
 
Más información
 
Visite las siguientes secciones del sitio Web de Intel, donde encontrará mayor información sobre las tecnologías de software y los proyectos de computación paralela de Intel:

 

Al inicio de la página