¿Qué sucede cuando la ley de Moore “termina”? ¿Cuáles serán los efectos sobre el software y la tecnología, la programación y la economía?

El rendimiento del software (específicamente la eficiencia) se convertirá en el objetivo primordial de la ingeniería de software porque si el hardware no se acelera, es mejor elegir cuidadosamente algoritmos eficientes y luego extraer instrucciones de las implementaciones de algoritmos para lograr un mejor rendimiento, es decir, el mejor uso de el hardware que tiene disponible para su problema de computación (siempre fue así para los programadores de aplicaciones cautivos).

Además, (como ya vemos) habrá una prima puesta en Computación Paralela, o más específicamente, sacando el mayor paralelismo posible de problemas / aplicaciones informáticas (hasta el límite de la Ley de Amdahl) tanto en el

  • micro nivel (por ejemplo, vectorización mediante el uso de SSE / AVX y cálculo de GPU de uso general); y
  • nivel macro (p. ej., subprocesamiento en sistemas multiprocesador simétrico y aplicaciones distribuidas que utilizan la comunicación entre procesos (IPC) para la coordinación),

porque si bien los uniprocesadores individuales pueden no ser cada vez más rápidos, siempre podemos (dentro de algunos límites de disipación volumétrica / de energía / térmica) colocar más procesadores ( [tos] , “núcleos”) en un sistema informático … a costa del ancho de banda y la latencia del interprocesador (Y divertido con la coherencia de caché).

Las personas que tienen problemas de computación estrictamente en serie simplemente serán SoL con los uniprocesadores más rápidos que puedan encontrar … o se prepararán con la Programación FPGA, es decir, construyan una computadora lo más rápido que puedan pagar, específicamente hardware optimizado para su problema informático.

Para la computación real a escala real (por ejemplo, Computación Exascale), los sistemas de computadoras agrupadas en grandes Centros de datos son el camino. También se les conoce como nubes, o en un lenguaje muy antiguo: oficinas de servicios informáticos.

En mi trabajo diario, básicamente soy un hámster corriendo en la cinta de Moore’s Law, así que obviamente es muy importante para mí.

Es cierto que una gran cantidad de dólares en innovación e investigación y desarrollo en la industria de los semiconductores se destina actualmente a encontrar formas de instalar más y más transistores en un área determinada, manteniendo bajos los costos y el consumo de energía. No obstante, creo que la importancia de la Ley de Moore para la industria actual de los semiconductores puede ser exagerada.

Muchos ingenieros de semiconductores dedican su tiempo a descubrir cosas nuevas e interesantes que hacer. con todos esos transistores

En los años 80, cuando solo podía colocar transistores [matemáticos] 2 ^ {18} [/ matemáticos] en un chip (eso es un poco [matemático]> 10 ^ 5 [/ matemáticos] para aquellos de ustedes que piensan en decimal), fue una verdadera hazaña diseñar un microprocesador de alto rendimiento capaz de ejecutar un sistema operativo seguro y multitarea, como el 386. Ahora que todos tenemos transistores [matemáticos] 2 ^ {30} [/ matemáticos] en los chips de baja potencia en nuestros teléfonos inteligentes, hay mucha más libertad para hacer que los chips hagan un montón de cosas nuevas. Veamos … un procesador de imagen aquí, un chip LTE allí, una unidad GPS aquí, una GPU allí, y no olvidemos lanzar un núcleo de CPU o 6 mientras estamos en ello. (Este tipo de especialización de circuitos es un acto de equilibrio complicado desde una perspectiva de diseño y software y ciertamente está relacionado con la búsqueda de paralelismo que discute Erik Fair).

Integrar muchas funciones complejas en un solo sistema en un chip no es solo divertido, es una necesidad en estos días. Todos queremos que nuestros teléfonos inteligentes y tabletas portátiles sean súper delgados y súper livianos, lo que significa que no queremos un montón de paquetes de chips voluminosos y separados que ocupen espacio dentro del teléfono … sin mencionar el hecho de que las rutas de señal entre chips discretos son mucho más lento que las rutas dentro de un chip, y el embalaje de IC es una parte muy sustancial del costo de fabricación de un chip hoy en día.

Además, gran parte del trabajo más innovador y visible para el usuario final en la industria de los semiconductores hoy en día no proviene de la lógica CMOS (transistores utilizados como interruptores digitales, el foco de la Ley de Moore hoy) sino de otros tipos de dispositivos, como los sistemas microelectromecánicos ( MEMS) (los acelerómetros en su teléfono inteligente o Fitbit) y memoria de estado sólido y electrónica flexible y transceptores de radio de ultra baja potencia y pantallas de tinta electrónica y más. Todos estos dispositivos tienen restricciones de escala de tamaño y potencia, pero ninguno de ellos es exactamente el mismo que para la lógica CMOS, por lo que no se verán afectados de la misma manera por un final hipotético de la Ley de Moore.

“Los informes de mi muerte son muy exagerados” – Mark Twain

La tecnología seguirá progresando sin cesar a una tasa exponencial simplemente porque la tasa de crecimiento observada de la tecnología depende de las entradas, salidas y eficiencia del software.

