07 Jan

Microsoft y la apuesta por la computación cuántica

Recientemente Microsoft anunció el lanzamiento de su kit de desarrollo para computación cuántica, el cuál se basa en el nuevo lenguaje Q# (pronunciado Q-Sharp). El kit es una adición a Visual Studio que permite codificar en Q# para ejecutarse en el mismo ordenador a través de un simulador cuántico (para pequeñas aplicaciones, menos de 30 qubits lógicos), o en la nube a través de Microsoft Azure para aplicaciones de mediana complejidad (hasta 40 qubits lógicos).

Una característica de este kit es que los scripts desarrollados podrán ser interpretados por el hardware cuántico una vez disponible en el mercado, es decir que ayuda a la divulgación y popularización de esta nueva y revolucionaria tecnología.

El siguiente video es una presentación de esta tecnología y la apuesta de Microsoft

En escencia la computación cuántica es un nuevo paradigma que basa su arquitectura en cubits los cuáles a diferencia de los bits pueden tomar múltiples valores al tiempo, lo que permite multiplicar la cantidad de combinaciones posibles y por ende expandir la velocidad de información transmitida, que traducido a términos prácticos puede significar un incremento de hasta 100 millones de veces sobre la velocidad de un computador convencional (aunque en el momento las versiones estables han llegado a computadores de 4000 veces más rápido, ver link1 y link2).

En vista de los revolucionaros resultados que se pueden obtener con esta tecnología, varias empresas están enfocando esfuerzos en tomar ventaja de ella y desarrollar aplicaciones en campos donde la complejidad computacional es elevada. Entre las posibles aplicaciones se encuentra la inteligencia artificial en el análisis de imágenes y la implementación de algoritmos de aprendizaje de máquina, la medicina para el análisis en tiempo real de imágenes y patrones que permitan soportar el diagnóstico y la detección temprana de enfermedades como el cancer. También se explora la utilización en modelos climáticos para mejorar la modelación y predicción. Las finanzas también se pueden ver beneficiadas gracias a la mejora de los algoritmos transaccionales y de modelación económica. La logística y las cadenas de suministro podrán utilizar esta tecnología para mejorar el cálculo de rutas óptimas (ver optimización). Para ver una lista más detallada los invito a consultar el siguiente artículo: Five ways quantum computing will change the way we think about computing

El siguiente video es una presentación y tutorial para desarrollar un ejemplo en Visual Studio en lenguaje Q#

Muy interesante esta apuesta de Microsoft, ya hemos hablado en este blog del viraje de esta empresa hacia un enfoque de innovación basado en Analytics (ver post).

21 Aug

SimOpti: Video

En Stream Systems hemos diseñado un nuevo producto llamado SimOpti, un simulador en línea destinado a terminales de petróleo que permite analizar diversos escenarios y optimizar la configuración de tanques, rutas, oleoductos entre otros en un ambiente seguro, confiable y eficiente. El siguiente es un video tipo tablero (white board) que explica con un sencillo ejemplo el tipo de aplicaciones que se pueden resolver con este sistema.

El lanzamiento de este producto esta planeado para el 28 de septiembre de 2016.

16 Aug

Introducción a HeuristicLab

heuristic1

Recientemente he comenzado a trabajar con HeuristicLab (HL), un software de optimización heurística desarrollada por un grupo de colaboradores del Laboratorio de Algoritmos Heurísticos y Evolutivos (HEAL) de la Universidad de ciencias aplicadas de Viena.

HeuristicLab permite desarrollar una gran variedad de modelos, desde algoritmos de búsqueda y análisis hasta aplicaciones industriales, pasando por problemas de optimización combinatoria (VRP,  job shop, knapsack, etc.), modelos de clasificación, e incluso puede ser integrado con aplicaciones externas tales como Matlab, AnyLogic, Scilab, etc., para la generación de escenarios, el análisis de resultados y la optimización de problemas complejos.

