¿Necesitamos un algoritmo 10 veces más rápido o una máquina 10 veces más rápida? Da una razón para justificar tu respuesta.

Si es posible, un algoritmo 10 veces más rápido es mejor.

¿Por qué? Bueno, imagine que usted y un competidor están vendiendo su software. Eliges requerir una máquina 10 veces más rápida, mientras que tienen un algoritmo 10 veces más rápido.

¿Qué preferirán los clientes? Con los suyos, gastarán mucho más dinero en hardware de computadora, lo que también generará mayores costos en electricidad y refrigeración. Pero sus competidores pueden comprarle a su competidor. Si lo hacen, también pueden comprar esas máquinas de gama alta y ¡pueden hacer 10 veces más trabajo!

Si no lo hacen, pueden comprar una computadora mucho más barata y hacer el mismo trabajo. Es probable que puedan comprar una computadora más barata, digamos, un tercio de la velocidad, ¡ y aún así hacer más trabajo!

Como dicen los comerciales nocturnos, “¿Ahora cuánto pagarían?” esa computadora por unos años, la gente la pagará.

Además, las velocidades de la computadora no se escalan infinitamente. Hay una computadora más rápida que puedes comprar en cualquier momento. Y con esa computadora más rápida, las personas que usan el producto de su competencia obtienen tanto trabajo de una computadora como sus clientes lo hacen de diez .

Las computadoras de servidor de gama alta cuestan más de cien mil dólares. Lo que significa que las personas que compran el software de su competencia pueden estar ahorrando millones de dólares en hardware.

Esa es mi justificación.

Por supuesto, ambas cosas son difíciles de lograr y, por lo general, esa NO es la forma en que funciona el mundo. El problema con la máquina es que aumentar la velocidad aumenta el CALOR, y ese es el asesino de la electrónica. 10 veces es masivo, algo difícilmente hecho en un solo paso. El aumento de la velocidad de un algoritmo es algo en lo que todos están trabajando, pero un salto de 10 veces solo es posible con un concepto totalmente nuevo, probablemente debido a algún avance en los conceptos matemáticos o de aprendizaje automático. Nuevamente, decir esto y lograr esto es altamente improbable; de nuevo porque esta no es la forma en que funciona el mundo. El progreso se hace paso a paso tras otro. Ocasionalmente, el concepto de alguien llenará el vacío para la idea de otra persona, y desde el exterior parece que se hicieron grandes avances en un solo paso, pero esta rara vez es la situación real. Cuando los discos duros salieron por primera vez, eran 1 meg y 3 meg eran supergrandes; En un año, este tamaño se hizo añicos, porque tanto el equipo como los algoritmos de búsqueda y almacenamiento se habían actualizado muy rápidamente. Para las personas que no están directamente involucradas con las computadoras, parecía milagroso, pero en realidad fue un grupo de personas que resolvieron una serie de problemas relacionados que crearon este éxito.

Voto por un software / algoritmo 10 veces más rápido.

Típicamente, las mejoras algorítmicas cambian la función de complejidad computacional asintomática y pueden producir una mejora sustancial en el rendimiento de más de 10 veces. Mientras tanto, la mejora secuencial del rendimiento del hardware se ha ralentizado y tendrá que esperar más de 5 años para una mejora de 10 veces. La Ley de Moore todavía ofrece más núcleos, pero necesitará un algoritmo más paralelo para explotarlos (Ley de Amdahl – Wikipedia).

Por lo general, cuando el rendimiento es importante, ya está utilizando equipos que están cerca del punto óptimo de rendimiento por costo. Una mejora de rendimiento secuencial de 10 veces en el hardware no estará disponible hoy a ningún costo. Básicamente, debe esperar si desea un hardware más rápido, pero hoy puede tener un software más rápido. Asumiendo que este es el primer paso para optimizar el software, es probable que haya algunas grandes victorias posibles.

Suponiendo que el consumo de energía se escala con la velocidad de cálculo (que generalmente no es cierto) y las dos máquinas tienen conjuntos de instrucciones iguales y otras características (ídem), y cada algoritmo es igualmente fácil de entender y depurar (ídem), entonces no puedo ver cómo Sería preferible.

Dato tangencial interesante: las mejoras en los algoritmos han superado las mejoras en el hardware. Para multiplicar matrices o hacer otro cálculo “algorítmico”, es mejor usar los algoritmos de hoy en el hardware de ayer, que viceversa.

El progreso del software supera la ley de Moore

Algoritmo 10x, por lo que incluso en una máquina 10x más lenta, continuará funcionando a la velocidad estándar. O si está en una máquina 10 veces más rápida, será 20 veces más rápida

More Interesting

¿Qué es un algoritmo en C?

¿Crees que la programación no es para mí?

¿Cuál es el número total de rompecabezas de sudoku posibles?

¿Cuáles son algunos problemas prácticos en los que no se puede evitar el uso de algoritmos con big-O muy grande?

¿Cuál es un ejemplo de un algoritmo de filtro en la selección de funciones en el aprendizaje automático?

¿Estaría de acuerdo en que el aprendizaje profundo es el único algoritmo que rige sobre todos los demás algoritmos en el aprendizaje automático?

¿Qué algoritmo está detrás de la convolución en MATLAB?

¿Qué algoritmo se puede usar para encontrar la clave para el cifrado y la clave de entrada en el formulario?

¿Cómo diferenciar entre algoritmos de clasificación internos y externos en términos simples? ¿Cómo se lo explica a los principiantes?

¿Qué algoritmos son buenos candidatos para el reconocimiento de sonido? Estoy principalmente interesado en reconocer sonidos en un entorno doméstico, por ejemplo, un temporizador de microondas que suena, un teléfono que suena, un timbre, etc.

Cómo encontrar un elemento en un árbol de búsqueda binario

¿Qué es la estructura? ¿Cuáles son las ventajas de la estructura sobre la matriz?

¿Cuál es la diferencia entre recursividad e iteración?

Si usamos un algoritmo np para el problema del vendedor ambulante donde la gente va en cada ruta. ¿Por qué hay 2 ^ n personas en total? ¿Es porque una persona está viajando una ruta o no está viajando una ruta?

Cómo encontrar el subconjunto contiguo de suma máxima utilizando un método de divide y vencerás