La tasa de crecimiento de las entradas, salidas y la eficiencia del software sigue siendo exponencial en el futuro previsible.

Entradas

  • cantidades infinitas de datos junto con métodos técnicos de procesamiento de Big data en constante evolución. Desde genética, medicina, mediciones de tráfico, fotos, videos, redes sociales, etc. El mundo se está ahogando en datos esperando que alguien procese relaciones y predicciones sensatas.
  • tecnología de sensores: táctil, audio, video, fotos, texto, clima, ambiente, aire, etc. Todos proporcionan un medio para que las computadoras observen la realidad con un detalle cada vez mayor que excede las capacidades humanas. Los límites aquí son ilimitados.

Salidas

  • análisis predictivos que describen los futuros probables
  • actuadores para controlar máquinas automáticas inteligentes robóticas para reemplazar a los trabajadores humanos. Con la tecnología del sensor como retroalimentación, estos actuadores funcionarán sin errores con una precisión, destreza y velocidad inmanejables

Eficiencia del software

  • El desarrollo de algoritmos continúa mejorando año tras año solo limitado por los saltos creativos de los ingenieros de software. “Si he visto más, es poniéndome sobre los hombros de gigantes”. – Isaac Newton. Sí, el proceso es secuencial sin límite, ya que cada paso hacia arriba produce la vista del siguiente paso.
  • El desarrollo del lenguaje permite que los idiomas sean cada vez más específicos y expresivos de manera eficiente
  • computación paralela, ya que vastas redes de computadoras pueden trabajar en conjunto para resolver problemas N veces más rápido

No creo que esta pregunta sea responsable en su estado actual. La ley de Moore, en su sentido más estricto, se refiere al número de transistores en un chip. En su sentido menos estricto, se refiere a la potencia informática general que se puede comprar por un dólar.

Del mismo modo, en sentido estricto, la ley de Moore terminará cuando la tasa de cambio disminuya por debajo del doble cada 18 meses. Esto no sugiere que el progreso se detenga por completo, simplemente continuará a un ritmo más lento que eso.

Entonces, ¿qué sucederá cuando dejemos de poder duplicar la cantidad de transistores en un chip cada 18 meses? No mucho. Ya estamos construyendo sistemas masivamente paralelos para usar muchas veces esa cantidad de transistores en una sola entidad computacional.

¿Qué sucederá cuando no podamos mejorar nuestra inversión a la misma velocidad? Los fabricantes de computadoras venderán menos computadoras y pueden recurrir a la obsolescencia planificada si se pone realmente mal. El impulso para implementaciones súper pequeñas se volverá más costoso. La gente tendrá que pagar más por su iThinker-nano, y saldrán con menos frecuencia.

¿Qué sucederá si somos completamente incapaces de mejorar la potencia informática por centímetro cúbico? Eso realmente depende de dónde estamos cuando lleguemos a ese punto.

Lo más probable es que recurramos a implementaciones más inteligentes para mejorar el beneficio derivado de esa potencia informática. Se hará un mayor esfuerzo para crear circuitos de propósito especial, o circuitos que sean capaces de especializarse en el proceso. En este momento tenemos compiladores que optimizarán nuestro software en función de lo que cree que es la intención del programador. Espero que creemos software de diseño de hardware que haga lo mismo: genere una solución de hardware optimizada y la imprima en 3D en tiempo real para lograr un objetivo.

En general, incluso con la posibilidad de The Singularity, creo que pasarán un par de cientos de años antes de encontrar el extremo inferior de la densidad computacional.

Sé que causará depresión económica, pero dejaré que otras respuestas hablen de eso.

El hardware continuará, ¡la Ley de Moore será condenada!
Si bien la densidad del transistor no se duplicará cada 18 meses, aún habrá mejoras en la tecnología. Con chips baratos y comercializados, veremos máquinas con no solo ocho procesadores, sino también chips multinúcleo masivos con cientos de procesadores. En cierto modo, la imaginación de los arquitectos informáticos ha sido limitada en el pasado. No querían crear confusión creando nuevas configuraciones exóticas cuando la ley de Moore solo iba a golpear más poder de procesamiento en los chips de todos modos. Sabemos, por ejemplo, que la arquitectura de la celda de PlayStation 3 no se cumplió calurosamente porque no fue fácil de programar. Sin embargo, por falta de progreso continuo, veremos experimentos con nuevas y extrañas arquitecturas informáticas. ¿Quizás deberíamos mezclar procesadores y memoria? ¿Qué tal un tipo de memoria que está entre ser RAM y un registro? Quizás de nuestros cientos de procesadores, algunos pueden manejar Java Byte Code de forma nativa, algunos pueden hacer el conjunto de instrucciones x86 y algunos funcionan en un nuevo conjunto de instrucciones súper optimizado. Tal vez veremos cosas aún más salvajes como chips que están personalizados para renderizado web y JavaScript.

Aumento de concurrencia
Ciertamente veremos muchos más sistemas multinúcleo y más programas multiproceso. Dominarán idiomas como Scala con grandes abstracciones para manejar la concurrencia.

