Te traemos los mejores descuentos en Amazon España en Telegram
Un canal dónde las ofertas y los chollos son tus aliados estas navidades
¡Únete ya!
Conoce el futuro de la informática

Seguimos desvelando las novedades que llegan desde el Microsoft Ignite, en esta ocasión, es una visión de futuro. La computación cuántica dejará atrás la informática de los ceros y los unos y, Microsoft nos cuenta su visión de futuro.

Microsoft se prepara para la computación cuántica

Este mismo año Microsoft quiere sacar un lenguaje de programación para la computación cuántica, con integración con Visual Studio y un simulador de un ordenador cuántico. Con esto, los desarrolladores dispondrán de las herramientas para desarrollar y comprobar programas cuánticos que implementen algoritmos cuánticos.

La computación cuántica hace uso de la superposición y el mallado para realizar los cálculos. Donde los ordenadores tradicionales disponen de bits, donde cada bit representa un cero o un uno, los ordenadores cuánticos están hechos de qubits (quantum bits). Estos representan de alguna manera cero y uno de manera simultánea (una superposición de cero y uno). Esta capacidad de los qubits de representar múltiples valores ofrece a los ordenadores cuánticos una capacidad exponencial de cálculo frente a los ordenadores tradicionales.

Los ordenadores tradicionales están diseñados en base a puertas lógicas, grupos de transistores que combinan los bits de varias maneras para realizar operaciones. Esta construcción es invisible para la gente que escribe los programas. Los programas o los algoritmos no se escriben según las puertas lógicas, se hace uso de la aritmética y de las funciones de objetos y mucho más.

Esto no es lo mismo con los algoritmos cuánticos. Estos han sido desarrollados en un modo más relacionado con la ingeniería electrónica en lugar de la ingeniería de software, donde los algoritmos son circuitos cuánticos en lugar de los conceptos de programación típicos.

El lenguaje de programación cuántico de Microsoft, todavía sin nombre, ofrece una aproximación más sencilla a la programación cuántica, tomando elementos de C#, Python, y F#. Los desarrolladores todavía tendrán que comprender las puertas lógicas cuánticas y sus operaciones, pero serán capaces de usarlas para escribir funciones, con variables y ramas de otras construcciones típicas. Como ejemplo podemos ver el primer programa que todo desarrollador escribe en código cuántico.

Quantum teleportation program.

Como ya hemos indicado, este lenguaje se integra en Visual Studio. Esto supone no solo que nuestro código dispondra de color, también dispondrá de otras funciones de Visual Studio como Debug. Para poder simular el funcionamiento, Microsoft ofrecerá dos simuladores, uno que funcionará de manera local y otro mediante Azure. Esto permitirá a los desarrolladores examinar el código mientras se ejecuta.

Para poder disponer de una emulación local necesitaremos unos requisitos muy altos. Ofrecerá hasta 32 qubits, que requerirá de 32GB de RAM. Cada salto adicional requerirá doblar la cantidad de memoria requerida. En Azure dispondremos de una máquina de 40 qubits.

En el largo plazo, la ambición es que pueda realizarse el trabajo sobre un ordenador cuántico. Microsoft no dispone de uno pero está trabajando en uno. Para ello está trabajando en un qubit topológico. El mayor problema que se presenta respecto a los ordenadores cuánticos es la manera de organizar la información.

 

De momento, IBM ha sido capaz de conseguir crear un ordenador de tan solo 5 qubit. Microsoft espera que con el diseño que nos indica se puedan construir ordenadores cuánticos con los que se pueda trabajar. El problema será que la encriptación como la conocemos ya no será elevada sino un juego de niños. Toda la computación hasta la fecha no será segura.

De momento, es un problema para el largo plazo. Con el nivel de encriptación actual necesitaríamos ordenadores de 2n qubits para romper los encriptados actuales. Serían necesarios ordenadores de 4000 u 8000 qubits.

En Microsoft no quieren esperar a esa situación y están trabajando en algoritmos con resistencia cuántica. Estos algoritmos, están diseñados para funcionar en ordenadores tradicionales para mantenerse seguros en un mundo con grandes ordenadores cuánticos. Eso si, esto le llevará unos cuantos años a Microsoft.

El futuro de la computación cuántica está todavía muy lejos. En Redmond no quieren perder la oportunidad de ofrecer las herramientas y el simulador para programar. Este será lanzado al final del año y dispondrá de tutoriales y librerías para facilitar a los desarrolladores a familiarizarse con la computación cuántica.

  • Andrés

    La programación cuántica es algo más complicado que decir que un valor puede ser cero y uno a la vez. Son matemáticas más complejas que eso. No creo que sea habitual tener que programar un sistema cuántico. Posiblemente los procesadores cuánticos serán un añadido, como lo son ahora las GPU’s. Con un drivers criptográfico, o lo que se les ocurra.

    • Es complicado condensar todo en una entrada :) Queríamos mostrar un poco el nuevo lenguaje, la integración con Visual Studio y la visión que tienen al respecto

      • Andrés

        No estoy criticando la entrada. Me parece bastante interesante. Solo quería resaltar que todo el mundo cuando le preguntan sobre programación cuántica, hace la misma alusión, que puede vales cero y uno a la vez. Pero realmente, muy poca gente sabe de lo que está hablando.

        Y he oído autenticas burradas, como hablar de sistemas trinarios y otras majaderías.

        • Cristian Cárdenas

          Andrés, como conoces bien el tema podrias crear una entrada sobre computación cuantica con todo el detalle para que todos aprendamos, porque hablar es facíl…

          • Andrés

            Yo no se tanto de computación cuántica como para dar lecciones. Pero te cito una frase cogida de la Wikipedia

            El espacio de estados del qubit se puede representar mediante un espacio vectorial complejo bidimensional. Esto no es práctico, así que comúnmente se aprovecha la biyección (y el homeomorfismo) entre la superficie de una esfera y el plano complejo si este se ha cerrado mediante el punto del infinito.

            Voy a intentar poner un símil con mecánica clásica, de lo que son los computadores cuánticos. Imagínate que quieres calcular todos los puntos de una parabola. Una forma es coger la ecuación de la parábola y empezar a calcular puntos. Otra seria coger una cámara de video, tirar una pelota al aire y gravar la trayectoria. Cada vez que tiras la pelota tienes la solución a una parabola distinta. Y podrías decir que la solución son todos los puntos de la parabola a la vez.

            Pues se dice que el qubit puede tomar varios valores a la vez, porque representa una función de honda. Y te resuelve todos sus posibles valores a la vez.

          • Tric Ky

            No son mas que palabras que definen cosas que alguien que no haya estudiado matematiacas o fisica no entendera. Pero “espacio vectorial complejo bidimensional” es una chorrada que se aprende en primero de algebra en matematicas o fisica… “Biyectividad” se aprende a fondo tambien en primero de matematicas (y lo explican asi por encima en el colegio, aun me acuerdo en la EGB la explicacion con los diagramas de Venn), y lo que son homeomorfismos se aprende tambien en primero de matematicas (depende de la facultad, pero en muchas se estudia en primero).

            La dificultad de entender la computacion cuantica no esta en las definiciones matematicas, que no tienen ningun tipo de duda o ambigüedad… la dificultad esta en comprender la superposicion y el entrelazamiento en si.

            Pero en realidad, tampoco hay que entender el entrelazamiento o la superposicion para programar con este tipo de procesadores o lenguajes. Quienes lo tienen que entender son los que se dedican a desarrollar el hardware, y el software que hace funcionar ese hardware (la arquitectura). Al tio que escribe codigo todo lo anterior le da igual. El que tiene que saber muchas matematicas y fisica, al igual que hoy dia, es el tipo que desarrolla hardware y arquitectura.
            Al tio que desarrolla el software final, con que sepa que, un procesador cuantico con X qubits es capaz de darnos todas las soluciones posibles de una aplicacionf(y) al mismo tiempo, (y no como los procesadores actuales que calculan una a una), es mas que suficiente. Luego tendra que aprender el lenguaje concreto y/o SDK en particular que se utilice, y punto. Igual que hoy dia.

            Un saludo

          • Andrés

            Aunque sean conceptos que se empiezan a ver en primero de matemáticas, no suelen quedar claros hasta carios cursos después. Y si te metes con análisis funcional ya es la locura.

            Si que es verdad que al final tendrás un API y te limitaras ha llamar a unas funciones. Pero aun así, hay que tener los conceptos matemáticos claros para sacarle provecho.

            Seguramente los procesadores cuánticos terminen siendo algo complementario. Como lo son las GPU’s. No hay mucha gente que desarrolle sobre ellas.

        • Si lo se que no criticas jeje. Agradezco tus comentarios Andrés, son interesantes y constructivos no solo para mi sino para todos los usuarios

  • Andrés

    Ya existen emuladores cuánticos. Por ejemplo, CUDA tiene uno integrado.

  • Edwin Neil Morote

    Hasta en eso Google le lleva ventaja a Microsoft.A los de Microsoft les falta que alguien les ponga un cohete en el c… Para reaccionar porque en todo se quedan atrás.

    • Andrés

      En informática hay dos formas de trabajar. Ser muy rápido para sacar algo al mercado el primero, o tomarte las cosas con calma para ser el mejor. Para las pequeñas empresas la primera estrategia es mejor, las grandes empresas prefieren la segunda.

      Para los clientes de Microsoft, cuando van a elegir una tecnologia, en la que tienen que invertir dinero en horas de programador, prefieren elegir algo que les de seguridad, que sepan que la inversión que hacen no se va a ir al traste, aunque no sea la mejor opción del momento.

      Yo llevo 20 años trabajando sobre Visual Studio, he tenido que soportar muchas criticas y troleos por el camino. Pero en todo ese tiempo las tecnologías que siguen vigentes son las de Microsoft. Todos sus competidores van cayendo por el camino y Microsoft sigue, despacito pero sin pausa. Java, Flash, 5 versiones de html, php, python, … Todas han sido la hostia, pero c# sigue en el mercado tan fresco como el primer dia.

Ver todos los comentarios