HL comenzó en el año 2002 y ha sido desarrollado en Microsoft .NET y C#, siempre con enfoque principal en la educación e investigación.

HeuristicLab es un software gratuito (licencia GNU del Free Software Foundation) y sus librerías pueden ser distribuídas e integradas en otros programas.

HL cuenta además con una interfaz bastante sencilla que permite ejecutar los modelos de muestra, modificarlos e incluso crear nuevos algoritmos bien sea por código o utilizando la funcionalidad gráfica que permite arrastrar y conectar elementos para controlar el flujo del proceso de decisión.

Finalmente, HL puede ser utilizado para procesamiento paralelo en modelos de gran demanda computacional.

Una lista mas completa de las funcionalidades de HL puede ser consultada en el siguiente flyer.

 

Para mayor información los invito a visitar el sitio web de HeuristicLab en el siguiente link, particularmente la sección de documentación.

Así mismo, los invito a ver el siguiente video que presenta las principales funcionalidades de HeuristicLab.

Próximamente estaré publicando otros posts con aplicaciones de HeuristicLab, particularmente en integración con AnyLogic.

30 Jun

Presentación: R como herramienta de soporte para Analytics y simulación

Recientemente tuve la oportunidad de dar una charla sobre las ventajas de utilizar R como soporte para profesionales en Analytics y Simulación.

Si bien existen diferentes software especializados para realizar análisis de datos cada uno con sus ventajas y desventajas, en los últimos años los especialistas de diversas disciplinas han coincidido en la necesidad de estandarizar procesos y análisis en un solo lenguaje, la gran mayoría han optado por R (Python es otra buena alternativa). Esta presentación pretende mostrar las ventajas del lenguaje R (y algunas aplicaciones) como herramienta de soporte a profesionales que requieren manipulación y análisis de datos, en mi caso particular como consultor en optimización y simulación.

A continuación el material de soporte de la presentación.

26 Jun

Muestreo y análisis de resultados usando AnyLogic PLE

marbles1

  • Intro
  • Teoría
  • AnyLogic
  • Muestreo
  • Descarga

Una vez construido un modelo de simulación es necesario ejecutar un Análisis Resultados para garantizar la robustez de del modelo y la validez de los hallazgos.

El análisis de resultados consiste en ejecutar múltiples repeticiones de un experimento haciendo o no cambios a una o varias variables de manera que se describa el comportamiento general del modelo y se identifiquen los patrones de los resultados dados diferentes valores de las variables de entrada. Si estas repeticiones se hacen con cambios incrementales en las variables de entrada, se conoce como Análisis de Sensibilidad. Si las variables de entrada tienen una distribución de probabilidad asociada se puede generar una secuencia combinada basada en dicha distribución, lo que se conoce como Monte Carlo. Cuando las variaciones son estratificadas (escalas uniformes) sin importar la distribución asociada se conoce como Variación de Parámetros.

AnyLogic en su versión PLE permite realizar Variación de Parámetros y Optimización. Versiones más avanzadsa como la versión profesional permiten además realizar Comparación de Experimentos, Monte Carlo, Análisis de Sensibilidad, Calibración y Experimentos personalizados (ver imagen).

exp

Siendo la variación de parámetros el único tipo de experimento disponible en la versión PLE para la fase post-simulación a continuación se explica cómo hacer muestreo y análisis de resultados usando este módulo y algunas maneras de implementar rutinas que incrementen su funcionalidad.

Al construir un modelo de simulación se debe establecer todo el espectro y distribución de las variables de entrada (parámetros). Para ello utilizamos muestreo y análisis estadístico. Esta parte pre-simulación será tratada en otro post.

Al finalizar el modelo, se deben ejecurar múltiples repeticiones con diferentes valores aleatorios y parámetros para establecer el rango total de salida. Idealmente se deben simular todos los escenarios posibles, sin embargo, en muchas ocasiones el número total de escenarios es tan alto que simular el espectro completo tarda demasiado. En estos casos es recomendable utilizar muestreo sobre los parámetros para elegir combinaciones estadísticamente representativas.

