Mathematica asume paralelismo - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Mathematica asume paralelismo

Hola otra vez. En el teclado Simón Sánchez y esta vez te voy a hablar sobre Mathematica asume paralelismo

Como la mayoría de los demás, me dirijo a la temporada de conferencias de Carolina del Sur hambriento de noticias increíbles sobre hardware nuevo. Realizo una demostración de computación cuántica, o fusiono un par de miles de procesadores Atom en un prototipo de computadora, y me dirijo al teclado como un padre estadounidense suburbano camina hacia el pavo en Acción de Gracias.

Hay otros tipos de anuncios que ocurren durante la SC sobre nuevos servicios, modelos comerciales, software, instalaciones de máquinas, etc. Tantos anuncios, de hecho, que la mayoría de ellos no pueden hacer otra cosa que un servicio superficial. Este artículo trata sobre uno de los principales desarrollos que no mencioné durante la ejecución de noviembre: el anuncio de Mathematica 7.

El día en que se inauguró el piso de exhibición en SC08, Wolfram Research anunció la última versión de su producto estrella, Mathematica 7. La herramienta ha sido durante mucho tiempo parte del «flujo de trabajo de pensamiento» para ingenieros, científicos y una serie de otros profesionales técnicos. Mathematica permite a los usuarios manipular declaraciones matemáticas y visualizar los resultados, usando notación matemática directamente en lugar de una gramática especial o una forma intermedia. Lo importante en el anuncio de Mathematica 7 es que marcó la introducción de características que transforman Mathematica en una puerta de enlace a través de la cual los usuarios pueden aprovechar el poder del procesamiento a gran escala de alto rendimiento sin cambiar su flujo de datos. funcionan y en muchos casos sin ser conscientes de que están trabajando en paralelo.

Mathematica es un entorno de manipulación simbólica que permite a los usuarios manipular expresiones matemáticas y lógicas directamente en la notación matemática que esperarían encontrar en un libro de texto o usar con lápiz y papel. Junto a esta capacidad de manipulación simbólica, existen sofisticados métodos numéricos que permiten al sistema reducir las expresiones a respuestas numéricas cuando sea apropiado. Los informes de los usuarios de muchos de los sistemas más populares indican que Mathematica, siempre fuerte en la manipulación simbólica, ha superado la brecha numérica que alguna vez tuvo en comparación con otros paquetes.

Vengo de un entorno centrado en MATLAB, por lo que estaba interesado en cómo las herramientas son diferentes entre sí. En contraste con el enfoque de Mathematica en la expresión en lenguaje simbólico, MATLAB ofrece a los usuarios un lenguaje similar a C y HPF, una distinción que refleja la diferencia fundamental en el tipo de pensamiento que las dos herramientas están diseñadas para soportar. Existe una generalidad generalizada de que si le interesan los métodos numéricos y la manipulación de matrices, MATLAB es la elección correcta. Por otro lado, si está más interesado en las matemáticas en general, o necesita expresar problemas teóricos directamente en el lenguaje de las matemáticas, Mathematica es la elección correcta. Ambos paquetes son bastante sofisticados y esta generalización no siempre me resulta útil.

Un usuario con el que hablé describió la elección entre MATLAB y Mathematica como una que depende de cómo está conectado su cerebro: si comienza naturalmente con ecuaciones en papel y luego avanza hacia los datos y programas, es probable que Mathematica sea una buena opción. adecuado para ti. Pero si primero desea comenzar con los datos y luego tratar de encontrar un modelo que se ajuste a lo que observa, MATLAB es el camino a seguir.

Sin embargo, estos entornos y otros similares ofrecen a los usuarios la posibilidad de utilizar una computadora para responder preguntas o resolver problemas sin tener que reducir el problema a una expresión en C o FORTRAN. Y muchos de los entornos matemáticos disponibles, incluidos MATLAB y Mathematica, ofrecen un amplio soporte para el procesamiento paralelo y una amplia variedad de herramientas de terceros.

Pero ¿Por qué es importante?

Los investigadores que utilizan aplicaciones informáticas para facilitar su investigación pueden esperar enfrentar dos discontinuidades a medida que los requisitos computacionales de sus aplicaciones crecen y requieren más recursos informáticos. La primera discontinuidad ocurre cuando una aplicación pasa de operar con un solo hilo de ejecución a múltiples hilos simultáneos. Hoy en día, esta transición puede tener lugar mientras el usuario permanece en el entorno operativo familiar de su escritorio, pero también puede cambiar a un pequeño recurso compartido. Este recurso compartido podría parecerse mucho a su entorno de escritorio familiar, o podría ser un entorno completamente nuevo que interrumpa su flujo de trabajo y conjuntos de herramientas existentes. Por lo general, la aplicación debe rediseñarse para aprovechar el potencial de rendimiento ofrecido al agregar más subprocesos de ejecución y esto puede requerir nuevas habilidades sustanciales o incluso la adición de nuevos miembros del equipo para paralelizar la aplicación.

