stringtranslate.com

Rendimiento de la computadora

En informática , el rendimiento de la computadora es la cantidad de trabajo útil realizado por un sistema informático . Fuera de contextos específicos, el rendimiento de la computadora se estima en términos de precisión, eficiencia y velocidad de ejecución de instrucciones de programas de computadora . Cuando se trata de un alto rendimiento de la computadora, pueden estar involucrados uno o más de los siguientes factores:

Definiciones técnicas y no técnicas.

El rendimiento de cualquier sistema informático se puede evaluar en términos técnicos mensurables, utilizando una o más de las métricas enumeradas anteriormente. De esta manera el rendimiento puede ser

Si bien la definición anterior se relaciona con un enfoque científico y técnico, la siguiente definición dada por Arnold Allen sería útil para una audiencia no técnica:

La palabra rendimiento en rendimiento de computadora significa lo mismo que significa rendimiento en otros contextos, es decir, significa "¿Qué tan bien está haciendo la computadora el trabajo que se supone que debe hacer?" [1]

Como aspecto de la calidad del software.

El rendimiento del software informático , en particular el tiempo de respuesta de la aplicación de software , es un aspecto de la calidad del software que es importante en las interacciones entre humanos y computadoras .

Ingeniería de rendimiento

La ingeniería de desempeño dentro de la ingeniería de sistemas abarca el conjunto de roles, habilidades, actividades, prácticas, herramientas y entregables aplicados en cada fase del ciclo de vida del desarrollo de sistemas que garantiza que una solución será diseñada, implementada y respaldada operativamente para cumplir con los requisitos de desempeño. definido para la solución.

La ingeniería del desempeño se ocupa continuamente de las compensaciones entre tipos de desempeño. Ocasionalmente, un diseñador de CPU puede encontrar una manera de crear una CPU con un mejor rendimiento general mejorando uno de los aspectos del rendimiento que se presentan a continuación, sin sacrificar el rendimiento de la CPU en otras áreas. Por ejemplo, construir la CPU con transistores mejores y más rápidos .

Sin embargo, a veces llevar un tipo de rendimiento al extremo conduce a una CPU con un peor rendimiento general, porque se sacrificaron otros aspectos importantes para obtener un número impresionante, por ejemplo, la frecuencia del reloj del chip (consulte el mito de los megahercios ).

Ingeniería de rendimiento de aplicaciones

Application Performance Engineering (APE) es una metodología específica dentro de la ingeniería de rendimiento diseñada para enfrentar los desafíos asociados con el rendimiento de las aplicaciones en entornos de TI móviles, terrestres y de nube cada vez más distribuidos. Incluye los roles, habilidades, actividades, prácticas, herramientas y entregables aplicados en cada fase del ciclo de vida de la aplicación que garantizan que una aplicación será diseñada, implementada y soportada operativamente para cumplir con los requisitos de rendimiento no funcionales.

Aspectos del desempeño

Las métricas de rendimiento de la computadora (cosas a medir) incluyen disponibilidad , tiempo de respuesta , capacidad del canal , latencia , tiempo de finalización, tiempo de servicio , ancho de banda , rendimiento , eficiencia relativa , escalabilidad , rendimiento por vatio , relación de compresión , longitud de la ruta de instrucción y velocidad . Los puntos de referencia de CPU están disponibles. [2]

Disponibilidad

La disponibilidad de un sistema generalmente se mide como un factor de su confiabilidad: a medida que aumenta la confiabilidad, también aumenta la disponibilidad (es decir, menos tiempo de inactividad ). La disponibilidad de un sistema también puede aumentar mediante la estrategia de centrarse en aumentar la capacidad de prueba y el mantenimiento y no en la confiabilidad. Mejorar la mantenibilidad es generalmente más fácil que la confiabilidad. Las estimaciones de mantenibilidad (tasas de reparación) también son generalmente más precisas. Sin embargo, debido a que las incertidumbres en las estimaciones de confiabilidad son en la mayoría de los casos muy grandes, es probable que domine el problema de disponibilidad (incertidumbre de predicción), incluso cuando los niveles de mantenibilidad sean muy altos.

Tiempo de respuesta

El tiempo de respuesta es la cantidad total de tiempo que lleva responder a una solicitud de servicio. En informática, ese servicio puede ser cualquier unidad de trabajo, desde una simple E/S de disco hasta la carga de una página web compleja . El tiempo de respuesta es la suma de tres números: [3]

Velocidad de procesamiento

La mayoría de los consumidores eligen una arquitectura de computadora (normalmente arquitectura Intel IA-32 ) para poder ejecutar una gran base de software preexistente y precompilado. Al estar relativamente desinformados sobre los puntos de referencia de las computadoras, algunos de ellos eligen una CPU particular en función de la frecuencia de funcionamiento (consulte el mito de los megahercios ).

