¿Por qué hay tanta necesidad de un mejor hardware de computadora? ¿No puede mejorar la velocidad y la memoria de la computadora simplemente escribiendo un mejor software?

Primero, una objeción de redacción: la velocidad de la computadora y la velocidad de la memoria (módulo, algunos casos interesantes que ignoraré por el momento) son independientes del software. La velocidad del software , el tiempo de ejecución del reloj de pared, depende tanto de qué tan bien se escribió el software y de la velocidad del hardware subyacente.

Las mayores aceleraciones en la informática de propósito general provienen de descubrir que alguien usó (digamos) un algoritmo n ^ 2 cuando un algoritmo log (n) funcionará igual de bien. (Vea la notación Big O si no está familiarizado con el concepto). Este tipo de historias puede motivar a los estudiantes a tomar clases de análisis de algoritmos, pero la mayoría de las veces, especialmente en software ampliamente distribuido, ya sea el mejor algoritmo o un cierre equivalente ya habrá sido seleccionado.

Una vez que tenga el algoritmo correcto, no hay una manera fácil de obtener una aceleración significativa del rendimiento sin una gran cantidad de ajustes manuales. La aceleración de software más importante que conozco proviene del Cartiod
proyecto en LLNL: desde el puerto inicial hasta la arquitectura Sequoia, el equipo pudo obtener una aceleración de ~ 50x al realizar cientos de optimizaciones. Por ejemplo, el programa pasaba demasiado tiempo en la biblioteca MPI, por lo que omitieron la capa de comunicación para meter directamente los registros de interconexión.

En el ámbito de la supercomputadora, la aceleración 50x no es un mal día en la oficina, pero estamos mucho más interesados ​​en obtener aceleraciones 1000x cada pocos años (o, de manera equivalente, poder resolver problemas que son 1000x más grandes en la misma cantidad de tiempo). En ese nivel solo tienes que lanzar hardware al problema. Sequoia tiene 1,5 millones de núcleos de procesador. Estamos trabajando en diseños de sistemas que tendrán mil millones de núcleos de procesador. Y sí, hay buena ciencia que no se puede hacer de manera factible a 1.5M que podría funcionar en 1B.

Muchas rasones…

1) Hay tantas tareas de cómputo intensivo que necesitan hardware que es 100K veces, millones de veces más rápido que las velocidades actuales del hardware. Piense en inteligencia artificial, gráficos por computadora, procesamiento de big data, simulación del clima, etc. Personalmente, tengo tareas de computación que realizo cada semana o dos porque tardan demasiado en ejecutarse. Así que imagina que 40 de los núcleos más rápidos disponibles alcanzaron el 100% durante 36 horas seguidas. Mi negocio estaría mucho mejor si este tipo de tareas informáticas intensivas se ejecutaran en una hora o menos. Continuaré comprando cada revolución de los servidores más rápidos para reducir el tiempo de procesamiento.

2) El tiempo de un programador de computadoras de élite es muy valioso, en particular debido a los costos de oportunidad perdidos. Por lo tanto, hacemos compensaciones para maximizar la cantidad de trabajo útil que obtenemos de nuestros programadores estrella. Prefiero tener dos posibles flujos de ingresos de dos programas de software que requieren nuevo hardware que un posible flujo de ingresos de un solo programa que es increíblemente rápido en el hardware existente.

3) El software más lento contribuye a un ciclo de actualización perpetua para el hardware que admite toda la industria tecnológica (tanto hardware como software). Piénselo, el nuevo hardware viene con un sistema operativo más nuevo que requiere una actualización de los programas de software que pueden ejecutarse en el nuevo sistema operativo. Es el mismo problema que una bombilla que dura para siempre. Genial, los vendes una vez y luego estás fuera del negocio …

Para comprender esto, debe comprender qué hace realmente el hardware.
Puede pensar en la CPU como una pequeña calculadora portátil, la básica, con solo una función de suma. (MUY simplificado, pero mantengámoslo lo más laico posible)
Ahora piense en la RAM como un libro de matemáticas.
El software es el profesor.
Cuando el profesor te pide que hagas un ejercicio, digamos, suma 5 y 2, puedes hacerlo muy rápido con tu calculadora básica.
Sin embargo, si le piden que haga 2 ^ 3, ya que solo tiene sumas, debe hacer:
2 * 2 * 2, que a su vez es 2 + 2 + 2 + 2.
Tomó más tiempo, ¿no?
Necesitamos un mejor hardware porque nos permite hacer esas operaciones más rápido, a veces incluso al mismo tiempo.
Por supuesto, los programas siempre se pueden mejorar, pero solo se puede hacer mucho (una computadora es como un mono con una máquina de escribir. Solo hace lo que le dices)

