Aceleración de avances algorítmicos frente a hardware


14

Recuerdo haber visto un estudio o artículo hace un tiempo afirmando que la mayor parte de la aceleración vista en los programas de computadora en las últimas décadas proviene de mejores algoritmos en lugar de hardware más rápido. ¿Alguien sabe el estudio o artículo?


8
Probablemente una mejor opción para cs.stackexchange.
Yuval Filmus

en efecto, hay un gran cambio de paradigma dentro de los últimos pocos años wrt Ley de Moore, velocidades de reloj, y el paralelismo y que ha sido cubierto en muchos artículos / documentos ....
VZN

Respuestas:


8

Esta es una pregunta involuntariamente compleja. Esta idea de que las ganancias de software han superado las ganancias de hardware aparentemente se basa en un informe real del gobierno, pero (como su pregunta lo indica) posiblemente se acerca al estado de leyenda urbana menor debido a que se malinterpreta o se malinterpreta. los titulares de resumen / sonido no coinciden realmente con el punto real que se hace en el informe.

ver [1] o [2] que establece

Un informe de un grupo independiente de asesores de ciencia y tecnología de la Casa Blanca, publicado en diciembre pasado, citó una investigación que muestra que las ganancias de rendimiento al realizar tareas informáticas que resultan de mejoras en los algoritmos de software a menudo superan con creces las ganancias atribuibles a los procesadores más rápidos.
...
Pero el informe consultivo de la Casa Blanca citó investigaciones, incluido un estudio del progreso durante un período de 15 años en una tarea de planificación de producción de referencia. Durante ese tiempo, la velocidad de completar los cálculos mejoró en un factor de 43 millones. Del total, un factor de aproximadamente 1,000 fue atribuible a velocidades de procesador más rápidas, según la investigación de Martin Grotschel, un científico y matemático alemán. Sin embargo, un factor de 43,000 se debió a las mejoras en la eficiencia de los algoritmos de software.

pero el problema del software frente al hardware está muy lejos de esta simplificación unidimensional, mucho más complejo, y el blog de Lohrs lo tiene más preciso: el software y el hardware forman una especie de fusión simbiótica yin-yang y ambos han avanzado de manera muy significativa, incluso asombrosamente Las décadas.

advertencia / letra pequeña: no se pueden obtener ganancias individuales en algoritmos de software particulares, que en algunos casos han sido muy sustanciales, y generalizar eso en todos los algoritmos.

la cita real del informe está en la página 71:

Aún más notable, y aún menos entendido, es que en muchas áreas, las ganancias de rendimiento debido a las mejoras en los algoritmos han excedido ampliamente incluso las ganancias de rendimiento dramáticas debido a la mayor velocidad del procesador. Los algoritmos que usamos hoy para el reconocimiento de voz, para la traducción del lenguaje natural, para jugar ajedrez, para la planificación logística, han evolucionado notablemente en la última década. Sin embargo, es difícil cuantificar la mejora, ya que está tanto en el ámbito de la calidad como del tiempo de ejecución.

Por lo tanto, este informe del gobierno es altamente investigado y pulido, la afirmación básica de ganancias masivas debido a los avances teóricos del software en algunas áreas es correcta, y está promoviendo la investigación (teórica / algorítmica) en parte sobre esa base.

sin embargo, hay varios otros fenómenos / tendencias / cambios fundamentales / masivos nuevos / recientes en los últimos años o lo que Intels Grove llama "puntos de inflexión" que están ocurriendo en el diseño de hardware versus software. alias "gamechangers":

  • el aumento de la supercomputación "Exascale" puede no lograrse tan fácilmente como "Petascale" debido a las restricciones de escala de hardware
  • las velocidades de reloj, un impulso principal de las ganancias de velocidad anteriores, se han estancado (en parte debido a las limitaciones de calor / enfriamiento)
  • el hardware está experimentando un cambio masivo hacia dispositivos menos intensivos en cómputo y más eficientes energéticamente, por ejemplo, dispositivos móviles, centros de datos / virtualización / nube, etc.
  • por lo tanto, mejorar el paralelismo en software y hardware (por ejemplo, "multinúcleo") se está volviendo más crítico para las mejoras de rendimiento (donde la teoría tiene mucho que decir sobre cómo paralelizar algoritmos)

[1] skeptic.se, el progreso en algoritmos supera el progreso en hardware

[2] El progreso del software supera el blog Moores law NYT de Lohr

[3] INFORME AL PRESIDENTE Y AL CONGRESO DISEÑANDO UN FUTURO DIGITAL: INVESTIGACIÓN Y DESARROLLO FEDERALMENTE EN REDES Y TECNOLOGÍA DE LA INFORMACIÓN Dic 2010


apéndice. Probablemente hay algunos buenos (contra) ejemplos de algoritmos importantes que no han avanzado en absoluto en la eficiencia de las implementaciones a lo largo de las décadas. ideas? un área candidata podría ser algoritmos matriciales que no son paralelizables u otros algoritmos que parecen ser intrínsecamente no paralelizables ... también, algunos algoritmos han experimentado mejoras teóricas en la complejidad del límite inferior, pero los algoritmos no se implementan realmente o no son factibles para los típicos entradas de tamaño etc., por ejemplo, ¿multiplicación de matriz?
vzn

1
Esta es una gran respuesta: ¡llena de detalles, matices y discusiones informadas!
Joshua Grochow
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.