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.
“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
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.