A continuación se explican los diferentes tipos de muestreo.

Tipos de Muestreo

Muestreo Aleatorio: Consiste en generar muestras eligiendo números al azar sobre la distribución de probabilidad acumulada. Esta técnica requiere un elevado número de muestras para conseguir una representación adecuada de la variable en estudio (cientos o miles de repeticiones).

Muestreo Estratificado: Consiste en segmentar la variable en grupos o estratos y elegir valores aleatorios al interior de cada sub-grupo para la simulación. Los estratos son generados a partir de información típica de la distribución observada. Requiere también de un elevado número de repeticiones aunque menor que el muestreo aleatorio.

Muestreo por Hipercubo Latino: Consiste en asignar distribuciones de probabilidad a cada variable de entrada y distribuir cada una en un número de intervalos equiprobables. Luego se eligen valores al interior de cada grupo y se combinan con las demás dimensiones de las otras variables, para obtener vectores completamente independientes y aleatorios como entradas del modelo. Dado que cada muestra es independiente, se requieren menos repeticiones pues se asume que una serie completa de experimentos con esta entrada es estadísticamente independiente.

Un inconveniente típico en este último método es que la representatividad de los resultados solo se puede evaluar luego de ejecutar todos los experimentos y en caso de no ser satisfactoria, se debe volver a empezar aumentando la cantidad de intervalos equiprobables. Una solución a este inconveniente es la utilización del Hipercubo Latino Escalable.

Segmentación

En otras ocasiones no es necesario conocer todo el espectro sino un segmento de él. Si el segmento es contínuo (ejemplo una variable puede distribuirse entre 100 y 200 visitas por hora pero solo se desea evaluar el impacto de mas de 160 visitas al día) se considera como una variación de parámetros con menos combinaciones. Cuando  las variaciones son discontinuas y combinadas, es mejor definir los escenarios previamente y luego ejecutar experimentos basados únicamente en la matriz de entrada. En AnyLogic esto se implementa fácilmente utilizando bases de datos o archivos externos.

Implementación en AnyLogic

Una vez se elige un nuevo experimento de tipo variación de parámetros, AnyLogic crea una nueva sesión en blanco donde se define la memoria total a utilizar, el agente de referencia (usualmente Main) y la forma como los parámetros van a interactuar (ver imagen). Estos parámetros pueden ser fijos o variables en un rango, es decir se fija un valor único o el valor inferior y superior, así como el paso (step) para su variación uniforme.

parVar0

De esta forma, si se tiene un modelo con 10 parámetros de entrada de las cuales 2 se planean fijas y 8 variables con 10 pasos por cada una, se deben tener al menos 100 millones de experimentos para cubrir una sola repetición de todas las simulaciones.

Ejemplo

Un ejemplo es el siguiente modelo en el cuál un taller cuenta con cuatro estaciones de trabajo en serie, cada una con un buffer de entrada con capacidad limitada. Las estaciones cuentan con un tiempo de procesamiento tn (9, 12, 8 y 14 minutos respectivamente) distribuido triangularmente más o menos 10% (ver imagen del modelo).

parVarMain2

Luego de haber ingresado 1000 unidades al sistema el modelo se detiene y verifica los indicadores claves de rendimiento. Estos son:

  • % de piezas completadas
  • Piezas en proceso promedio (WIP)
  • Tiempo de ciclo promedio
  • Tiempo total de operación del taller
  • Diferencia promedio de la utilización del mayor y menor buffer

Si suponemos que las capacidades de cada buffer pueden variar entre 1 y 20 unidades lo que representa 20 pasos ya que los variaciones son discretas, se cuenta en total con 160,000 diferentes configuraciones para evaluar todo el espacio (sin réplica).