Algunos diseñadores de sistemas que construyen computadoras paralelas eligen las CPU en función de la velocidad por dólar.

Capacidad del canal

La capacidad del canal es el límite superior más estricto de la tasa de información que se puede transmitir de manera confiable a través de un canal de comunicaciones . Según el teorema de codificación de canales ruidosos , la capacidad de un canal determinado es la tasa de información límite (en unidades de información por unidad de tiempo) que se puede lograr con una probabilidad de error arbitrariamente pequeña. [4] [5]

La teoría de la información , desarrollada por Claude E. Shannon durante la Segunda Guerra Mundial , define la noción de capacidad del canal y proporciona un modelo matemático mediante el cual se puede calcular. El resultado clave establece que la capacidad del canal, como se define anteriormente, está dada por el máximo de la información mutua entre la entrada y la salida del canal, donde la maximización es con respecto a la distribución de entrada. [6]

Latencia

La latencia es un retraso de tiempo entre la causa y el efecto de algún cambio físico en el sistema que se observa. La latencia es el resultado de la velocidad limitada con la que puede tener lugar cualquier interacción física. Esta velocidad es siempre menor o igual a la velocidad de la luz. Por lo tanto, todo sistema físico que tenga dimensiones espaciales distintas de cero experimentará algún tipo de latencia.

La definición precisa de latencia depende del sistema que se observa y de la naturaleza de la estimulación. En las comunicaciones, el límite inferior de latencia está determinado por el medio que se utiliza para las comunicaciones. En los sistemas de comunicación bidireccionales confiables, la latencia limita la velocidad máxima a la que se puede transmitir la información, ya que a menudo hay un límite en la cantidad de información que está "en vuelo" en un momento dado. En el campo de la interacción hombre-máquina, la latencia perceptible (retraso entre lo que el usuario ordena y el momento en que el ordenador proporciona los resultados) tiene un fuerte efecto en la satisfacción y usabilidad del usuario.

Las computadoras ejecutan conjuntos de instrucciones llamados procesos. En los sistemas operativos, la ejecución del proceso se puede posponer si también se están ejecutando otros procesos. Además, el sistema operativo puede programar cuándo realizar la acción que ordena el proceso. Por ejemplo, supongamos que un proceso ordena que la salida de voltaje de una tarjeta de computadora se establezca en alto-bajo-alto-bajo y así sucesivamente a una velocidad de 1000 Hz. El sistema operativo puede optar por ajustar la programación de cada transición (alto-bajo o bajo-alto) en función de un reloj interno. La latencia es el retraso entre la instrucción del proceso que ordena la transición y el hardware que realmente hace la transición del voltaje de alto a bajo o de bajo a alto.

Los diseñadores de sistemas que construyen sistemas informáticos en tiempo real quieren garantizar la respuesta en el peor de los casos. Esto es más fácil de hacer cuando la CPU tiene una latencia de interrupción baja y cuando tiene una respuesta determinista.

Banda ancha

En redes de computadoras, el ancho de banda es una medida de la tasa de bits de los recursos de comunicación de datos disponibles o consumidos, expresada en bits por segundo o múltiplos de ella (bit/s, kbit/s, Mbit/s, Gbit/s, etc.).

El ancho de banda a veces define la velocidad de bits neta (también conocida como velocidad de bits máxima, velocidad de información o velocidad de bits útil de la capa física), la capacidad del canal o el rendimiento máximo de una ruta de comunicación lógica o física en un sistema de comunicación digital. Por ejemplo, las pruebas de ancho de banda miden el rendimiento máximo de una red informática. La razón de este uso es que, según la ley de Hartley, la velocidad de datos máxima de un enlace de comunicación física es proporcional a su ancho de banda en hercios, que a veces se denomina ancho de banda de frecuencia, ancho de banda espectral, ancho de banda de RF, ancho de banda de señal o ancho de banda analógico.

Rendimiento

En términos generales, el rendimiento es la tasa de producción o la tasa a la que se puede procesar algo.

En las redes de comunicación, el rendimiento es esencialmente sinónimo de consumo de ancho de banda digital. En redes inalámbricas o redes de comunicación celular , la eficiencia espectral del sistema en bit/s/Hz/unidad de área, bit/s/Hz/sitio o bit/s/Hz/celda, es el rendimiento máximo del sistema (rendimiento agregado) dividido por el ancho de banda analógico y alguna medida del área de cobertura del sistema.

