Top 20… bueno 17
Comenzó el fin de semana y con la procras… ummm bueno ni tanto. Ya terminó el sábado e hice gran parte de lo que quería hacer. Lo cierto es que por consecuencia del evento del lunes que viene (ver post que haré el martes) no había podido dedicarle mucho al blogcito pero decidí desempolvarlo para escribir sobre este articulo que me encontré surfing on the web.
El articulo surge gracias a la gente en [1] el cual es un site de un estilo que aún no logro definir; entren ustedes y véanlo. Por lo que concierne al post, quiero citar el articulo [2] que encontré en ese site.
El artículo se llama “The Top 20 Applications for an infinitely fast computer” el cual traduce: “El Top 20 de las aplicaciones para una computadora infinitamente rápida” ¿Aja como así?
La humanidad ha hecho relativamente un excelente trabajo permitiéndose a si misma el haber hecho evolucionar a los dispositivo de computo y a toda la tecnología relacionada. Hace 20 años las computadoras eran simplemente NO lo que son ahora. Y eso no es malo… la cosa es que aún la humanidad está sedienta de poder de computo… tanto así que de acuerdo a la ley de Moore… va a a haber un rollo serio por allá por el año 2020. Pero… ¿tantos problemas así tiene la humanidad como para, a estas alturas, estar sedienta de poder de computo? Hace menos de un año fui a dar una conferencia en INTEVEP [3] y dentro de ella mencioné que existían problemas que una computadora simplemente no podía resolver. Muchos me vieron raro pero yo usé ese argumento para presentar el top 5 (para aquel entonces) de las computadoras más rápidas del mundo pero… incluso ellas se ahogan con ciertas cuentas lo que nos permite pensar… ¿que haríamos con unos kilitos menos? (jejeje parodia corta de las propagandas de cereales XD) ¿Que haríamos con potencial infinito de computo? Este es un top 20… bueno 17, de las cosas que podríamos hacer con una computadora INFINITAMENTE RÁPIDA. Este Top está ordenado de acuerdo a lo deseable que es poder tratar estos problemas siendo el 1 el que
OJALA PUDIÉSEMOS!!! :’(
Antes de comenzar quisiera definir el concepto de una computadora INFINITAMENTE RÁPIDA. Una computadora ∞mente rápida es aquella que (simplificando) permite estas tres cosas:
- Resolver en O(0) CUALQUIER solicitud de computo.
- Posee latencia igual a 0.
- Posee memoria (principal y de disco) infinita.
17. Exploración fractal y el fractal de Mandelbrot en 3D
Yo soy, digamos, un fan en silencio de la geometría y el arte fractal pero la aplicación 17 simplemente es escalofriante. Hace unos 30 años Benoit Mandelbrot [4] introdujo la Geometría Fractal [5] e introdujo su más conocido fractal: El fractal de Mandelbrot definido mediante la relación
Para los números complejos c y dados. Lo cierto es que, para poder lograr una gráfica decente, deben realizarse muchos cálculos relacionados (cientos de miles de hecho) y no fue sino gracias a los adelantos en las computadoras que se pudieron generar imágenes de este conjunto, incluso en tiempo real. La siguiente es una propia:
Pero… como ya dijimos nunca estamos contentos con saber, siempre deseamos saber más y nos preguntamos ¿Existe una ecuación que describa correctamente una extrapolación 3D de este conjunto? Simplemente no se conoce. La siguiente es el trabajo de un artista hecho a mano:
De acuerdo a [6] es súper complicado lograrlo y lógicamente el poder de computo requerido sería anormalmente inmenso. Lo siguiente es una muestra de un fractal 3d el cual se explica ahí mismo:
¿Que haríamos con una computadora infinitamente rápida? Comenzáramos a calcular fractales y a visualizarlos a través de fuerza bruta sobre ecuaciones definidas en el dominio de los números complejos hasta dar con aquello que responda a la definición de este fractal en 3 dimensiones.
16. Computadoras con más capacidad de respuesta
El boom de las computadoras de hoy en día es que dejaron de ser simplemente trituradores de números para convertirse en herramientas multifuncionales que permiten, a través de una interacción amigable y llena de detalles gráficos el poder realizar las grandes tareas del día a día.
¿Que haríamos con una computadora infinitamente rápida? Esta es medio aburrida pero hace falta jejeje. Es simple. Las interfaces gráficas para los sistemas operativos NUNCA se laguearían ni se quedaran pegadas ^^. !!! Esto tiene que ver con los algoritmos de planificación… no existirían pues simplemente se mandaran todos los procesos para el procesador y como este contestaria en tiempo constante nunca hubiese rollos… incluso en Windows Vista!!! ^^.
15. Menos tiempo en almacenamiento y empaquetamiento
Parece ayer cuando nos sentábamos a discutir “El proublema de la mouchila jejeje” con nuestro amado aunque implacable profesor Griffin (No Peter, Victor ^^) pero es cierto que hoy en día las compañías invierten bastante en aprender como empaquetar cosas en el espacio dado de la forma más eficiente. Una vez ayudé a hacer un código (el afiche esta en mi cuarto) para estudiar este problema (Programación lineal entera). En general, el llamado Cutting Stock Problem [7], el problema de la mochila y más en general, los problemas de optimización son de vital importancia en las aplicaciones industriales. Estos son problemas NP-Completos [8] y en general no hay algoritmos deterministas que puedan tratar grandes instancias en tiempos coherentes. Un ejemplo de muchísimo interés es el problema del empaquetamiento 3d para el cual se han diseñado soluciones evolutivas como en [9] que es más o menos como enseñarle a la máquina a jugar Tetris 3d:
¿Que haríamos con una computadora infinitamente rápida? Esta pensarían la solución en tiempo más que real y siempre se hiciera todo de la forma más eficiente posible (forma óptima) de hecho se pudiesen hacer pequeños dispositivo de mano que solamente optimizaran las cosas que deban optimizarse!!!
14. Componer música
Hoy en día componer música en serio, utilizando herramientas como Pro Tools [10] o Sibelius [11] es computacionalmente complicado. Cada canal (señal independiente de sonido) puedo llegar a requerir hasta un 20% del procesador gracias a la necesidad de la creación de los efectos. Por ejemplo los efectos múltiples como el echo [12], el phaser [13] y el reverb [14] siguen siendo complicados de generar con un grado de realismo decente. Por ejemplo el reverb puede verse con un algoritmo simplificado:
// for echo effects: echoBuf[] are filled by dMAX using FIFO read.
// for all-pass filters: apfBuf[] are filled by dMAX using FIFO read.
// After computation, apfBuf[] are transferred to circular buffer using FIFO write.
for (i=0; i<Ns; i++ ) {
tempin = in[i];
// echoe filter (6 taps)
for (k=0; k<6; k++) {
in[i] = in[i] + gainE[k] * echoBufE[k][i];
}
// All-pass filters
tempout = tempin;
for (k=0; k<4; k++) {
lp[k] = b * apfBuf[k][i] + a * lp[k];
apfBufA[k][i] = (1-fbA[k])*tempin + fbA[k] * lp[k];
tempin = gain * lp[k] - fbA[k] * tempin;
tempout = tempout + tempin;
}
out[i] = tempout; // output
}
Como se puede ver, esta implementación (es de Texas Instruments) que es pensada para hacerse en tiempo real, de por si es medio complicada pues utiliza estructuras FIFO (el buffer) y ni siquiera esto garantiza que suene realista.
¿Que haríamos con una computadora infinitamente rápida? Estos efectos saldrían en tiempo real, tal y cual como sonaran en el mundo real. No habría rollos de latencia en los canales y por lo tanto no habrían rollos de retardo ni nada por el estilo y lógicamente esto generaría millones de nuevas posibilidades musicales.
13. Buscar vida inteligente fuera de la tierra
En esa misma conferencia que di en INTEVEP hable sobre el proyecto SETI (Search for Extra Terrestrial Intelligence) que lleva a cabo la Universidad de Berkeley a nivel mundial. Info: [15].
La idea es que gracias al telescopio de Arecibo en Puerto Rico y muchos más se recojan señales del espacio exterior y se procesen de forma de encontrar señales que puedan venir de vida extra terrestre.
Por supuesto que este procesamiento NO ES PARA NADA TRIVIAL. Actualmente más de tres millones de usuarios prestan sus “pequeñas” plataforma de procesamiento (o sea, sus PCs de escritorio) para conformar el cluster de procesamiento de estas ¿Por que no es trivial? Bueno, estas señales están de por si mezcladas con la de nosotros, es decir, saquen la cuenta, radio emisoras, TV, etc…
¿Que haríamos con una computadora infinitamente rápida? Simple… casi que “enchufaramos” el telescopio a esa máquina y ya… cuando de verdad haya una señal marciana ella saldrá por si sola y la rastrearemos (en tiempo real) para poder intentar un contacto.
12. El problema… ¡del agente viajero!
Bueno… tenemos un grafo:
El famosos y más rayado que el queso problema del agente viajero (traveling salesman problem, TSP) consiste en tratar de recorrer un grafo en su totalidad sin repetir nunca los vértices excepto por el de partida, pues la idea es llegar a de donde saliste. Las aplicaciones como por ejemplo planificación de rutas de vehículos y similares, rezan por esto.
¿Que haríamos con una computadora infinitamente rápida? Ni siquiera debería de preguntarse esto. Se agarra se mete cualquier grafo y en lo que tarde mostrando “Hello World” te da la solución. Si habría retardo sería el de mientras se imprimen las hojas de papel con la respuesta (dentro de o fuera de contexto de aplicación) y luego el de mientras se forma una sonrisa en la cara del usuario. Cabe destacar que esto es jodidísimo pues el problema es de complejidad O(n!) XD El símbolo del factorial es el más cómico de las matemáticas jajaja.
11. Diseño, estructuración y simulación del doblamiento de proteínas
Y llegamos a la primera que me dejo: Whaaaat?!?!? XD Me puse a leer un poco sobre el rollo.
Cito desde [16]:
¿Que es el doblamiento de las proteínas?
Las proteínas son los caballos de trabajo de la biología — sus “nanomaquinas”. Antes de que las proteínas puedan llevar a cabo sus importantes funciones ellas se ensamblan a ellas mismas o se “doblan”. El proceso del doblamiento de las proteínas, aunque es critico y fundamental para virtualmente toda la biología, de muchas formas sigue siendo un misterio.
El asunto es que la simulación de un doblaje simple actualmente le lleva años a una computadora mientras que a la naturaleza le lleva microsegundos (alrededor de 30 a 100 trillones de veces más rápido) La gente de [16] utiliza 100 000 procesadores y aún nada… sigue siendo 1 billon de veces más lento que en la vida real. Puedes descargarte Folding@home que es como lo del SETI… pero aún nada.
¿De que serviría poder realizar estas simulaciones? Bueno comprender este fenómeno nos permitiría poder encontrar una cura al Alzheimer’s, SIDA y al cancer mucho más fácil.
¿Que haríamos con una computadora infinitamente rápida? Simplemente haríamos cualquier simulación de estas en lo que toma un “Hola mundo” y listo… que comiencen a buscar las curas.
10. Unificación de la arquitectura del computador
Hoy en día, la labor de la CPU y de las tarjetas gráficas esta en constante convergencia la una con la otra. Muestra de esto es el desarrollo de poder computo general sobre tarjetas gráficas o GPUs [17]. Esto, aunado al hecho de que el número de núcleos de procesamiento aumenta considerablemente cada día más lo que deja pensar que técnicas potentes como el trazado de rayos podrían implementarse incluso en tiempo real.
¿Que haríamos con una computadora infinitamente rápida? Si tuviésemos una máquina así, ¿para que congo haría falta tarjetas gráficas o tarjetas de sonido? Todas las peticiones que requieren soporte adicional simplemente fueran directamente para el procesador y ya. Sin mencionar los ahorros en horas hombre investigando para mejoras del hardware… se tendría una arquitectura unificada demasiado simple. Un ejemplo de que nos estamos tratando de acercar es la GPU de Intel que se llama Larrabee [18]:
9. Predicción del clima
Según pude leer, actualmente podemos prever el clima con hasta 8 días de anticipación. El límite teórico es de dos semanas y después de ahí, la Teoría del Caos toma control y no se puede saber nada. Lógicamente hacer este tipo de predicciones con dos semanas completas de anticipación sería un sueño pues todo pudiese planificarse, incluso aquellas grandes tormentas pudieran preverse con la suficiente previsión como para hacer evacuaciones y asegurar propiedades.
¿Que haríamos con una computadora infinitamente rápida? Según pude leer se utilizan, en parte, Navier-Stokes junto a datos estadísticos y otras cosas más. Con este poder de computo todos los días viéramos en nuestro mail el clima en dos semanas con un 100% de precisión y millones de vidas estuvieran a salvo!!!
Esta está como para el proyecto de este año… aunque debo leer un poco más.
8. Gráficos (creación / rasterización y modelado)
Llegamos a la favorita de muchos ¡! Hoy en día existen técnicas para lograr la creación de gráfico s las cuales aún no pueden hacerse como quisiéramos. Una ejemplo de estas es el trazado de rayos o el raytracing el cual, entre una de sus aplicaciones esta la de lograr la cuenta para saber como iluminar pero no de forma local, sino de forma global, es decir, pensar en como la iluminación de un cuerpo afecta a los demás y de esa forma para todos los cuerpos de la escena. Veamos un ejemplo:
La de arriba se generó simplemente con rasterización y la de abajo se generó con esta técnica para poder calcular lo necesario de forma de lograr la reflexión.
Veamos unas más arrechas generadas con POV-Ray Modeler [19]:
Esta se titula: The Wet Bird:
¿Que haríamos con una computadora infinitamente rápida? Todos los juegos utilizarían estas técnicas y en tiempo real!!! Es decir sin un Loading… que dure como tres días jajaja y se verían mas o menos así: Este es una toma de Quake 4 utilizando iluminación global con Trazado de Rayos:
De hecho esto en tiempo real ya se ha pensado como se puede leer en [20]. Pero no solamente esto pudiesemos:
- Unificar la edición de imágenes por vectores y por mapas de bits. Aquellos fanes del PS… la herramienta de blur…
- Verdadera edición 3d de vóxeles y más. Lo que el PS hace en simple canvas 2d ahora podría hacerse con la misma rapidez en 3d. Pillen esta imagen de Galaga:
Algo así como le que hace ZBrush pero con vóxeles de verdad!!! Pues en ZBrush no se usan vóxeles sino píxeles pero con un valor agregado de profundidad.
¿ZBrush?
7. Análisis de la música y del sonido
Jajajaja piensen… el Guitar Pro, donde tu escribes la partitura y el la suena… nice! Ahora piensen en el Score (verga me quedó arrecho el nombre ¡! Nadie me lo robe ¡!! ¬¬) En donde tu cargas un archivo mp3 y el desglosa cada instrumento y crea la partitura de cada melodía en particular
Eso se denomina extracción de información del sonido y no es simple de hacer. Pensando en el sonido como una señal, es un problema análogo a bordear solo las sillas de una foto o en general, extraer cualquier sub señal dada de una mar de señales ya mezcladas ¡! ¡! Ah no es fácil verdad ¿?
Es así: convertir de MIDI a MP3/WAV es esencialmente trivial. Solamente se graba lo que quieres que salga y ya. Pero hacer lo contrario – convertir de WAV a MIDI requiere de los algoritmos más fuertes de inteligencia artificial y de hecho está más allá del nivel de la ciencia… por ahora.
¿Que haríamos con una computadora infinitamente rápida? Para hacer esto esencialmente se debe descomponer la canción en su dominio de las frecuencias lo cual se logra a través de técnicas de STFT/FFT. Pero con una máquina así uno pudiese analizar todos los posibles subconjutos de frecuencias, amplitudes y offsets de las ondas sinusoidales originales hasta conseguir aquellas que representen a las primitivas que deseamos. Es básicamente como si sumaramos y luego quisiésemos dessumar… de hecho eso es lo que es
MIDI a MP3:
5 + 2 + 3 = 10
MP3 a MIDI:
10 = ¿?
Hay infinitas opciones:
10 = 9 + 1 +0
Pero si “escucháramos” a ‘9′ viéramos que no se parece en nada a ‘5′. De esta forma pudiésemos poner a la PC a descomponer y escuchar, descomponer y escuchar, hasta que de con que
10 = 5 + 2 + 3
Y se de cuenta de que el ‘5′ que obtuvo es igual al ‘5′ que originalmente se tenía.
6. Modelos para la teoría unificada
Si mi amor por el conocimiento fuera más grande y no quisiera simplemente hacer plata y ya… dedicara mi postgrado a computo aplicado a la cosmología. Aquí las aplicaciones se empiezan a poner potentes.
Básicamente aún no se conoce esta teoría es porque:
- Nos hacen falta datos. Pues aún no se conocen cosas que ocurren en una escala muy pequeña.
- Si aparecieran todos los datos necesitáramos de una ecuación que haga encajar a todos esos datos. Jodido.
¿Como ayudaría tener esta teoría?
- Inmensas ventajas en ingeniería de la misma forma que la relatividad en su momento conllevó a mejores materiales, fisión y el GPS o como la mecánica cuántica llevó a microchips más rápidos.
- Pudiésemos explorar los limites de los viajes espaciales.
- Saber saber si se puede viajar más rápidos que la velocidad de la luz o a través de agujeros negros.
- ¿Como se creo el universo? Pregunta que sería descubierta de una vez por todas.
¿Que haríamos con una computadora infinitamente rápida? La pusiésemos en fuerza bruta a probar toda la data junto a millones de diferentes ecuaciones sin nunca especie de aproximación…
Esa hipótesis no la había escrito dentro de la máquina perfecta… debería ser capaz de representar cualquier número.
Jejeje pues si… sigamos… a ver si encontramos una expresión que satisfaga toda la data!!!
Como dice la NASA: Revelar los secretos de la materia oscura ayudaría a lograr esta teoría unificada… o ayudaría a hacer helado más rápido.
Jejeje pillen lo que hay detrás de esta foto:
5. Iluminación global en gráficos
Jejejeje ya de esto hablamos jejeje pero lo cierto es que sip, es más jodido hacer iluminación global que un simple modelo.
4. Rápido desarrollo de software
Que difícil es hacer una aplicación: ordenar a la agente. Las metodologías. Da. No da. En fin. Una de las aplicaciones es el poder simplemente no tardarse nada haciendo un programa! La gente dela Ingeniería del Software se quedara sin trabajo ¿Por que? Bueno en todo el post yo todo lo dije que se podía hacer con fuerza bruta. De aquí que cualquier problema saldría por aquí jejeje ya que las máquinas no se tardarían nada.
En fin… ¿Que haríamos con una computadora infinitamente rápida? Llevar esta franela no tendría sentido (la cabo de inventar):
I can program like a god
(Brute force)
XD
3. Física y particulas Pt. 1: Para propósitos de entretenimiento
Actualmente casi los únicos juegos en los que se usa la física para el modelado del movimiento es en Pinball y en los juegos de deportes pues, aunque si se usa es muy poco.
¿Que haríamos con una computadora infinitamente rápida? Los efectos especiales en las películas serían súper sádicos y de hecho en los juegos, todo se sustituiría por un modelo discreto que utilizaría partículas y las ecuaciones para su movimiento serian resueltas en tiempo constante… como si fuesen simples sumas y de esta forma los juegos quedaran arrechisimos
Unos ejemplos: [21], [22] y [23] siendo este último la aplicación más sádica de la Mecánica de Fluidos que he citado jamas:
Hydrophobia: contiene un motor de simulación de dinámica de fluidos… lo que saca un Cell ¿ah?
2. Inteligencia artificial
Hoy en día siempre surgen esas películas pseudo paranoicas que buscan que la humanidad le tema al avance de lo que a falta de un mejor termino se bautizo (filosofía abierta aquí) como “Inteligencia artificial”.
Ya hay intentos de simular cerebros enteros y de hecho, aunque quizás sea un poco especulativo, se afirma que para el año 2030 las computadoras comenzaran a acercarse a la velocidad de computo del cerebro humano (unas 10000 trillones de operaciones por segundo)
Esto me lleva a citar la paranoia del Grry Goo en donde millones de nanorobots comienzan a devorar el mundo entero:
Tipo G.I. Joe (quien haya visto la película)
¿Que haríamos con una computadora infinitamente rápida? No voy ni a escribir nada de eso pues es filosoficamente complicado habla de gran poder de computo en esta área.
1. Física y partículas Pt. 2: Para propósitos de ciencias e ingeniería
Ahora si el número 1 y no podría ser otro que el estudio de la física de partículas.
¿Que podríamos hacer aquí?
- Olvidarnos de las hipótesis de simplificación de las mecánica del continuo!!! De hecho pudiésemos olvidarnos de aquellas de la física estadística de una vez: Pura y bruta fuerza y a simular directamente las interacciones moleculares de todos los fenómenos!!!!!
- Más aún!!! Simplemente pudiésemos buscar soluciones dentro de las leyes de la mecánica cuantica para simular cualquier interacción termodinamica en fluidos y en general para cualquier sustancia!!!!
En fin pudiesemos dar respuestas a preguntas como:
¿Que pasan cuandos dos galaxias colisionan?
Jejeje quizas es un pelo largo pero haciéndolo aprendi bastantes cosas ¡! Quizas en otro siguientes vaya colocando unas tres más para terminar el Top 17 a que sea un top 20 pero por ahora me despido… lean el blog el martes!!!













la frase de la cuatro rulea XD, aunque yo la colocaria asi : I can program like chuck!!
Yo hubiese metido algo alli de robotica… xD Pero esta genialisimo y super Geek!
Yo pondría la ocho de número uno
Esta fabuloso, esto va mas allá de lo geek
Buenos días excelente post queda tan corto para describir tan majestuosa obra de arte científico-computista, la visón que transmites es la más acertada, y creo que este top pudiese ser realidad en algún momento poco a poco debido a la gran cantidad de demandas tecnológicas que esta pidiendo a gritos este mundo; sin embargo, la parte biología del ambiente que esta causando mas embrollos cada día no le prestan atención y creo que con las súper computadoras se pudiera hacer algo u mejorar este mundo, pero ese proyecto de conciencia científico ecología algún día se dará, te felicito Lic. Edu otra maravilla para tu blog y para tu colección éxito en el evento del martes Dios te bendiga un exa-alumno de facyt jajajajajajajaja J.F Drums and Percusion # 19