Para comprobar esto creamos un experimento tipo variación de parámetros y asignamos los siguientes valores (ver imagen).

parVarImg1

Hacemos click en Create default UI para crear la interfaz. Luego añadimos 5 estadísticas locales (statComplete, statWIP, statCycleTime, statTotalTime, statDiffQ) en las cuales guardaremos el resultado de cada experimento así como tres histogramas (WIP, tiempo de ciclo y tiempo total).

En la sección indicando qué hacer luego de cada simulación (After simulation run) añadimos el siguiente código:

Y finalmente ejecutamos el experimento (ver imagen inferior).

parVarImg3

Como se puede observar ejecutar 160 mil  experimentos tomó cerca de 8 minutos (478.1 segundos), y los estadísticos permiten establecer que:

  • El % de copletado se encuentra entre 91.6 y 99.2 con media de 95.4%
  • El WIP entre 0.02 y 70.2 con media de 36.4 unidades
  • El tiempo de ciclo entre 112.2 y 1,077.4 con media de 613.8 minutos
  • El tiempo total de operación entre 12,823 y 13,998 con media de 13,395 minutos
  • La diferencia promedio de utilización de buffers entre 0.4% y 94.9% con media de 37.9%

Según se requiera se pueden crear experimentos específicos de optimización que arrojen la configuración indicada para por ejemplo minimizar el tiempo total de ciclo o minimizar el tiempo total de operación o minimizar el trabajo en proceso (otros post se dedicarán a la creación de experimentos de optimización).

A continuación explicaremos dos formas de realizar el muestreo de manera que el tiempo total de experimentación se reduzca.

Método Alternativo 1: Hipercubo usando R y AnyLogic

Creamos un hipercubo latino utilizando R y transferimos estos valores a AnyLogic para ejecutar específicamente simulaciones de estas configuraciones.

En primer lugar creamos un nuevo experimento de tipo variación de parámetros. Esta vez no asignamos variabilidad a los parámetros de entrada (ver imagen). Creamos la interfaz haciendo click en Create default UI.

parVarRImg4

Un inconveniente que tiene esta técnica es que la cantidad de experimentos (dimensiones del cubo) son definidas a través de la cantidad de réplicas (o usando la forma libre), en este caso escogemos un total de 2000 experimentos para representar el espacio total de 160,000 (representando un 1.25% del total de la población).

A continuación cargamos la librería RCaller y la importamos al experimento. Así mismo definimos las acciones a realizar antes y después de cada simulación pasar los parámetros y capturar las estadísticas (ver imágen siguiente).

parVarRImg5

Al igual que en la variación de parámetros, en este experimentos creamos cinco estadísticos y tres histogramas.

Adicionalmente creamos tres variables: totalExperimentos (int), dimensions (int) e hypercube (int[][]). Finalmente creamos una función llamada getHyperCube con el siguiente código:

Esta función se ejecuta al inicio de toda la serie de experimentos para crear el hipercubo en R (utilizando el paquete lhs) e importarlo a AnyLogic para almacenarlo en la variable local hypercube. Este hypercubo en realidad es una matriz donde cada fila representa la configuración de los buffer de cada experimento a correr.

parVarRImg6

Al ejecutar el experimento encontramos:

  • El tiempo total de simulación fue de tan solo 21 segundos (23 veces más rápido que el experimento original)
  • El % de copletado se encuentra entre 93.4 y 99.0 con media de 96.1%
  • El WIP entre 2 y 54 con media de 29 unidades
  • El tiempo de ciclo entre 138.6 y 867.59 con media de 511.9 minutos
  • El tiempo total de operación entre 13,061 y 13,947 con media de 13,508 minutos
  • La diferencia promedio de utilización de buffers entre 1.5% y 93.2% con media de 28.3%