Open Source ganará
Eventualmente, Microsoft lanzará una mejor versión de Office y una mejor versión de Windows. Demonios, creo que ya lo han hecho. Con el tiempo, proyectos como ReactOS ReactOS se pondrán al día. Además, Linux seguirá mejorando. Los RDBMS tan buenos como Oracle podrían ingresar al mundo de código abierto.

Seguiremos aprendiendo a usar lo que tenemos
A medida que hemos desarrollado una tremenda tecnología informática, hemos aprendido a absorberla en nuestra sociedad y usarla. Hemos descubierto que podemos hacer cosas geniales como iPhones e Internet. Quizás el Wolfram Language será un avance similar. Incluso cosas como los automóviles están mejorando debido a las computadoras.

Sin embargo, creo que teniendo en cuenta la cantidad de poder de cómputo que hemos desatado en las últimas décadas, tomará al menos unas décadas más descubrir cómo capitalizarlo realmente. Se inventarán nuevos sistemas. Probablemente, más personas hagan programación de aficionados. Se seguirán descubriendo nuevas formas de poner pequeñas computadoras baratas en su vida diaria y en fábricas gigantes.

Los algoritmos seguirán mejorando
Existe una idea tradicional de que el software se hincha más con el nuevo hardware. Sin embargo, el software a veces se vuelve más rápido. Los compiladores se vuelven más rápidos, la compresión se vuelve más rápida y mejor. Demonios, están inventando transformadas de Fourier más rápido que las transformadas rápidas de Fourier. Ciertamente, comenzaremos a ver más NoSQL en este mundo a medida que las personas inventan sistemas que eligen sus compensaciones del Teorema CAP y sistemas de software más complejos simplemente implementan bases de datos dentro de sí mismos.

No, no codificaremos “cerca del metal”
Bueno, tal vez un poco, pero no creo que sea tan común como la gente piensa. No vamos a abandonar las prácticas de ingeniería de software que hemos desarrollado en las últimas décadas y comenzar a poner todo en arreglos con terminación nula. Y creo que literalmente nos llevaría siglos reescribir todo lo que tenemos en Java en un sistema sin administración automática de memoria. Además, como mencioné antes, en nuestro futuro concurrente, no vamos a lidiar con hilos explícitos y sus condiciones de carrera. Usaremos abstracciones como Actores para manejar nuestro código limpiamente.

La mayoría de los sistemas no se construirán de manera diferente porque los chips que tenemos hoy son lo suficientemente buenos. En la mayoría de los casos restantes, usaremos sistemas distribuidos como lo hacemos ahora para escalar horizontalmente a través de nodos asequibles construidos a partir de hardware básico. En el raro caso de que necesitemos las soluciones de sistema único más rápidas posibles, volveremos a los paquetes de múltiples chips (como la ranura 1 de Intel) y las placas base de varios zócalos.

Las computadoras de consumo ya son lo suficientemente rápidas para todas las aplicaciones comunes, excepto los juegos, y los requisitos del procesador disminuyen a medida que las aplicaciones se mueven a la nube (Microsoft Office 365, etc.) Pasando de mi computadora portátil 2010 con un 1.6 (4 núcleos activos) – 2.6 GHz (1 núcleo ) procesador para desarrollo de software para una Mac 2017 que funciona a 3 (todos los núcleos) – 4 GHz (uno) no mejoró las cosas para el desarrollo de software con compilaciones paralelas. Las personas pasaron de actualizar continuamente sus computadoras personales a reemplazarlas cuando fallaron como calentadores de agua caliente

Los sistemas integrados ya tienen potencia de sobra, con más de la mitad usando chips con MMU y suficiente memoria para ejecutar Linux.

Mi opinión, por lo que vale, es que estamos pasando de una fase dominada por la ingeniería y el desarrollo tecnológico a una dominada por el arte, la arquitectura y el diseño. Hemos avanzado a un ritmo vertiginoso a niveles extraordinarios de rendimiento, pero todavía estamos muy atrasados ​​en UX / UI, apariencia, calidad y belleza. La ingeniería es difícil pero el arte es mucho, mucho más difícil.

Yendo quizás un poco OT, creo que veremos mucho de este progreso proveniente del campo del diseño del juego. No hay otro con un enfoque tan singular (¿obsesivo ?, ¿maníaco?) En la experiencia del usuario.

La ley de Moore continuará hasta 5 nm a 7 nm. Y de acuerdo con el trabajo de investigación en curso, se logrará para 2020-25. Si vamos más allá de eso y continuamos con la ley, el fin de la ley de Moore está a nivel atómico. Por el trabajo de investigación que se realiza en el mundo de hoy, todavía tenemos que ir más allá del nivel atómico. Por lo tanto, para los electrónicos, se puede decir que la ley de Moore termina en el nivel atómico. Es el siguiente paso de la nanotecnología. Y la programación nano / atómica surgirá con el tiempo. Por lo tanto, si la investigación continúa, la ley de Moore no tiene fin.