Aquí. Ve a leer esto, primero.
Sobre la dualidad de las estructuras del sistema operativo: Hugh Lauer, Roger Needham, 1978 (este es un enlace al PDF del documento).
En la edad de piedra, cuando los procesos de VLSI eran de aproximadamente 3 µm, y solo empezábamos a pensar que podríamos, podríamos, llegar a “submicrónicos”, Hugh y Roger lograron demostrar que si tenían un montón de memoria con un montón de CPU conectadas, o una pila completa de CPU independientes con su propia memoria y una forma para que las CPU se comuniquen, para que pueda hacer exactamente las mismas cosas, simplemente usando mecanismos ligeramente diferentes.
- ¿Puedo alquilar una supercomputadora?
- ¿Por qué una pequeña empresa cambiaría a la computación en la nube?
- ¿Cuáles son las ventajas y desventajas de alojar una base de datos en Salesforce's Database.com frente al Servicio de base de datos relacional de Amazon?
- ¿La automatización afectará los trabajos de Amazon Web Services (AWS)?
- ¿Cuál es la diferencia entre el alojamiento en la nube y el alojamiento VPS?
En ese momento, para ir “realmente rápido” las computadoras eran monstruos monolíticos, maravillas de llevar la física teórica y la ingeniería eléctrica al límite de lo que era posible. Y eran muy, muy caros. Y lento como el infierno para los estándares modernos. (Vea la supercomputadora Raspberry Pi versus Cray X-MP para una divertida o alucinante, dependiendo de dónde se sentó en la curva “Usé un Cray”).
Entonces, hoy en día, simplemente no es posible avanzar más en la fabricación de CPU individuales más rápidas de las que ya están haciendo Intel, AMD, etc.No existe una salsa secreta mágica que haga una CPU más rápida, un equivalente a un Cray. para los años 2010 y más allá. La única forma de ir más rápido es hacer más cosas al mismo tiempo.
Ya vemos esto en el diseño de chips: mire el Intel® Core ™ i7-4790K. 4 núcleos de CPU, con hyperthreading que le da la apariencia de 8. Chip impresionante. Aproximadamente mil veces más rápido que mi diseño de CPU más rápido.
Ahora, supongamos que tiene un programa que está ejecutando en este tonto. Y tiene que ir 3 veces más rápido … En el pasado, tenía una solución de hardware para eso (ver la respuesta de Stan Hanks a ¿Cuál es el equilibrio entre las CPU microprogramadas y cableadas?). Hoy, la única respuesta es descomponer el problema en tareas que se puedan ejecutar en paralelo.
Ese. Es por eso que debe preocuparse por la informática distribuida. Porque es la única forma de ir más rápido, y la diferencia al hacerlo en un solo chip, y entre múltiples CPU conectadas por una red externa es muy, muy pequeña.
Si, es dificil. Es una de las “fronteras finales”, especialmente si considera tomar programas “regulares” escritos linealmente y convertirlos “automáticamente” en componentes paralelos y convertirlos en recursos del sistema operativo para hacerlos “correr más rápido” (sombras del Rice Vectorizer !).
Pero es donde está la acción, al menos en cuanto a extraer el máximo rendimiento en la computación.