Si bien las distribuciones no reflejan los mismos límites superiores e inferiores de la variación de parámetros anterior, los valores hallados se aproximan bastante, con un tiempo de simulación 23 veces inferior. Esta técnica es particularmente útil cuando se cuenta con capacidad limitada de computación y experimentos complejos donde el espectro completo puede tomar días enteros en ser simulado por tanto una muestra con resultados similares en menor tiempo es muy necesaria.

Método Alternativo 2: Segmentación

En este caso asumimos que solo deseamos simular las siguientes configuraciones:

  • Buffer 1: variando de 5 a 15 (step=1)
  • Buffer 2: solo puede ser 1, 5, 10 o 15
  • Buffer 3: siempre 5
  • Buffer 4: valores pares de 2 a 20

En este caso el total de experimentos a realizar es 440 (11*4*1*10).

Creamos entonces un experimento tipo variación de parámetros de forma libre con 440 repeticiones (ver imagen) y añadimos un archivo de Excel donde hemos creado previamente las 440 configuraciones.

parVarImg6

En las acciones antes y después creamos el siguiente código que permite leer el archivo de Excel y llenar la variable local hypercube con todas las configuraciones requeridas. Adicionalmente capturamos las estadísticas de rendimiento al finalizar cada experimento.

parVarImg7

Ejecutamos el experimento.

parVarImg8

Esta vez el experimento tomó solamente 2.3 segundos (sin repetición). El usuario puede repetir varias veces la matriz Excel y aumentar el número de experimentos en AnyLogic para añadir repeticiones.

El modelo soporte, la librería RCaller y el archivo Excel pueden ser descargados en el siguiente link.

Descarga

 

 

14 May

Integrando AnyLogic y R: Gráfico de control

  • Intro
  • Modelo AnyLogic
  • Resultados
  • Qué hacer

Un concepto común en la ingeniería industrial es el control estadístico de procesos, el cuál consiste en la definición de un proceso a partir de rendimientos estándares de manera que el control de calidad de los productos no requiera de una precisa medición de cada unidad, sino de la revisión de los estadísticos del proceso. Si estos tuvieron alguna desviación frente a sus estándares (media y desviación típica), se sospecha que pueden haber fallas de calidad en los productos y solo entonces se procede a la revisión individual de los productos, lo que reduce sustancialmente los tiempos de ciclo en la producción (ver link).

Una herramienta fundamental para esto es el gráfico de control el cuál permite visualizar para una actividad o proceso específico, el histórico de tiempos de proceso en secuencia, de manera que se establezca el tiempo promedio y los límites superiores e inferiores del proceso. Estos límites marcan la frontera del control estadístico, así un ciclo cuyo tiempo esté por encima del límite superior o por debajo del inferior, se presume anómalo desde el punto de vista estadístico. Los administradores de procesos deciden entonces si se trata de un hecho puntual para una unidad atípica o si es una tendencia del proceso y por ende se requieren tomar medidas bien sea frente al lote de producción, al recurso (un operario fatigado o una máquina próxima a mantenimiento) o a la materia prima entre otras.

Los límites de control son usualmente definidos en función de la desviación estandar del proceso, en general tres desviaciones hacia arriba y hacia abajo son la norma, lo que entre otras es la base de la metodología six sigma.

El gráfico siguiente es una muestra de cómo luce un gráfico de control, donde se evidencia que los ciclos de 4:30 y 6:00 estan por encima del límite superior. Adicionalmente se evidencia que el proceso en general está aumentando su tiempo promedio de ciclo lo cuál puede ser debido a una fatiga del recurso y por tanto requiere de una acción preventiva.

qchart

En ocasiones los límites son controlados artificialmente para aumentar o reducir la variabilidad. Esto sucede cuando uno o varios componentes no son homogéneos o bien cuando se quieren fijar controles específicos (ejemplo reducir los límites a dos desviaciones estándares para los pedidos de un cliente específico o para los productos de exportación).

En este tutorial mostraremos cómo generar estos gráficos de manera automática en AnyLogic con la ayuda de R y cómo hacer uso de ellos para controlar un proceso.