El siguiente paso es hacia recursos que permitan la ejecución simultánea de un gran número de tareas: supercomputadoras. Esto a menudo implica rediseñar la aplicación para aprovechar el paralelismo de mayores órdenes de magnitud. Desafortunadamente, la transición casi siempre implica una interrupción completa de los flujos de trabajo anteriores, nuevas herramientas y nuevas formas para que el usuario interactúe con el activo durante el desarrollo. Literalmente, todo puede ser nuevo, desde la interfaz de línea de comandos (sin Gnome o la GUI de Windows en la mayoría de las supercomputadoras) hasta trabajar con un sistema de cola por lotes. Este es un problema para los usuarios que tienen que adaptarse a un entorno desconocido y, a menudo, hostil al enfrentarse a los problemas fundamentales de la ciencia y la informática, en su aplicación, que a menudo surgen a escala de supercomputación.

Las funciones incluidas en la actualización de Mathematica de noviembre pasado están diseñadas para minimizar ambos tipos de interrupciones en el flujo de trabajo. El soporte para el paralelismo ahora se incluye en todas las versiones del producto, lo que refleja la creciente ubicuidad de los procesadores multinúcleo. El enfoque, que la empresa llama «procesamiento paralelo interactivo inmediato», crea conciencia multinúcleo en la aplicación principal de modo que cuando surja la oportunidad de ejecutar en varios núcleos, la aplicación lo hará automáticamente. No es necesario cambiar la expresión del problema y el usuario no necesita marcar ninguna casilla de verificación. Mathematica usa múltiples núcleos en nombre del usuario cuando tiene sentido hacerlo.

Mathematica también admite la semántica para el paralelismo establecido explícitamente. Existen análogos paralelos a las funciones en serie, como Tabla y Mapa, que permiten a los usuarios especificar que ciertas partes de un cálculo deben ejecutarse en paralelo. También hay comandos que permiten a los usuarios definir una función y luego distribuir esa definición a múltiples procesadores para una evaluación en paralelo. En ambos casos, Mathematica gestiona automáticamente la generación, programación y encuentro de hilos y la recopilación de resultados, para que el usuario no tenga que especificar ese nivel de detalle.

Este screencast en el sitio web de Mathematica proporciona una excelente introducción al paralelismo explícito y proporciona una ventana a cómo funciona Mathematica. También encontrará muchos más screencasts y ejemplos en vivo en el sitio si desea ver más detalladamente cómo funciona Mathematica.

Pero, ¿qué pasa con el crecimiento más allá de los núcleos en un socket? Wolfram agregó gridMathematica en esta versión para proporcionar semántica paralela para permitir a los usuarios acceder a todo, desde múltiples sockets en una sola caja hasta clústeres HPC. gridMathematica tiene licencia en dos versiones, local y servidor. La versión local agrega cuatro núcleos más a los cuatro con licencia en la versión estándar de Mathematica y permitirá a los usuarios aprovechar múltiples sockets en una sola máquina. La licencia del servidor está disponible en paquetes de 16 núcleos y puede admitir un procesamiento a mayor escala. gridMathematica puede integrarse con planificadores de cargas de trabajo por lotes comunes, pero no es necesario.

Wolfram creó lo que él llama Lightweight Grid System para administrar los recursos del clúster que podría necesitar si los bucles se obtienen de recursos que generalmente se usan para otra cosa. Curiosamente, gridMathematica admite clústeres con nodos heterogéneos: siempre que Mathematica admita una plataforma o sistema operativo en particular, gridMathematica puede aprovecharlo en un solo clúster. Esto significa que los clústeres se pueden crear a partir de cualquier combinación de plataformas de 32 y 64 bits que ejecuten Windows, Mac OS, Linux y Solaris.

Wolfram ha ampliado aún más este concepto con una función planificada llamada HPC Cloud Service para Mathematica. Esta función permitirá a los usuarios que aún no tienen un clúster ejecutar su aplicación Mathematica en un recurso comercial en la nube. Los usuarios pueden aprovechar el servicio en la nube haciendo clic en algunos botones en la GUI de la nube con su cuaderno de Mathematica existente para pedirles que ejecuten el cuaderno en la nube.

El concepto es que Mathematica analiza automáticamente su cuaderno, crea los paquetes de trabajo y los ejecuta en paralelo, recopila los resultados en paralelo y los envía de regreso al escritorio donde el usuario inició la solicitud. Anunciada originalmente en noviembre, Wolfram Computational Knowledge Engine ha retrasado la oferta de HPC en la nube de Wolfram | Compañía Alpha. Se desconoce cuándo se espera el lanzamiento, aunque la compañía señala que se continúa trabajando en la oferta de servicios en la nube de HPC.

Entonces, ¿dónde encaja Mathematica en su entorno? Si usted o los usuarios de su centro utilizan principalmente aplicaciones de Fortran o C maduras que han estado en desarrollo durante muchos años, es posible que no se ajusten en absoluto. Todos estos entornos requieren tiempo para dominarlos y Mathematica no es una excepción. Por otro lado, si ya tiene usuarios de entornos matemáticos de un gusto u otro, o está complaciendo a los usuarios que están desarrollando nuevas aplicaciones y que son especialistas en dominios en lugar de «personas HPC», Mathematica podría ser una buena solución. Tiene el potencial de aumentar la efectividad de sus usuarios y brindarles niveles más altos de rendimiento de una manera mucho más fácil de administrar que pasar directamente de una idea (o un prototipo en serie funcional) a una aplicación tradicional explícitamente paralelizada.

Deberías compartir en tus redes sociales para que tus colegas lo vean

??? ? ? ???

Comparte