En los circuitos integrados, a menudo un bloque en un diagrama de flujo de datos tiene una única entrada y una única salida, y opera con paquetes discretos de información. Ejemplos de tales bloques son los módulos FFT o los multiplicadores binarios . Debido a que las unidades de rendimiento son recíprocas de la unidad de retardo de propagación , que es "segundos por mensaje" o "segundos por salida", el rendimiento se puede utilizar para relacionar un dispositivo computacional que realiza una función dedicada, como un ASIC o un procesador integrado, con un canal de comunicaciones, simplificando el análisis del sistema.

Eficiencia relativa

Escalabilidad

La escalabilidad es la capacidad de un sistema, red o proceso para manejar una cantidad creciente de trabajo de manera capaz o su capacidad de ampliarse para adaptarse a ese crecimiento.

El consumo de energía

La cantidad de energía eléctrica utilizada por la computadora ( consumo de energía ). Esto resulta especialmente importante para sistemas con fuentes de energía limitadas, como la energía solar, las baterías y la energía humana.

Rendimiento por vatio

Los diseñadores de sistemas que construyen computadoras paralelas , como el hardware de Google , eligen las CPU en función de su velocidad por vatio de potencia, porque el costo de alimentar la CPU supera el costo de la CPU misma. [7]

Para las computadoras de vuelos espaciales, la relación de velocidad de procesamiento por vatio es un criterio de rendimiento más útil que la velocidad de procesamiento bruta. [8]

Índice de compresión

La compresión es útil porque ayuda a reducir el uso de recursos, como el espacio de almacenamiento de datos o la capacidad de transmisión. Debido a que los datos comprimidos deben descomprimirse para su uso, este procesamiento adicional impone costos computacionales o de otro tipo a través de la descompresión; esta situación está lejos de ser un almuerzo gratis. La compresión de datos está sujeta a un equilibrio entre la complejidad del espacio-tiempo.

Tamaño y peso

Esta es una característica importante del rendimiento de los sistemas móviles, desde los teléfonos inteligentes que se guardan en el bolsillo hasta los sistemas portátiles integrados en una nave espacial.

Impacto medioambiental

El efecto de una computadora o computadoras en el medio ambiente, durante la fabricación y el reciclaje, así como durante el uso. Las medidas se toman con el objetivo de reducir los residuos, reducir los materiales peligrosos y minimizar la huella ecológica de una computadora .

recuento de transistores

El recuento de transistores es el número de transistores en un circuito integrado (IC). El recuento de transistores es la medida más común de la complejidad de los circuitos integrados.

Puntos de referencia

Debido a que hay tantos programas para probar una CPU en todos los aspectos del rendimiento, se desarrollaron puntos de referencia .

Los puntos de referencia más famosos son los puntos de referencia SPECint y SPECfp desarrollados por Standard Performance Assessment Corporation y el punto de referencia de Marca de Certificación desarrollado por Embedded Microprocessor Benchmark Consortium EEMBC .

Pruebas de rendimiento del software

En ingeniería de software, las pruebas de rendimiento son, en general, pruebas realizadas para determinar cómo se desempeña un sistema en términos de capacidad de respuesta y estabilidad bajo una carga de trabajo particular. También puede servir para investigar, medir, validar o verificar otros atributos de calidad del sistema, como la escalabilidad, la confiabilidad y el uso de recursos.

Las pruebas de rendimiento son un subconjunto de la ingeniería de rendimiento, una práctica informática emergente que se esfuerza por incorporar el rendimiento en la implementación, el diseño y la arquitectura de un sistema.

Elaboración de perfiles (análisis de rendimiento)

En ingeniería de software , la creación de perfiles ("perfil de programa", "perfil de software") es una forma de análisis dinámico de programas que mide, por ejemplo, la complejidad espacial (memoria) o temporal de un programa , el uso de instrucciones particulares o la frecuencia y duración de las llamadas a funciones. El uso más común de la información de creación de perfiles es ayudar a la optimización del programa .

La creación de perfiles se logra instrumentando el código fuente del programa o su forma ejecutable binaria utilizando una herramienta llamada generador de perfiles (o generador de perfiles de código ). Los perfiladores pueden utilizar varias técnicas diferentes, como métodos basados ​​en eventos, estadísticos, instrumentados y de simulación.

La optimización del rendimiento

El ajuste del rendimiento es la mejora del rendimiento del sistema . Generalmente se trata de una aplicación informática, pero los mismos métodos se pueden aplicar a los mercados económicos, las burocracias u otros sistemas complejos. La motivación para tal actividad se denomina problema de desempeño, y puede ser real o anticipado. La mayoría de los sistemas responderán al aumento de carga con cierto grado de disminución del rendimiento. La capacidad de un sistema para aceptar una carga mayor se llama escalabilidad , y modificar un sistema para manejar una carga mayor es sinónimo de ajuste del rendimiento.