El modelo a simular será una estación de trabajo con una fuente y una salida. El tiempo de procesamiento será una función que explicaremos mas adelante. Adicionalmente se requiere una imagen sin contenido, un dataset y combobox y dos sliders (ver imagen).

alscreenshot_qcc

Agregamos a la lista de dependencias del modelo la librería RCaller-2.5.jar

Rcaller_dependency

La siguiente es la función para controlar el tiempo de proceso tProc()

La cuál integramos en el servicio como tiempo de espera (ver imagen). Adicionalmente agregamos el código que permite actualizar el gráfico de control cada cierta cantidad de piezas procesadas (variable each)

delay_qcc

La función updateControlChart() conecta AnyLogic con el ejecutable de R (RScript), transmite datos y realiza operaciones, en este caso crea el gráfico de control, el cuál se guarda en una dirección temporal del ordenador. La dirección es usada para cambiar periódicamente la fuente del objeto imagen lo que actializa el gráfico de control.

Esta función permite además identificar las piezas cuyo tiempo están por encima de los límites de control (variable violations). Si hay al menos una pieza en esta categoría, el ID de la pieza y el tiempo de proceso pueden ser conocidos haciendo click en el botón "Defectos". Los límites de control también pueden ser fijados haciendo click en el combobox "Fijar Límites" y variando los sliders.

El siguiente es un video demostrando el modelo de simulación en funcionamiento.

Los archivos pueden descarcarse en el siguiente link.

Este modelo fue hecho usando AnyLogic 7.3.3 y Microsoft R Open V 3.2.4, sin embargo como se muestra en el video, es posible cambiar el origen de RScript para usar el script original de R.

Este modelo es solo una muestra de las posibles aplicaciones que se pueden hacer integrando AnyLogic y R, sin embargo R cuenta con una serie de paquetes especializados en muchos campos que permiten ampliar la gama de aplicaciones. Un ejemplor puede ser utiizar paquetes de análisis estadístico (ejemplo MASS, statmod) para identificar distribuciones de probabilidad atípicas y generar predicciones sobre tiempos de operación en las estaciones para mejorar la alocación de tareas, o aplicar minería de datos  (paquetes car y caret) para clasificar actividades según rendimiento, o incluso utilizar aprendizaje autónomo (machine learning) para predecir comportamientos que mejoren la programación y sequenciación (nnet, neuralnet, RSNNS, deepnet, darch).

También es posible utilizar librerías especializadas para diseñar gráficos más avanzados que los suministrados por AnyLigic (ggplot).

En el próximo post de esta serie se explicará un ejemplo aplicando minería de datos y aprendizaje autónomo en R para optimizar un proceso de mediana complejidad.

 

09 May

Concurso de videos de Analytics de la revista Science 2

Recientemente la revista Science realizó su concurso anual de videos cortos de Analytics o historias cortas de datos (ver post).

Los videos finalistas se encuentran en la siguente página (ver link)

Los ganadores fueron divididos en tres categorías: Estudiante, Profesional y Corporativa.

A continuación los videos ganadores.

Ulf Aslak Jensen (categoría estudiante). "Como se reune la gente: una visualización interactiva"

RJ Andrews, Info We Trust (categoría profesional). "Están las gacelas en peligro?"

Daniel Gallagher, NASA’s Scientific Visualization Studio (categoría profesional). "Pérdida de la atmósfera marciana explicada"

 

24 Apr

Microsoft R Open: La apuesta de Microsoft en Analytics

Revo_varios

