<< Chapter < Page Chapter >> Page >

Estudiando cómputo de alto rendimiento

Estudiar cómputo de alto rendimiento es una excelente excusa para repasar lo que sabemos de arquitectura de computadoras. Una vez en pos de extraer hasta el último bit de rendimiento de nuestros sistemas de cómputo, estaremos más motivados para comprender plenamente aquellos aspectos de la arquitectura que tienen un impacto directo en el rendiminto del sistema.

A lo largo de toda la historia de la computación, los vendedores nos han dicho que sus compiladores resolverán todos nuestros problemas, y que los creadores de tales compiadores pueden lograr el mejor rendimiento absoluto del hardware subyacente. Tal reclamo nunca ha sido, y probablemente nunca será, totalmente cierto. La habilidad del compilador para lograr el rendimiento máximo disponible en el hardware mejora con cada nueva generación de ambos, hardware y software. Sin embargo, conforme ascendemos en la jerarquìa de las arquitecturas de cómputo de alto rendimiento, podemos depender cada vez menos del compilador, y los programadores deben tomar a su cargo la responsabilidad del rendimiento de su código.

En los sistemas con un solo procesador y en los SMP con pocas CPUs, uno de nuestros objetivos como programadores debe ser quitarnos del camino y no estorbar al compilador. Con frecuencia los constructos usados para mejorar el rendimiento en una arquitectura en particular, limitan nuestra habilidad de mejorar el rendimiento en otra aquitectura. Es más, tales "brillantes" (léase obtusas) optimizaciones manuales a menudo confunden al compilador, limitando su habilidad de transformar automáticamente nuestro código para que tome ventaja de las fortalezas particulares de la arquitectura subyacente.

Como programadores, es importante que conozcamos cómo trabaja el compilador, de forma que podamos saber cuándo ayudarlo, y cuándo hacernos a un lado. También debemos estar conscientes que conforme mejoran los compiladores (aunque nunca sea tanto como dicen los vendedores), es mejor delegar más responsabilidad en ellos.

Conforme ascendemos en la jerarquía de las computadoras de alto rendimiento, necesitamos aprender nuevas técnicas para mapear nuestros programas hacia esas arquitecturas, incluyendo extensiones de lenguajes, llamadas a bibliotecas y directivas de compilación. Conforme usamos estas características, nuestros programas se vuelven menos transportables. También, al utilizar estos constructos de alto nivel, no deberemos hacer modificaciones que resulten en un rendomiento pobre sobre los microprocesadores RISC individuales que a menudo conforman el sistema de procesamiento paralelo.

Midiendo el rendimiento

Cuando se adquiere una computadora para aplicaciones computacionalmente intensivas, es importante determinar qué tan bien desempeñará esta función el sistema. Una forma de elegir uno de entre un conjunto de sistemas contendientes, es que cada vendedor le preste uno de sus sistemas durante un periodo de tiempo, para probar las aplicaciones. Al final de tal periodo de evaluación, puede usted devolver aquellos que no dieron el ancho y pagar por su favorito. Desafortunadamente, muchos vendedores no le prestan sus equipos durante tal periodo de tiempo a menos que haya alguna seguridad de que eventualmente lo comprará.

Con frecuencia evaluaremos el rendimiento potencial del sistema usando benchmarks . Hay benchmarks industriales, así como los suyos propios. Ambos tipos requieren de pensamiento y planeación cuidadosos, si se quiere que sean una herramienta efectiva para determinar el mejor sistema para su aplicación.

El siguiente paso

Independientemente del aspecto económico, el rendimiento computacional es un tema fascinante y retador. La arquitectura de cómputo es interesante por derecho propio, un tópico con el que todo profesional de la computación debe sentirse cómodo. Obtener hasta el último bit de rendimiento de una aplicación importante, puede ser un ejercicio estimulante, además de una necesidad económica. Probablemente hay algunas personas que simplemente disfrutan de unir ingenio con una arquitectura de cómputo inteligente.

¿Qué necesita para entrar al juego?

  • Una comprensión básica de las arquitecturas de cómputo modernas. No necesita un grado avanzado en ingeniería de cómputo, pero sí cuando menos entender la terminología básica.
  • Una comprensión básica de cómo realizar un benchmark, o medida de rendimiento, de forma que pueda cuantificar sus propios éxitos y fracasos, y usar esa información para mejorar el rendimiento de su aplicación.

Este libro pretende ser una introducción fácil de entender, así como una panorámica del cómputo de alto rendimiento. Es un campo interesante, y uno que se hará más importante conforme demandemos aún más a nuestras computadoras personales comunes. En el campo del cómputo de alto rendimiento, siempre hay una solución de compromiso entre el rendimiento de una sola CPU y el de un sistema con múltiples procesadores. Estos últimos generalmente son más caros y difíciles de programar (a menos que tenga usted este libro).

Algunas personas aseguran que eventualmente tendremos CPUs individuales tan rápidas, que no necesitaremos ningún tipo de arquitectura avanzada que requiera de habilidades especiales para programarla.

Hasta ahora en este campo de la informática, incluso a pesar de que el rendimiento del microprocesador económico ha incrementado en mil veces, no parece disminuir el interés en atar mil de esos procesadores, para incrementar la potencia en un millón de veces. Conforme más barato se vuelva el bloque constitutivo del cómputo de alto rendimiento, mayor será el beneficio de usar muchos procesadores. Si en algún momento en el futuro tenemos un solo procesador que sea más rápido que cualquiera de los sistemas escalables de 512 procesadores de hoy, piense cuánto podremos hacer cuando conectemos 512 de esos nuevos procesadores para formar un nuevo sistema.

De eso se trata este libro. Si le interesa, continúe leyendo.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Cómputo de alto rendimiento. OpenStax CNX. Sep 02, 2011 Download for free at http://cnx.org/content/col11356/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Cómputo de alto rendimiento' conversation and receive update notifications?

Ask