¿Un lenguaje de programación más simple y rápido? - Calendae | Informática, Electrónica, CMS, Ciberseguridad

¿Un lenguaje de programación más simple y rápido?

Hola otra vez. Te habla Simón Sánchez y en esta ocasión te voy a hablar sobre ¿Un lenguaje de programación más simple y rápido?

La comunidad HPC ha descubierto supercomputadoras que superan docenas de petaflops de potencia informática al combinar miles de procesadores multinúcleo, a menudo junto con aceleradores como las GPU NVIDIA y los coprocesadores Intel Phi. Por supuesto, estos sistemas multimillonarios son tan útiles como los programas que se ejecutan en ellos, y el desarrollo de aplicaciones que puedan aprovechar todos esos núcleos requiere los esfuerzos concertados de programadores altamente capacitados.

Las herramientas de programación de HPC actuales no logran hacer frente a los desafíos que presentan las arquitecturas heterogéneas a gran escala y las demandas de big data. Un marco como MPI puede ser difícil de aprender y usar y puede llevar mucho tiempo incluso para los expertos establecidos. Una nueva colaboración de código abierto llamada «Julia» tiene como objetivo simplificar el proceso de codificación proporcionando «un lenguaje de programación potente pero flexible para la informática de alto rendimiento».

«En los últimos años, la gente ha comenzado a hacer cosas mucho más sofisticadas con big data, como análisis de datos a gran escala y optimización de carteras a gran escala». Él dice Alan Edelman, profesor de matemáticas aplicadas que lidera el proyecto Julia. «Existe un requisito para todo, desde el reconocimiento de escritura a mano hasta la evaluación automática del examen».

Edelman, afiliado al Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT, señala la falta de profesionales capaces de programar en este nivel, señalando que no solo es difícil, sino que requiere mucho tiempo.

«En las conferencias de HPC, la gente tiende a ponerse de pie y jactarse de haber escrito un programa para que se ejecute 10 o 20 veces más rápido», dice Edelman. «Pero es el tiempo humano lo que más importa en última instancia».

Los orígenes de Julia se remontan a una startup de HPC en la que participó Edelman, llamada Interactive Supercomputing. Después de que Microsoft adquiriera la empresa en 2009, Edelman lanzó un nuevo proyecto con el objetivo de desarrollar un nuevo entorno de programación de alto nivel que fuera rápido y eficiente y adecuado tanto para expertos en el dominio como para programadores experimentados.

El equipo de desarrollo incluye a Jeff Bezanson, un estudiante de doctorado en el MIT, y Stefan Karpinski y Viral Shah, ambos anteriormente en la Universidad de California en Santa Bárbara. Todos habían probado MPI (interfaz de paso de mensajes), la popular herramienta de procesamiento paralelo, pero descubrieron que no era la interfaz más fácil de usar.

«Cuando programa en MPI, está tan feliz de haber terminado el trabajo y obtenido algún tipo de rendimiento, nunca lo cambiará o nunca lo cambiará», dice Edelman.

La misión del grupo era desarrollar un nuevo lenguaje con soporte de procesamiento paralelo MPI que pueda generar código que se ejecute a la velocidad de C.También debe ser fácil de aprender y usar como Matlab, Mathematica, Maple, Python , y R, y debe ser de código abierto, como Python y R.

El esfuerzo condujo al lanzamiento de Julia en 2012, lanzado bajo una licencia de código abierto del MIT.

Edelman informa que Julia, aunque todavía es un trabajo en progreso, superó las expectativas del grupo.

«Julia te permite entrar y desarrollar rápidamente algo utilizable, luego modificar el código de manera muy flexible», dice. «Con Julia, podemos jugar con el código y mejorarlo y volvernos muy sofisticados muy rápidamente. Ahora todos somos superhéroes: podemos hacer cosas que ni siquiera sabíamos que podíamos hacer antes».

El lenguaje utiliza un enfoque de «envío múltiple» que permite a los usuarios definir el comportamiento de la función mediante combinaciones de tipos de argumentos. Un sistema de tipo dinámico permite una mayor abstracción, lo que refuerza el rendimiento y admite grandes cantidades de datos. Los programas se pueden crear rápidamente; cuando los programadores igualmente buenos compiten, la programadora Julia siempre gana, según Edelman.

Edelman no solo es un creador y desarrollador de Julia, sino que utiliza el lenguaje de simulación de Montecarlo para su «otro» trabajo como matemático teórico.

«Me encanta usar Julia para Monte Carlo porque se presta a muchos paralelismos», explica. «Puedo tomar todos los procesadores que necesito. Puedo tomar memoria compartida o distribuida de diferentes computadoras y juntarlos. Cuando usas un procesador, es como tener una lupa, pero con Julia siento que tengo un microscopio electrónico. Nadie lo tuvo durante un tiempo y era todo mío. Me encantó «.

Quizás lo más interesante de Julia es que es el espíritu de colaboración y comunidad extendida lo que está habilitado por la combinación de facilidad de uso y licencias de código abierto. Edelman dice que personas de todo el mundo están trabajando en el proyecto. Las partes separadas geográficamente pueden incluso funcionar en el mismo software en tiempo real.

Deberías compartir en una historia de tu Instagram para que tus colegas lo disfruten

??? ? ? ???

Comparte