A inicios de 2015 el gigante informático Microsoft adquirió Revolution Analytics, empresa especializada en la aplicación de Analytics y el desarrollo de librerías utilizando el lenguaje R (ver noticia y anuncio oficial). Inicialmente la adquisición tuvo muchos cuestionamientos pues las aplicaciones de Revolution son en su mayoría basadas en software de fuente abierta (open source) y de distribución gratuita (y algunas versiones empresariales con costo claro está), lo que dista del modelo de negocio de Microsoft. Adicionalmente el concepto de Analytics es algo que hasta ahora había estado fuera de la órbita de los productos y aplicaiones Microsoft, no obstante fue soportado como una incursión para soportar ciertas funcionalidades de Windows 10 como Cortana y la integración con servicios de almacenamiento y procesamiento como Azure.

Posteriormente se lanzó Microsoft R Open (MRO, antiguamente Revolutions R Open), el cuál es un set completo del lenguaje R combinado con algunas librerías adicionales para el procesamiento mutitarea y de operaciones matemáticas como MKL (Math Kernel Library) que permite aumentar la velocidad de procesamiento. Adicionalmente cuenta con un repositorio unificado de paquetes lo que asegura que los proyectos no se afecten por cambios de versiones.

Además de MRO (antes RRO), existe la versión profesional Microsoft R Server MRS (antiguamente RRE Revolution R Entreprise), la cuál incluye las mismas funcionalidades básicas mas ciertas librerías exclusivas para aplicaciones distribuidas y de big data.

mro

Uno de estos paquetes es RevoScaleR que incorpora el formato XDF (External Data Frame) para manipulación de grandes volúmenes de datos (Big Data).

RevoScaleR incorpora algoritmos especiales para manipular matrices de gran tamaño rápidamente. En el siguiente gráfico se compara tiempo de procesamiento requerido para aplicar un modelo linear generalizado (GLM) a diferentes volúmenes de datos. Claramente RevoScaleR puede ejecutar el modelo en 5 millones de datos en menos de 10 segundos mientras que R tradicional toma casi 80 segundos por una cantidad mucho menor. Existen en todo caso algunas maneras de mejorar este rendimiento en la versión gratuita (ver Post Big Data).

revoScale

Dado que MRO es en escencia R con ciertas mejoras, muchos usuarios han migrado hacia MRO en el último año y muchas empresas están considerando incursionar en MRS.

En el siguiente link se hace una comparación en tiempo de procesamiento de R, MRO y MRS.

R y Azure

Microsoft Azure (anteriormente Windows Azure y Azure Services Platform) es una plataforma ofrecida como servicio y alojada en los Data Centers de Microsoft (wiki), un concepto similar al que ofrecen Amazon y Google para alojamiento y procesamiento en línea. Actualmente Azure cuenta con más de 100 centros de procesamiento en el mundo.

Azure

Con la incorporación de R a través de MRO y MRS, Microsoft ha incluído módulos dedicados en Azure para importar y ejecutar scripts de R dentro de sus servicios (ver imagen).

RAzure

 

WODA (Write Once, Deploy Anywhere)

Con la premisa WODA (Write Once, Deploy Anywhere) Microsoft planea hacer MRO y MRS extensibles a todo tipo de arquitectura (ejemplos: Hadoop (Hortonworks, Cloudera y MapR), Linux (Red Hat y SUSE) y Teradata ). Esto permitirá a todos los gurú del big data y el análisis de información utilizar un lenguaje universal (R) y ejecutarlo local o en línea sin importar el tipo de infraestructura utilizada, lo que podría catapultar la utilización y popularización de Azure en muy poco tiempo.

Sin duda esta es una ambiciosa pero interesante apuestas de Microsoft dada la popularidad de R en todas las comunidades (académica, científica y profesional) y los complementos para el tratamiento a gran escala de datos. Así mismo el enfoque transversal sin importar la arquitectura aumenta las posiblidades de expandir y popularizar los servicios de Azure. Ya era hora que las empresas comenzaran a entender que la popularidad de un producto comienza por el componente abierto.

La revista Forbes destaca esta jugada como inteligente y bien fundamentada, resaltando que una sola herramienta para unificarlas a todas (haciendo alución al señor de los anillos) ver artículo.

%d bloggers like this: