¿Podemos construir máquinas informáticas con operaciones elementales que demoren más que el tiempo constante en las máquinas actuales?

Intuitivamente, parece que un enfoque paralelo de múltiples procesadores para problemas de computación espacial reduciría el tiempo de procesamiento. Hice una búsqueda rápida y no pude encontrar una reducción del casco convexo a tiempo constante, pero hay ejemplos de mejoras por un factor, como esta página en iiit.ac.in y esta página en arxiv.org. Estos ejemplos utilizan unidades de procesamiento de gráficos que son máquinas de datos múltiples de instrucción única.

Sospecho que una verdadera computadora paralela masiva con múltiples programas que se ejecutan en múltiples procesadores con comunicación entre procesadores podría funcionar mejor. Parece que esto podría configurarse para imitar la física, pero podría necesitar un procesador para cada punto de datos posible, en lugar de cada punto de datos real. Eso es ENORME. Nuestros cerebros (y la realidad, obviamente) tienen tales recursos, ya que tienen una neurona altamente interconectada (de hecho, múltiples) para cada punto de resolución en nuestras retinas. Es por eso que potencialmente podemos visualizar una solución a este tipo de problema en el tiempo que es algo independiente del número de puntos de datos, es decir, tal vez más rápido que el tiempo constante.

Este artículo analiza un enfoque de Procesador múltiple de instrucción única múltiple. Página en mpi-inf.mpg.de. Es un paso en la dirección correcta.

Imagine la placa que contiene una cuadrícula de clavijas N x N que se pueden subir o bajar mediante interruptores electrónicos. Usted especifica una matriz que define las clavijas que se generarán. La computadora es un procesador vectorial, por lo que puede digerir la matriz en una sola operación, elevando las clavijas relevantes simultáneamente, no secuencialmente. Si lo desea, haga que las clavijas contengan sensores que se activan si la banda elástica está en contacto con la clavija. Sí, porque es una cuadrícula que está cuantificada, pero puede definir que N sea lo suficientemente grande como para que sea continua dentro del error experimental. Debido a las propiedades mecánicas de los materiales, no puedes hacerlo mejor que eso de todos modos. Construir un procesador vectorial que pueda digerir una matriz de tal tamaño como una sola operación no sería trivial, pero ciertamente se puede hacer. Ahora ha transferido parte de la complejidad del problema a la complejidad de la máquina. Pero es un tipo diferente de complejidad.

Eso es lo divertido de la complejidad. Nunca se comporta como cabría esperar.

Aquí, el problema es un simple caso SIMD. Imagine una red tipo Transputer de tales procesadores vectoriales, cada uno con un conjunto completo de instrucciones pero ejecutando programas locales y no solo copias del original. En otras palabras, un entorno MIMD. Ahora, vamos un paso más allá y digamos que cada procesador tiene un conjunto arbitrario de registros internos de los que se puede seleccionar cualquier vector y una capa de traducción similar a Transmeta. (Se han jugado procesadores con memoria de almacenamiento dinámico y registros definidos por el usuario). En otras palabras, podemos imitar un número finito de instancias de una clase de objeto a nivel de procesador, con la lógica de la clase definida por la traducción.

En otras palabras, ahora tiene la capacidad de hacer MIMD sobre SIMD en procesadores vectoriales orientados a objetos. Sin embargo, el usuario no ve esa parte. El programador ve una máquina con un compilador para un lenguaje que es objetos puros y admite de forma nativa el modelo de actor para la paralelización explícita. ¿Tendrá eso diferentes métricas de rendimiento que las máquinas SISD multinúcleo modernas? No puedo ver cómo no pudo. No esperaría que una computadora de tiempo compartido de conmutación de tareas, que emula el paralelismo, tenga métricas similares a un sistema operativo preventivo en tiempo real en una computadora con subprocesos de 16 núcleos porque la emulación tiene su propio orden de complejidad y usted ‘ Lo he cambiado por completo. En mi máquina hipotética, prácticamente no hay emulación, el paralelismo es completamente nativo.

Esto es importante porque el algoritmo óptimo para diferentes tipos de emulación será diferente, para evitar las limitaciones. El algoritmo teóricamente óptimo seguirá siendo del mismo orden, siempre que no haga suposiciones. El procesamiento secuencial, a excepción de una tarea demostrablemente secuencial, es una suposición.

Se ha propuesto una máquina que podría factorizar números más rápido que las computadoras actuales: TWINKLE. Agrega muchos números en una sola instrucción midiendo la intensidad combinada de muchos LED diferentes.

More Interesting

¿Cuál es la diferencia entre la variable de referencia en Java y los punteros en C?

¿Qué le gusta a Thomas Cormen de Dartmouth College?

¿Por qué la PNL consume tanta memoria?

¿Por qué P es desigual a NP en términos simples?

¿Agregar más diversidad en tecnología es importante para la innovación / creación de valor? ¿O es el "impulso de la diversidad" de las grandes empresas tecnológicas una postura políticamente correcta?

¿Es el aprendizaje profundo la mejor forma de aprendizaje automático?

¿Cuál es la reputación del programa de informática de Cornell, en comparación con otros programas principales? ¿Qué tan bueno es Cornell con trabajos en grandes empresas tecnológicas (por ejemplo, Facebook, etc.), frente a Carnegie Mellon o Stanford?

¿Qué significa que un problema sea no determinista?

¿Cuál es la diferencia entre hosts virtuales y servidores virtuales?

¿Por qué se habilita Superfetch después de un tiempo o después de reiniciar la computadora?

Cómo desarrollar suficiente conocimiento de aprendizaje automático para comprender a fondo los trabajos de investigación que se publican en DeepMind

¿Qué bajo mayor es bueno para el aprendizaje automático?

¿Cuáles son mis perspectivas en el campo del aprendizaje automático si nunca hago estudios intensos o leo artículos sobre el tema?

Cuando se aplica una red neuronal de avance en 10 puntos de datos (20 características), la pérdida no llega a cero. ¿Cómo es esto posible? ¿Cómo lo depuro?

Cómo mantener un buen rendimiento para una computadora