El ajuste sistemático sigue estos pasos:

  1. Evaluar el problema y establecer valores numéricos que categoricen el comportamiento aceptable.
  2. Mida el rendimiento del sistema antes de modificarlo.
  3. Identifique la parte del sistema que es crítica para mejorar el rendimiento. Esto se llama cuello de botella .
  4. Modifique esa parte del sistema para eliminar el cuello de botella.
  5. Mida el rendimiento del sistema después de la modificación.
  6. Si la modificación mejora el rendimiento, adóptela. Si la modificación empeora el rendimiento, vuelva a ponerlo como estaba.

Rendimiento percibido

El rendimiento percibido, en ingeniería informática, se refiere a la rapidez con la que una función de software parece realizar su tarea. El concepto se aplica principalmente a los aspectos de aceptación del usuario .

La cantidad de tiempo que tarda una aplicación en iniciarse o un archivo en descargarse no se acelera mostrando una pantalla de inicio (consulte Pantalla de bienvenida) o un cuadro de diálogo de progreso del archivo. Sin embargo, satisface algunas necesidades humanas: parece más rápido para el usuario y también proporciona una señal visual para informarle que el sistema está manejando su solicitud.

En la mayoría de los casos, aumentar el rendimiento real aumenta el rendimiento percibido, pero cuando el rendimiento real no se puede aumentar debido a limitaciones físicas, se pueden utilizar técnicas para aumentar el rendimiento percibido.

Ecuación de rendimiento

La cantidad total de tiempo ( t ) necesaria para ejecutar un programa de referencia particular es

, o equivalente
[9]

dónde

Incluso en una máquina, un compilador diferente o el mismo compilador con diferentes opciones de optimización del compilador pueden cambiar N y CPI; el punto de referencia se ejecuta más rápido si el nuevo compilador puede mejorar N o C sin empeorar el otro, pero a menudo hay una compensación. entre ellos: ¿es mejor, por ejemplo, usar algunas instrucciones complicadas que toman mucho tiempo para ejecutarse, o usar instrucciones que se ejecutan muy rápidamente, aunque se necesitan más para ejecutar el punto de referencia?

A menudo se requiere que un diseñador de CPU implemente un conjunto de instrucciones particular y, por lo tanto, no puede cambiar N. A veces, un diseñador se concentra en mejorar el rendimiento realizando mejoras significativas en f (con técnicas como canalizaciones más profundas y cachés más rápidos), mientras (con suerte) no sacrifica demasiado C, lo que lleva a un diseño de CPU de velocidad extrema. A veces, un diseñador se centra en mejorar el rendimiento realizando mejoras significativas en el CPI (con técnicas como ejecución fuera de orden , CPU superescalares , cachés más grandes, cachés con tasas de acierto mejoradas, predicción de rama mejorada , ejecución especulativa , etc.), mientras ( con suerte) sin sacrificar demasiada frecuencia de reloj, lo que lleva a un diseño de CPU inteligente. [10] Para un conjunto de instrucciones dado (y por lo tanto N fijo) y un proceso de semiconductores, el rendimiento máximo de un solo subproceso (1/t) requiere un equilibrio entre técnicas cerebrales y técnicas de carreras rápidas. [9]

Ver también

Referencias

  1. ^ Análisis del rendimiento informático con Mathematica por Arnold O. Allen, Academic Press, 1994. Introducción de $ 1,1, página 1.
  2. ^ Medición de la similitud del programa: experimentos con SPEC CPU Benchmark Suites , 2005, págs. 10-20, CiteSeerX  10.1.1.123.501
  3. ^ Wescott, Bob (2013). The Every Computer Performance Book, Capítulo 3: Leyes útiles . Crear espacio . ISBN 978-1482657753.
  4. ^ Saleem Bhatti. "Capacidad del canal". Apuntes de conferencias para M.Sc. Redes de Comunicación de Datos y Sistemas Distribuidos D51 - Comunicaciones y Redes Básicas . Archivado desde el original el 21 de agosto de 2007.
  5. ^ Jim Lesurf. "¡Las señales parecen ruido!". Información y Medición, 2ª ed .
  6. ^ Portada de Thomas M., Joy A. Thomas (2006). Elementos de la teoría de la información . John Wiley & Sons, Nueva York.
  7. ^ "EEMBC: el consorcio de referencia de microprocesadores integrados". Archivado desde el original el 27 de marzo de 2005 . Consultado el 21 de enero de 2009 .[1]
  8. ^ DJ Shirley; y MK McLelland. "La computadora para vuelos espaciales SC-7 RISC de próxima generación". pag. 2.
  9. ^ ab Paul DeMone. "La increíble CPU que se encoge". 2004. [2] Archivado el 31 de mayo de 2012 en Wayback Machine.
  10. ^ "Cerebros, demonios de la velocidad y despedida" de Linley Gwennap