¿Se aplica la ley de Moore a los algoritmos informáticos?

No, realmente no. No descubrimos un algoritmo 2 veces más rápido para un problema determinado cada 2 años. (Supongo que se refería a una reafirmación de la ley de Moore sobre la capacidad del hardware, no la cantidad de transistores en un chip).

El rendimiento de los algoritmos en la literatura generalmente se mide en términos de complejidad asintótica de todos modos, por lo que decir que un algoritmo es 2 veces más rápido no tiene ningún sentido, porque debe especificar qué tamaño de entrada es 2 veces más rápido. Si un nuevo algoritmo tiene un mejor tiempo de ejecución asintótico que uno anterior, en algunas entradas puede ser más lento, en otras puede ser 2 veces más rápido y en otras 100 veces más rápido. La ley de Moore tendría que definirse de alguna otra manera para incluso tener sentido para los algoritmos.

La Ley de Moore tiene sentido para el hardware solo porque las operaciones que son O (1) en el hardware realmente no cambian.

Además, en términos de software práctico que está escrito, existe lo que se conoce como “el gran contrapeso de la ley de Moore”, que dice más o menos “el software se vuelve más lento a medida que el hardware se acelera”. Recuerde cuándo podría ejecutar un sistema operativo en 64 MB de ¿memoria? ¿O cuándo podría caber uno en un disquete? A medida que evolucionan las capacidades de hardware, las personas crean software más complejo que requiere más recursos. Para construir ese software más complejo, las personas usan más abstracciones y herramientas de alto nivel. Estas herramientas suelen ser bastante generales, lo que significa que su rendimiento podría no estar optimizado para el caso de uso específico. El rendimiento de la máquina se cambia por el rendimiento del ingeniero de software (productividad) y también por las mejores prácticas de ingeniería, como la modularidad y la capacidad de prueba, que son necesarias para garantizar que este software cada vez más complejo realmente funcione y pueda ser mantenido y ampliado de manera competente.

No.

La Ley de Moore se aplica a una cosa y solo a una: la escala de los semiconductores MOS . Absolutamente nada más. La escala es la forma en que el costo disminuye al cambiar algunos parámetros de diseño críticos, generalmente el rendimiento o la cantidad.

No existe una escala de tipo “Ley de Moore” para ninguna otra tecnología . Tan pronto como empiece a preguntarse “¿Se aplica la Ley de Moore a X”, la respuesta racional, sensata y educada siempre debería ser automáticamente “NO!”

Hay tecnologías que se benefician del “resplandor residual” de los semiconductores, pero solo porque los semiconductores se “venden por precio” y, por lo tanto, las eficiencias económicas creadas por la Ley de Moore pasan a las tecnologías más adelante en la cadena de suministro. Pueden aprovechar esto (el software lo hace en las computadoras), pero no es el software escalable, es un artefacto.

El software en sí es completamente ineficiente y no escalable en su “diseño” como tecnología porque es un servicio de conocimiento (y NO existen tecnologías KS escalables porque los humanos están en el camino crítico y no pueden escalar).

La única eficiencia real de escalado del software ocurre cuando usted termina y puede copiar el producto final a mil millones de personas a un costo marginal “cero”. La creación / diseño de software es terriblemente ineficiente.

No.

La ley de Moore es una observación de la densidad del transistor frente al tiempo, es decir, la escala. Establece que el número de transistores aumentará en X cada Y años (en la misma área).

La ley de Moore se ocupa del escalado físico del material (Si en la mayoría de los casos) y no se aplica a aplicaciones no físicas.

More Interesting

¿Por qué es 5n + 8n ^ 2 + 100n ^ 3 = O (n ^ 4)?

¿Cuáles son algunos algoritmos conocidos para encontrar una coincidencia perfecta en un gráfico bipartito?

¿Tengo que hacer programación competitiva si estoy aprendiendo la estructura de datos y los algoritmos, mientras que la programación competitiva me distrae o primero tengo que aprender la estructura de datos y el algoritmo por completo y luego saltar a la programación competitiva?

¿Cuál es la manera de mejorar en la resolución de preguntas recurrentes y complicadas de estructura de datos / algoritmo?

¿Cuál es la diferencia entre la optimización de llamadas de cola y la optimización de recursión de cola?

¿Cuál es la diferencia entre tener un buen algoritmo y no tener uno?

¿Cuál es la forma más rápida y eficiente de hacer una sustitución / sustitución de cadenas dentro de una cadena grande con JavaScript?

¿Es malo si no entiendo un algoritmo? He estado tratando de entender algunos algoritmos (los recursivos en su mayoría), entiendo la mayoría de ellos, pero no pude entender algunos.

Si existen múltiples rutas más cortas entre 2 nodos en un gráfico no dirigido, ¿es posible imprimirlas todas utilizando el algoritmo de Dijkstra?

Cómo dibujar un contorno vectorial en una matriz de cuadrícula binaria

¿Qué estrategias o algoritmos se utilizan para agrupar rutas de pasajeros en función de la ubicación y la hora de salida?

¿Qué es el algoritmo TDIDT?

¿Puede un gráfico ser un circuito de Euler y una ruta al mismo tiempo?

Cómo dominar algoritmos, estructuras de datos y desarrollar un enfoque de resolución de problemas

¿Qué aplicaciones usan algoritmos complejos y únicos?