Tenga en cuenta que esto se simplifica enormemente. La CPU no es solo una calculadora y la RAM sirve para más que solo operaciones de almacenamiento.
Espero que haya ayudado ^^

Puede mejorar la sensación de qué tan rápido responde la computadora mediante el uso de diferentes programas. Simplemente arrancar su computadora existente a algunas versiones diferentes de Linux le demostraría eso. Si pudiera instalar una de las versiones anteriores de Windows en una computadora más nueva, el sistema aparecería más rápido y con mayor capacidad de respuesta (excepto Vista, pero eso es especial). Mismo hardware ¿Cómo se siente más rápido? El software más antiguo fue diseñado para ser utilizado con menos recursos.

Los diseñadores de software apuntan a las especificaciones actuales del sistema esperado. No escriben software de consumo para lo que se espera que sean las computadoras en el futuro, y no escriben software para computadoras de hace una década. Escriben software para las computadoras que se espera que la gente compre y use hoy … teniendo en cuenta que “hoy” es un objetivo en movimiento.

¿Por qué hay tanta necesidad de un mejor hardware? Porque las demandas siguen aumentando. Se agregaron pestañas a los navegadores, porque la gente seguía abriendo múltiples copias de su navegador…. pero donde es común que alguien navegue con veinte pestañas abiertas, no era común que las personas ejecutaran veinte copias de IE antes de que aparecieran las pestañas.

Un hardware mejor y más potente significa que se puede mejorar toda la experiencia informática. El uso de un monitor de resolución 1920 × 1080 (o mejor) es común ahora, pero hubo un momento en que 1024 × 768 era común … y los recursos para manejar un monitor tan pequeño son mucho menores de lo que se necesita para manejar una pantalla HD. Ese es solo un ejemplo.

Pero espera … Empecé diciendo que un software diferente podría hacer que la computadora se sintiera más rápido. Esto es verdad. Tienes que examinar toda la imagen. Windows es una plataforma increíblemente hinchada y rica en funciones. Por lo tanto, el uso de una versión actual de Windows requiere más hardware del que solía, porque se han agregado más funciones, siempre se cuestiona la seguridad y se solicitan mejoras. Cuando comienzas a mirar Linux, puedes ver cómo algunas versiones se han optimizado y optimizado para funcionar mejor con sacrificio. Puede personalizar su propia versión de Linux para su hardware exacto para obtener cada gota de rendimiento, dejando de lado todo lo que sea innecesario. No, no estoy tratando de vender Linux. Estoy señalando que si su experiencia es solo desde el punto de vista de Windows, no ha tenido la oportunidad de ver qué cosas geniales puede hacer con menos hardware.

La velocidad y la capacidad de respuesta de un programa determinado dependen de cómo se codificó el programa y de lo que espera del programa. Cuantas más funciones agregue … incluyendo una apariencia transparente, animaciones especiales, etc., más lento se sentirá. Codifique los adornos y obtendrá una experiencia de usuario más rápida.

El hardware no es lo suficientemente rápido para mí y el software no me ayudará. A continuación hay algunos ejemplos del mundo real que tengo ahora.

No puedo obtener respuestas analíticas anticipadas interesantes sobre petabytes de datos lo suficientemente rápido. Incluso las funciones de ventanas más simples llevan mucho tiempo.

Las actualizaciones y eliminaciones de terabytes de datos llevan mucho tiempo.

La velocidad de la red en las regiones geográficas es demasiado lenta.

Las bases de datos de gráficos siguen siendo terribles a escala y quiero que trabajen en petabytes de datos. ODIO tener que codificar estas limitaciones …

Cosas que solo son hipotéticas / teóricas para mí, pero que probablemente dedicaría tiempo si pensara que el hardware podría seguir el ritmo:

Me encantaría experimentar con chips microfluídicos y modelar nuevas formas de interactuar con datos que se parezcan más al ADN.

Me encantaría cambiar la forma en que los mensajes de mensajes podrían funcionar en todas las regiones geográficas.

Cualquier cosa que tenga que ver con IA avanzada …

Es una cuestión de economía. Los buenos programadores son caros. El hardware es barato.

Nunca ha habido una ley de Moore, ni nada parecido, para el software, y Fred Brooks, en su legendario ensayo No Silver Bullet, argumenta que no puede existir.