"La simulación es una técnica básica utilizada en Informática para estudiar el comportamiento de un sistema informático. Es especialmente importante cuando se quiere conocer el comportamiento de sistemas distribuidos de gran escala, ya que normalmente no se dispone de infraestructuras de este tipo sobre las que poder experimentar. En esta charla se motivará la necesidad de utilizar técnicas de simulación cuando se quiere realizar investigación y experimentar sobre sistemas distribuidos de gran escala. Se hará una introducción al entorno de simulación SimGrid para la simulación de sistemas distribuidos, y se mostrarán ejemplos de su utilización en determinados tipos de sistemas distribuidos.
"
Este documento describe los conceptos clave relacionados con la estimación de costos de proyectos de software, incluida la definición de proyecto de software, los objetivos de la planificación, los cuatro pasos clave de la gestión de proyectos, los modelos de estimación como COCOMO, y las métricas para medir la productividad y calidad del software.
Tecnicas de estimacion de costos de proyecto softwareantonio
El documento trata sobre la planificación estratégica de sistemas de información. Explica que la planificación es importante para establecer objetivos y estrategias. Una parte clave de la planificación es estimar los recursos necesarios como el esfuerzo en meses-hombre. También cubre técnicas para estimar el tamaño del software, costos y esfuerzo requerido como líneas de código y puntos de función.
Este documento presenta una taxonomía de las herramientas CASE. Se clasifican en herramientas integradas (I-CASE), de alto nivel (U-CASE) y de bajo nivel (L-CASE), dependiendo del alcance del ciclo de desarrollo que cubren. Otra clasificación distingue herramientas de planificación, análisis y diseño, programación, integración y prueba. Finalmente, se agrupan en repositorios, reingeniería, soporte del ciclo de vida y proyecto, y mejora contin
Este documento describe los diagramas de componentes y despliegue para el modelo de implementación. Los diagramas de componentes muestran los elementos físicos del sistema y sus relaciones, incluidos código fuente, binarios y ejecutables. Los diagramas de despliegue muestran cómo se distribuyen los componentes en los nodos físicos del sistema.
UML (Lenguaje Unificado de Modelado) fue creado en 1995 por Grady Booch, Ivar Jacobson y James Rumbaugh. Desde entonces ha evolucionado a través de varias versiones para unificar los lenguajes de modelado de objetos. UML permite modelar sistemas mediante diagramas que representan clases, casos de uso, secuencias de mensajes y otros conceptos. Aunque no es un método de desarrollo en sí mismo, UML es útil para la comunicación, documentación y comprensión de sistemas de software.
Instalacion de un (SGBD)sistema gestor de base de datos.SergioLopez467
En este trabajo se instalaran 2 SGBD en distintas plataformas de tipo servidor.
Se mostrarán los requerimientos de instalacion, variables de ambiente, archivos importantes para la instalación, procedimiento para instalación y configuración del DBMS.
Cuadro comparativo que considera cuatro aspectos básicos para comparar un arquitecto de software, un ingeniero de software, un ingeniero de sistemas y un ingeniero de computación.
Este documento presenta el esquema del modelo relacional de la empresa Llano de la Torre, especializada en la comercialización de muebles para baño. El modelo incluye 9 entidades con sus atributos y claves. Las entidades se vinculan entre sí a través de campos comunes como identificadores. El modelo garantiza la no duplicidad de registros a través de claves, y la eliminación de registros relacionados cuando se elimina uno. El modelo favorece la comprensión de las relaciones entre las entidades de la empresa.
Este documento describe los conceptos clave relacionados con la estimación de costos de proyectos de software, incluida la definición de proyecto de software, los objetivos de la planificación, los cuatro pasos clave de la gestión de proyectos, los modelos de estimación como COCOMO, y las métricas para medir la productividad y calidad del software.
Tecnicas de estimacion de costos de proyecto softwareantonio
El documento trata sobre la planificación estratégica de sistemas de información. Explica que la planificación es importante para establecer objetivos y estrategias. Una parte clave de la planificación es estimar los recursos necesarios como el esfuerzo en meses-hombre. También cubre técnicas para estimar el tamaño del software, costos y esfuerzo requerido como líneas de código y puntos de función.
Este documento presenta una taxonomía de las herramientas CASE. Se clasifican en herramientas integradas (I-CASE), de alto nivel (U-CASE) y de bajo nivel (L-CASE), dependiendo del alcance del ciclo de desarrollo que cubren. Otra clasificación distingue herramientas de planificación, análisis y diseño, programación, integración y prueba. Finalmente, se agrupan en repositorios, reingeniería, soporte del ciclo de vida y proyecto, y mejora contin
Este documento describe los diagramas de componentes y despliegue para el modelo de implementación. Los diagramas de componentes muestran los elementos físicos del sistema y sus relaciones, incluidos código fuente, binarios y ejecutables. Los diagramas de despliegue muestran cómo se distribuyen los componentes en los nodos físicos del sistema.
UML (Lenguaje Unificado de Modelado) fue creado en 1995 por Grady Booch, Ivar Jacobson y James Rumbaugh. Desde entonces ha evolucionado a través de varias versiones para unificar los lenguajes de modelado de objetos. UML permite modelar sistemas mediante diagramas que representan clases, casos de uso, secuencias de mensajes y otros conceptos. Aunque no es un método de desarrollo en sí mismo, UML es útil para la comunicación, documentación y comprensión de sistemas de software.
Instalacion de un (SGBD)sistema gestor de base de datos.SergioLopez467
En este trabajo se instalaran 2 SGBD en distintas plataformas de tipo servidor.
Se mostrarán los requerimientos de instalacion, variables de ambiente, archivos importantes para la instalación, procedimiento para instalación y configuración del DBMS.
Cuadro comparativo que considera cuatro aspectos básicos para comparar un arquitecto de software, un ingeniero de software, un ingeniero de sistemas y un ingeniero de computación.
Este documento presenta el esquema del modelo relacional de la empresa Llano de la Torre, especializada en la comercialización de muebles para baño. El modelo incluye 9 entidades con sus atributos y claves. Las entidades se vinculan entre sí a través de campos comunes como identificadores. El modelo garantiza la no duplicidad de registros a través de claves, y la eliminación de registros relacionados cuando se elimina uno. El modelo favorece la comprensión de las relaciones entre las entidades de la empresa.
I. Introducción
A lo largo de la historia se han desarrollado diferentes herramientas informáticas para mejorar el desarrollo de software.
Algunas de estas herramientas son denominadas “CASE” (Ingeniería de software asistida por computador), y sirven de apoyo para los desarrolladores, desde el principio hasta el final del proceso.
CASE proporciona un variedad de herramientas semi-automatizadas y automatizadas que están desarrollando una cultura de ingeniería nueva para muchas empresas.
Uno de los objetivos más importante del CASE (a largo plazo) es conseguir la generación automática de programas desde una especificación a nivel de diseño.
¿A qué se le llama Herramienta case?
De acuerdo a Roger S. Pressman
La ingeniería de software era fundamental en una actividad manual, en la cual las herramientas se utilizaban solamente en las últimas fases del proceso.
De acuerdo con Efraim Turban, Mc Clean y Ephraim.
CASE es a aplicación de la tecnología informática a las actividades, las técnicas y las metodologías propias de desarrollo de sistemas y al igual que las herramientas CAD (diseño asistido por computadora) o CAM (manufactura asistida por computadora) su objetivo es, acelerar el proceso para el que han sido diseñadas, en este caso CASE automatiza o apoya una o más faces del ciclo de vida del desarrollo de sistemas.
En términos generales una Herramienta CASE es un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, ya sea parcial o completamente, se puede ver al CASE como el agrupamiento de las herramientas de software y las metodologías de desarrollo de software formales.
El documento describe las cuatro capas de la ingeniería de software: enfoque de calidad, procesos, métodos y herramientas. La capa de procesos une la calidad con los métodos y permite un desarrollo racional del software. Los métodos incluyen actividades como el análisis de requisitos, diseño, construcción y pruebas. Finalmente, las herramientas brindan soporte automático a los procesos y métodos.
Este documento describe diferentes tipos de optimización aplicados a sistemas y funciones, incluyendo optimización de software, web, consultas, aplicaciones y dispositivos. La optimización busca mejorar el rendimiento de sistemas mediante cambios lógicos o físicos para hacer que las tareas se realicen de forma más rápida y eficiente. La optimización y la ingeniería de sistemas están relacionadas en que la optimización busca adaptar programas para mejorar su rendimiento, mientras que la ingeniería de sistemas estudia y compren
Un chipset es el conjunto de circuitos integrados que permite que un tipo de procesador funcione en una placa base, sirviendo de puente de comunicación entre el procesador y otros componentes como la memoria y puertos. Los chipsets modernos incluyen dos integrados principales y determinan muchas características de la placa base. A lo largo de la evolución, los chipsets han mejorado el soporte para nuevas tecnologías como gráficos 3D, memoria SATA y CrossFire, y se han fabricado usando procesos más pequeños para mejorar
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
El patrón de diseño Modelo-Vista-Controlador (MVC) separa la representación de datos y la lógica de negocio (modelo) de las interfaces de usuario (vistas) y la lógica de control de eventos (controladores). El objetivo es independizar las interfaces de usuario de los datos subyacentes. El modelo representa los datos y la lógica de negocio, las vistas representan interfaces de usuario y los controladores coordinan las interacciones entre el modelo y las vistas.
El documento describe herramientas para el análisis y diseño de sistemas de información. Explica qué son las herramientas, los modelos y para qué sirve modelar. Luego introduce el análisis estructurado y los diagramas de flujo de datos, incluyendo sus elementos y significado. Finalmente, presenta ejemplos para aclarar estos conceptos.
La metodología estructurada se basa en dividir un proyecto en fases secuenciales como análisis, diseño y desarrollo. Utiliza herramientas como diagramas de flujo de datos y diccionarios de datos para modelar procesos y datos de forma jerárquica. Si bien fue popular, ha evolucionado hacia metodologías orientadas a objetos que son más flexibles al cambio.
Importancia del análisis de requerimientosalmarza1
El documento describe la importancia del análisis de requerimientos para el desarrollo de software. Explica que los requerimientos son las necesidades del cliente y usuario y se clasifican en funcionales, no funcionales y de dominio. Luego, detalla el proceso de análisis que incluye identificar al cliente, realizar entrevistas, elaborar documentos de requerimientos e inspeccionarlos. Finalmente, señala que el análisis de requerimientos permite una interacción efectiva entre el ingeniero y cliente para entender las necesidades a
Fundamentos de la arquitectura de softwareRoger Villegas
Este documento presenta una breve historia de la arquitectura de software desde 1960 hasta la actualidad, destacando conceptos clave como estilos, lenguajes de descripción arquitectónica, marcos y vistas, procesos y metodologías, abstracción, escenarios, campos de investigación, arquitecturas comunes, modalidades y tendencias, y las diferencias entre arquitectura y diseño.
Un sistema de base de datos contiene datos integrados y compartidos, hardware como computadoras y unidades de almacenamiento, software como sistemas gestores de bases de datos y aplicaciones, y personal como administradores, programadores y usuarios finales.
diseño de arquitectura de un sistema de informacionzulaymaylin
Este documento presenta una introducción a los conceptos de arquitectura de sistemas de información y los diferentes estilos de arquitectura. Define la arquitectura como un diseño estructural integrado que incluye procesos, elementos y definiciones. Explora estilos como cliente-servidor, peer-to-peer y de capas. Finalmente, discute la importancia de la arquitectura de capas y cómo metodologías como RPM se enfocan principalmente en el desarrollo de la capa de dominio de la aplicación.
El documento describe diferentes estilos arquitectónicos para el diseño de software. Explica que los estilos arquitectónicos definen categorías de sistemas que incluyen componentes, conectores, restricciones y modelos semánticos. También cubre estilos como la arquitectura centrada en datos, la arquitectura de flujo de datos, y las arquitecturas de llamada y retorno.
- Backup incremental y diferencial
- RecuperaciÃ3n de archivos individuales
- RecuperaciÃ3n de tablas, particiones, y segmentos
- RecuperaciÃ3n de puntos en el tiempo
- RecuperaciÃ3n de desastres
Oracle Real Application Clusters
Proporciona alta disponibilidad, escalabilidad lineal y tolerancia a fallas para
aplicaciones empresariales crÃticas.
Oracle Database Vault
Protege los datos confidenciales de la empresa mediante la segregaciÃ3n de
deberes y la restricciÃ3n
UML. un analisis comparativo para la diagramación de softwareYaskelly Yedra
Este documento presenta un resumen de tres conceptos clave:
1) Explica brevemente el modelado conceptual en el desarrollo de software y los diferentes enfoques que han surgido como el desarrollo estructurado y orientado a objetos.
2) Describe los diagramas utilizados en el desarrollo estructurado como los diagramas de flujo y los utilizados en el desarrollo orientado a objetos.
3) Introduce el Lenguaje de Modelado Unificado (UML) como un estándar y analiza sus elementos básicos como diagram
El documento describe un diagrama de colaboración, el cual representa la interacción entre objetos mediante enlaces y mensajes. Un diagrama de colaboración muestra los mensajes que se envían entre objetos para modelar la interacción en un caso de uso, y ofrece una mejor visión del escenario al analizar la participación de un objeto.
Fase de implementación de sistemas de informaciónNAHAMA19
El documento describe la fase de implementación de sistemas de información, la cual es la más costosa y que consume más tiempo. Explica que durante esta fase se instala y prueba el nuevo sistema, y se capacita a los usuarios para que puedan utilizarlo. Además, detalla cuatro métodos de implementación (directo, paralelo, piloto y en fases), señalando que los métodos piloto y en fases suelen ser los más comunes debido a que tienen menor riesgo. Finalmente, resalta la importancia de realizar pruebas de sistemas
El documento proporciona definiciones y descripciones de sistemas distribuidos. Define un sistema distribuido como un conjunto de computadoras interconectadas que comparten un estado y ofrecen una visión de sistema único. Explica las ventajas de los sistemas distribuidos como la economía, trabajo en conjunto y mayor confiabilidad. También describe desventajas como problemas de software, redes de comunicación y seguridad de datos compartidos.
Este documento presenta una introducción al procesamiento paralelo y las arquitecturas de computadoras paralelas. Explica los elementos mínimos de una computadora paralela, incluyendo hardware con múltiples procesadores y memorias, y software como sistemas operativos paralelos. También discute las organizaciones lógica y física, los modelos de memoria compartida y distribuida, las topologías de interconexión y métricas para medir el rendimiento de las arquitecturas paralelas. Finalmente, presenta ejemp
Este documento describe los conceptos básicos de los sistemas distribuidos de gran escala como clusters y grids. Explica que los clusters son arquitecturas distribuidas formadas por computadoras interconectadas que funcionan como un único sistema, y describe las características, arquitectura y beneficios de los clusters. También resume las técnicas para reducir la variabilidad de latencia en servicios a gran escala.
Este documento describe el proceso de simulación de sistemas. Explica qué es un sistema y una simulación, y proporciona un ejemplo de simulación de una fila de caja en un supermercado para determinar si se necesita instalar otra caja. Describe los pasos de definir los elementos del sistema, establecer postulados sobre los tiempos de llegada de clientes y atención, generar números aleatorios, y construir una tabla para simular el comportamiento del sistema durante 20 clientes.
I. Introducción
A lo largo de la historia se han desarrollado diferentes herramientas informáticas para mejorar el desarrollo de software.
Algunas de estas herramientas son denominadas “CASE” (Ingeniería de software asistida por computador), y sirven de apoyo para los desarrolladores, desde el principio hasta el final del proceso.
CASE proporciona un variedad de herramientas semi-automatizadas y automatizadas que están desarrollando una cultura de ingeniería nueva para muchas empresas.
Uno de los objetivos más importante del CASE (a largo plazo) es conseguir la generación automática de programas desde una especificación a nivel de diseño.
¿A qué se le llama Herramienta case?
De acuerdo a Roger S. Pressman
La ingeniería de software era fundamental en una actividad manual, en la cual las herramientas se utilizaban solamente en las últimas fases del proceso.
De acuerdo con Efraim Turban, Mc Clean y Ephraim.
CASE es a aplicación de la tecnología informática a las actividades, las técnicas y las metodologías propias de desarrollo de sistemas y al igual que las herramientas CAD (diseño asistido por computadora) o CAM (manufactura asistida por computadora) su objetivo es, acelerar el proceso para el que han sido diseñadas, en este caso CASE automatiza o apoya una o más faces del ciclo de vida del desarrollo de sistemas.
En términos generales una Herramienta CASE es un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, ya sea parcial o completamente, se puede ver al CASE como el agrupamiento de las herramientas de software y las metodologías de desarrollo de software formales.
El documento describe las cuatro capas de la ingeniería de software: enfoque de calidad, procesos, métodos y herramientas. La capa de procesos une la calidad con los métodos y permite un desarrollo racional del software. Los métodos incluyen actividades como el análisis de requisitos, diseño, construcción y pruebas. Finalmente, las herramientas brindan soporte automático a los procesos y métodos.
Este documento describe diferentes tipos de optimización aplicados a sistemas y funciones, incluyendo optimización de software, web, consultas, aplicaciones y dispositivos. La optimización busca mejorar el rendimiento de sistemas mediante cambios lógicos o físicos para hacer que las tareas se realicen de forma más rápida y eficiente. La optimización y la ingeniería de sistemas están relacionadas en que la optimización busca adaptar programas para mejorar su rendimiento, mientras que la ingeniería de sistemas estudia y compren
Un chipset es el conjunto de circuitos integrados que permite que un tipo de procesador funcione en una placa base, sirviendo de puente de comunicación entre el procesador y otros componentes como la memoria y puertos. Los chipsets modernos incluyen dos integrados principales y determinan muchas características de la placa base. A lo largo de la evolución, los chipsets han mejorado el soporte para nuevas tecnologías como gráficos 3D, memoria SATA y CrossFire, y se han fabricado usando procesos más pequeños para mejorar
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
El patrón de diseño Modelo-Vista-Controlador (MVC) separa la representación de datos y la lógica de negocio (modelo) de las interfaces de usuario (vistas) y la lógica de control de eventos (controladores). El objetivo es independizar las interfaces de usuario de los datos subyacentes. El modelo representa los datos y la lógica de negocio, las vistas representan interfaces de usuario y los controladores coordinan las interacciones entre el modelo y las vistas.
El documento describe herramientas para el análisis y diseño de sistemas de información. Explica qué son las herramientas, los modelos y para qué sirve modelar. Luego introduce el análisis estructurado y los diagramas de flujo de datos, incluyendo sus elementos y significado. Finalmente, presenta ejemplos para aclarar estos conceptos.
La metodología estructurada se basa en dividir un proyecto en fases secuenciales como análisis, diseño y desarrollo. Utiliza herramientas como diagramas de flujo de datos y diccionarios de datos para modelar procesos y datos de forma jerárquica. Si bien fue popular, ha evolucionado hacia metodologías orientadas a objetos que son más flexibles al cambio.
Importancia del análisis de requerimientosalmarza1
El documento describe la importancia del análisis de requerimientos para el desarrollo de software. Explica que los requerimientos son las necesidades del cliente y usuario y se clasifican en funcionales, no funcionales y de dominio. Luego, detalla el proceso de análisis que incluye identificar al cliente, realizar entrevistas, elaborar documentos de requerimientos e inspeccionarlos. Finalmente, señala que el análisis de requerimientos permite una interacción efectiva entre el ingeniero y cliente para entender las necesidades a
Fundamentos de la arquitectura de softwareRoger Villegas
Este documento presenta una breve historia de la arquitectura de software desde 1960 hasta la actualidad, destacando conceptos clave como estilos, lenguajes de descripción arquitectónica, marcos y vistas, procesos y metodologías, abstracción, escenarios, campos de investigación, arquitecturas comunes, modalidades y tendencias, y las diferencias entre arquitectura y diseño.
Un sistema de base de datos contiene datos integrados y compartidos, hardware como computadoras y unidades de almacenamiento, software como sistemas gestores de bases de datos y aplicaciones, y personal como administradores, programadores y usuarios finales.
diseño de arquitectura de un sistema de informacionzulaymaylin
Este documento presenta una introducción a los conceptos de arquitectura de sistemas de información y los diferentes estilos de arquitectura. Define la arquitectura como un diseño estructural integrado que incluye procesos, elementos y definiciones. Explora estilos como cliente-servidor, peer-to-peer y de capas. Finalmente, discute la importancia de la arquitectura de capas y cómo metodologías como RPM se enfocan principalmente en el desarrollo de la capa de dominio de la aplicación.
El documento describe diferentes estilos arquitectónicos para el diseño de software. Explica que los estilos arquitectónicos definen categorías de sistemas que incluyen componentes, conectores, restricciones y modelos semánticos. También cubre estilos como la arquitectura centrada en datos, la arquitectura de flujo de datos, y las arquitecturas de llamada y retorno.
- Backup incremental y diferencial
- RecuperaciÃ3n de archivos individuales
- RecuperaciÃ3n de tablas, particiones, y segmentos
- RecuperaciÃ3n de puntos en el tiempo
- RecuperaciÃ3n de desastres
Oracle Real Application Clusters
Proporciona alta disponibilidad, escalabilidad lineal y tolerancia a fallas para
aplicaciones empresariales crÃticas.
Oracle Database Vault
Protege los datos confidenciales de la empresa mediante la segregaciÃ3n de
deberes y la restricciÃ3n
UML. un analisis comparativo para la diagramación de softwareYaskelly Yedra
Este documento presenta un resumen de tres conceptos clave:
1) Explica brevemente el modelado conceptual en el desarrollo de software y los diferentes enfoques que han surgido como el desarrollo estructurado y orientado a objetos.
2) Describe los diagramas utilizados en el desarrollo estructurado como los diagramas de flujo y los utilizados en el desarrollo orientado a objetos.
3) Introduce el Lenguaje de Modelado Unificado (UML) como un estándar y analiza sus elementos básicos como diagram
El documento describe un diagrama de colaboración, el cual representa la interacción entre objetos mediante enlaces y mensajes. Un diagrama de colaboración muestra los mensajes que se envían entre objetos para modelar la interacción en un caso de uso, y ofrece una mejor visión del escenario al analizar la participación de un objeto.
Fase de implementación de sistemas de informaciónNAHAMA19
El documento describe la fase de implementación de sistemas de información, la cual es la más costosa y que consume más tiempo. Explica que durante esta fase se instala y prueba el nuevo sistema, y se capacita a los usuarios para que puedan utilizarlo. Además, detalla cuatro métodos de implementación (directo, paralelo, piloto y en fases), señalando que los métodos piloto y en fases suelen ser los más comunes debido a que tienen menor riesgo. Finalmente, resalta la importancia de realizar pruebas de sistemas
El documento proporciona definiciones y descripciones de sistemas distribuidos. Define un sistema distribuido como un conjunto de computadoras interconectadas que comparten un estado y ofrecen una visión de sistema único. Explica las ventajas de los sistemas distribuidos como la economía, trabajo en conjunto y mayor confiabilidad. También describe desventajas como problemas de software, redes de comunicación y seguridad de datos compartidos.
Este documento presenta una introducción al procesamiento paralelo y las arquitecturas de computadoras paralelas. Explica los elementos mínimos de una computadora paralela, incluyendo hardware con múltiples procesadores y memorias, y software como sistemas operativos paralelos. También discute las organizaciones lógica y física, los modelos de memoria compartida y distribuida, las topologías de interconexión y métricas para medir el rendimiento de las arquitecturas paralelas. Finalmente, presenta ejemp
Este documento describe los conceptos básicos de los sistemas distribuidos de gran escala como clusters y grids. Explica que los clusters son arquitecturas distribuidas formadas por computadoras interconectadas que funcionan como un único sistema, y describe las características, arquitectura y beneficios de los clusters. También resume las técnicas para reducir la variabilidad de latencia en servicios a gran escala.
Este documento describe el proceso de simulación de sistemas. Explica qué es un sistema y una simulación, y proporciona un ejemplo de simulación de una fila de caja en un supermercado para determinar si se necesita instalar otra caja. Describe los pasos de definir los elementos del sistema, establecer postulados sobre los tiempos de llegada de clientes y atención, generar números aleatorios, y construir una tabla para simular el comportamiento del sistema durante 20 clientes.
El documento introduce los conceptos básicos de simulación con Promodel, incluyendo definiciones de locaciones, entidades, recursos y procesos. Explica que las locaciones son lugares donde ocurren eventos, las entidades son objetos que se mueven en el modelo, los recursos son elementos limitados y las redes definen los posibles recorridos. También presenta ejemplos como un banco, cafetería y fábrica de zapatos para ilustrar estas definiciones.
El documento presenta una introducción a la teoría de colas y sistemas de colas. Explica que las colas son comunes en la vida cotidiana y que la teoría de colas usa modelos matemáticos para describir sistemas de colas y encontrar su estado estable. Describe los componentes básicos de un sistema de cola, incluyendo las llegadas de clientes, la cola, el servicio y las mediciones de desempeño como el número de clientes en la cola y los tiempos de espera.
El documento presenta una introducción a la teoría de colas y sistemas de colas. Explica que las colas son comunes en la vida cotidiana y que la teoría de colas usa modelos matemáticos para describir sistemas de colas y encontrar su estado estable. Define conceptos clave como tasas de llegada, tiempos de servicio, medidas de desempeño y factores de utilización. Finalmente, introduce algunos modelos comunes como M/M/1.
Este documento resume las principales novedades de SQL Server 2012 para desarrolladores, incluyendo mejoras en la especificación de metadatos, nuevas funciones escalares, paginación con OFFSET y FETCH, secuencias para autogenerar números, mejoras en búsqueda de texto completo y espacial, y la nueva cláusula OVER para realizar cálculos sobre conjuntos de filas mediante funciones de ventana y análisis.
El documento habla sobre los sistemas de colas y la teoría de colas. Explica conceptos como tasas de llegada y servicio, tiempos de espera, número de clientes en cola y sistema, y factores que afectan el desempeño de un sistema de colas como el factor de utilización. También menciona algunas distribuciones comunes de probabilidad usadas para modelar los tiempos en los sistemas de colas.
lineas - de - espera teoria de colas , filas170874
Este documento presenta los conceptos básicos de la teoría de colas. Explica que una cola es una línea de espera y que la teoría de colas usa modelos matemáticos para describir sistemas de colas. Describe los componentes clave de un sistema de colas, incluyendo las llegadas de clientes, la cola, el servicio, y las mediciones del desempeño como el número promedio de clientes y el tiempo de espera promedio.
La simulación de sistemas dinámicos permite modelar matemáticamente sistemas que varían en el tiempo mediante variables y reglas que determinan su siguiente estado. Los ingenieros usan la simulación para probar software de control antes de implementarlo en dispositivos, modelar sistemas que aún no existen, y explorar opciones de diseño de manera más segura y económica que con prototipos físicos. El proceso de simulación compila el modelo, calcula sucesivamente los estados y salidas a intervalos de tiempo, y opcionalmente comprue
1) La simulación es una técnica útil para realizar estudios piloto de procesos y sistemas de manera rápida y económica. 2) Existen diferentes tipos de modelos de simulación como modelos físicos, matemáticos discretos y continuos, y dinámicos y estáticos. 3) La simulación implica la construcción de un modelo, ejecución de experimentos y análisis de resultados.
Diagnostico y resolución de problemas en sql serverSpanishPASSVC
En mi día a día como consultor me encuentro con una gran variedad de problemas relacionados directa o indirectamente con SQL Server. El diagnóstico de las causas reales de estos problemas suele requerir analizar tanto el hardware como el software de la plataforma. Presentar el diagnóstico y la resolución de problemas reales así como los procesos y herramientas utilizadas es el objetivo de esta sesión.
Este documento proporciona una introducción a SQL Server 2008 para desarrolladores. Explica conceptos clave como las bases de datos, las sentencias DDL, DCL y DML de SQL, los nuevos tipos de datos como DATE y DATETIME2, el uso de variables, los procedimientos almacenados, los parámetros de tipo tabla y la nueva sentencia MERGE. También incluye ejemplos de código T-SQL para ilustrar estos conceptos.
El documento presenta un ejemplo de simulación de una fila de un solo servidor en un supermercado. Se establecen postulados sobre los tiempos entre llegadas de clientes y tiempos de atención, los cuales se representan como distribuciones de probabilidad. Luego, se muestra el proceso de simulación en Excel, generando números aleatorios para cada cliente y calculando los diferentes tiempos como resultado. El objetivo es determinar si es necesario agregar otra caja para mejorar la experiencia del cliente.
El documento describe diferentes mecanismos para la comunicación entre procesos, incluyendo condiciones de competencia, secciones críticas, dormir y despertar, y semáforos. Explica cómo variables compartidas pueden causar inconsistencias si no se implementan correctamente mecanismos para exclusión mutua y sincronización, como algoritmos de Peterson o el uso de semáforos.
El documento explica el modelo M/G/1 de teoría de colas, donde las llegadas siguen un proceso de Poisson y los tiempos de servicio siguen una distribución general. Presenta las fórmulas para calcular la longitud promedio de la cola, el factor de uso del sistema, la longitud promedio total del sistema, los tiempos promedio de espera y atención, y la probabilidad de que el sistema esté vacío. Además, resuelve un ejemplo numérico y propone otro para practicar.
Resumen de nuevas caracteriscitas de sql server 2008Salvador Ramos
Version resumida de otra de las presentaciones que tengo aqui publicadas. Incluye tanto las nuevas caracteristicas del motor relacional y Transact-SQL, como las de Integration Services, Analysis Servcies y Reporting Services. Algunas de ellas son: instrucción Merge, datos geoespaciales, Resource Governor, etc.
Programación Funcional y Orientada a Objetos con AsincronismosVíctor Bolinches
Este documento describe las diferencias entre la programación síncrona y asíncrona, y cómo los paradigmas de programación orientada a objetos y funcional pueden usar técnicas avanzadas de programación asíncrona. Luego, presenta ejemplos prácticos de cómo implementar programación asíncrona en Java 8 y Kotlin, incluido un emulador de Gameboy que usa coroutinas de Kotlin para manejar la CPU de forma asíncrona.
Este documento presenta los conceptos básicos de la teoría de colas, incluyendo las definiciones de sistemas de colas, llegadas de clientes, tiempos de servicio, y distribuciones de probabilidad comúnmente usadas como la exponencial y de Poisson. Explica los componentes clave de un sistema de colas como la cola, servicio e instalaciones, así como los costos asociados.
Este documento describe los pasos para planificar un experimento de simulación. Explica las definiciones de simulación discreta y continua, y los métodos para generar números aleatorios como insumos para la simulación. También cubre la justificación de la simulación, el proceso de simulación, y el papel de la simulación en el análisis y diseño de sistemas.
Similar a Simulación de sistemas distribuidos de gran escala (20)
"El álgebra lineal es una herramienta fundamental en muchos campos de la ciencia y la tecnología. Es particularmente importante en la física, la ingeniería, la informática y la estadística. La capacidad de manipular eficientemente grandes cantidades de datos y matrices complejas es esencial en estas áreas para la resolución de problemas y la toma de decisiones.
A priori, puede dar la sensación de que estamos muy lejos del uso del álgebra lineal en nuestro día a día. Sin embargo, algunas técnicas como la descomposición en valores singulares y la regresión lineal para entrenar modelos y hacer predicciones precisas están detrás de la inteligencia artificial y el aprendizaje automático. ¿Te suena ChatGPT? Puede no parecerlo, pero el álgebra lineal también está detrás en algunos de sus procesos. Por este motivo, debemos seguir trabajando en este campo, ya que su importancia seguirá creciendo a medida que se generen y analicen grandes cantidades de datos en el mundo actual.
"
La pandemia de COVID-19 ha supuesto una proliferación de mapas y contramapas. Por ello, organizaciones de la sociedad civil y movimientos sociales han generado sus propias interpretaciones y representaciones de los datos sobre la crisis. Estos también han contribuido a visibilizar aspectos, sujetos y temas que han sido desatendidos o infrarrepresentados en las visualizaciones hegemónicas y dominantes. En este contexto, la presente ponencia se centra en el análisis de los imaginarios sociales relacionados con la elaboración de mapas durante la pandemia. Es decir, trata de indagar en la importancia de los mapas para el activismo digital, las potencialidades que se extraen de esta tecnología y los valores asociados a las visualizaciones creadas con ellos. El objetivo último es reflexionar sobre la vía emergente del activismo de datos, así como sobre la intersección entre los imaginarios sociales y la geografía digital.
Designing RISC-V-based Accelerators for next generation Computers (DRAC) is a 3-year project (2019-2022) funded by the ERDF Operational Program of Catalonia 2014-2020. DRAC will design, verify, implement and fabricate a high performance general purpose processor that will incorporate different accelerators based on the RISC-V technology, with specific applications in the field of post-quantum security, genomics and autonomous navigation. In this talk, we will provide an overview of the main achievements in the DRAC project, including the fabrication of Lagarto, the first RISC-V processor developed in Spain.
This talk will begin introducing the uElectronics section of ESA at ESTEC and the general activities the group is responsible for. Then, it will go through some of the R+D on-going activities that the group is involved with, hand in hand with universities and/or companies. One of the major ones is related to the European rad-hard FPGAs that have been partially founded by ESA for several years and that will be playing a major role in the sector in the upcoming years. It´s also worth talking about the RTL soft IPs that are currently under development and that will allow us to keep on providing the European ecosystem with some key capabilities. The latter will be an overview of RISC-V space hardened on-going activities that might be replacing the current SPARC based processors available for our missions.
El objetivo de esta charla es presentar las últimas novedades incorporadas en la arquitectura ARM y describir las tendencias en la microarquitectura de los procesadores con arquitectura ARM. ARM es una empresa relativamente pequeña en comparación con otros gigantes del sector tecnológico. Sin embargo, la amplia implantación de su arquitectura, siendo ampliamente dominante en algunos sectores, y sus microarquitecturas, hacen que la tecnología ARM ocupe un lugar central en el desarrollo tecnológico del mundo actual. La tecnología ARM está presente prácticamente en todo el espectro tecnológico, desde los dispositivos más sencillos hasta el HPC y Cloud computing, pasando por los smartphones, automoción electrónica de consumo, etc
"Formal verification has been used by computer scientists for decades to prevent
software bugs. However, with a few exceptions, it has not been used by researchers
working in most areas of mathematics (geometry, algebra, analysis, etc.). In this
talk, we will discuss how this has changed in the past few years, and the possible
implications to the future of mathematical research, teaching and communication.
We will focus on the theorem prover Lean and its mathematical library
mathlib, since this is currently the system most widely used by mathematicians.
Lean is a functional programming language and interactive theorem prover based
on dependent type theory, with proof irrelevance and non-cumulative universes.
The mathlib library, open-source and designed as a basis for research level
mathematics, is one of the largest collections of formalized mathematics. It allows
classical reasoning, uses large- and small-scale automation, and is characterized
by its decentralized nature with over 200 contributors, including both computer
scientists and mathematicians."
"Part of the research community thinks that it is still early to tackle the development of quantum software engineering techniques. The reason is that how the quantum computers of the future will look like is still unknown. However, there are some facts that we can affirm today: 1) quantum and classical computers will coexist, each dedicated to the tasks at which they are most efficient. 2) quantum computers will be part of the cloud infrastructure and will be accessible through the Internet. 3) complex software systems will be made up of smaller pieces that will collaborate with each other. 4) some of those pieces will be quantum, therefore the systems of the future will be hybrid. 5) the coexistence and interaction between the components of said hybrid systems will be supported by service composition: quantum services.
This talk analyzes the challenges that the integration of quantum services poses to Service Oriented Computing."
In this talk, after a brief overview of AI concepts in particular Machine Learning (ML) techniques, some of the well-known computer design concepts for high performance and power efficiency are presented. Subsequently, those techniques that have had a promising impact for computing ML algorithms are discussed. Deep learning has emerged as a game changer for many applications in various fields of engineering and medical sciences. Although the primary computation function is matrix vector multiplication, many competing efficient implementations of this primary function have been proposed and put into practice. This talk will review and compare some of those techniques that are used for ML computer design.
Tras una breve introducción a la informática médica y unas pinceladas sobre conceptos prácticos de Inteligencia Artificial (posible definición consensuada, strong VS weak AI y técnicas y métodos comúnmente empleados), el bloque central de la charla muestra ejemplos prácticos (en forma de casos de éxito) de distintos desarrollos llevados a cabo por el grupo de Sistemas Informáticos de Nueva Generación (SING: http//sing-group.org/) en los ámbitos de (i) Informática clínica (InNoCBR, PolyDeep), (ii) Informática para investigación clínica (PathJam, WhichGenes), (iii) bioinformática traslacional (Genómica: ALTER, Proteómica: DPD, BI, BS, Mlibrary, Mass-Up, e integración de datos ÓMICOS: PunDrugs) y (iv) Informática en salud pública (CURMIS4th). Finalmente, se comenta brevemente la importancia que se espera tenga en un futuro inmediato la IA interpretable (XAI, Explainable Artificial Intelligence) y la participación humana (HITL. Human-In-The-Loop). La charla termina con una breve reflexión sobre las lecciones aprendidas por el ponente después de más de 16 años de desarrollo de sistemas inteligentes en el ámbito de la informática médica.
Many emerging applications require methods tailored towards high-speed data acquisition and filtering of streaming data followed by offline event reconstruction and analysis. In this case, the main objective is to relieve the immense pressure on the storage and communication resources within the experimental infrastructure. In other applications, ultra low latency real time analysis is required for autonomous experimental systems and anomaly detection in acquired scientific data in the absence of any prior data model for unknown events. At these data rates, traditional computing approaches cannot carry out even cursory analyses in a time frame necessary to guide experimentation. In this talk, Prof. Ogrenci will present some examples of AI hardware architectures. She will discuss the concept of co-design, which makes the unique needs of an application domain transparent to the hardware design process and present examples from three applications: (1) An in-pixel AI chip built using the HLS methodology; (2) A radiation hardened ASIC chip for quantum systems; (3) An FPGA-based edge computing controller for real-time control of a High Energy Physics experiment.
En esta conferencia se presentará una revisión del concepto de autonomía para robots móviles de campo y la identificación de desafíos para lograr un verdadero sistema autónomo, además de sugerir posibles direcciones de investigación. Los sistemas robóticos inteligentes, por lo general, obtienen conocimiento de sus funciones y del entorno de trabajo en etapa de diseño y desarrollo. Este enfoque no siempre es eficiente, especialmente en entornos semiestructurados y complejos como puede ser el campo de cultivo. Un sistema robótico verdaderamente autónomo debería desarrollar habilidades que le permitan tener éxito en tales entornos sin la necesidad de tener a-priori un conocimiento ontológico del área de trabajo y la definición de un conjunto de tareas o comportamientos predefinidos. Por lo que en esta conferencia se presentarán posibles estrategias basadas en Inteligencia Artificial que permitan perfeccionar las capacidades de navegación de robots móviles y que sean capaces de ofrecer un nivel de autonomía lo suficientemente elevado para poder ejecutar todas las tareas dentro de una misión casa-a-casa (home-to-home).
Quantum computing has become a noteworthy topic in academia and industry. The multinational companies in the world have been obtaining impressive advances in all areas of quantum technology during the last two decades. These companies try to construct real quantum computers in order to exploit their theoretical preferences over today’s classical computers in practical applications. However, they are challenging to build a full-scale quantum computer because of their increased susceptibility to errors due to decoherence and other quantum noise. Therefore, quantum error correction (QEC) and fault-tolerance protocol will be essential for running quantum algorithms on large-scale quantum computers.
The overall effect of noise is modeled in terms of a set of Pauli operators and the identity acting on the physical qubits (bit flip, phase flip and a combination of bit and phase flips). In addition to Pauli errors, there is another error named leakage errors that occur when a qubit leaves the defined computational subspace. As the location of leakage errors is unknown, these can damage even more the quantum computations. Thus, this talk will briefly provide quantum error models.
Los chatbots son un elemento clave en la transformación digital de nuestra sociedad. Están por todas partes: eCommerce, salud digital, asistencia a clientes, turismo,... Pero si habéis usado alguno, probablemente os habrá decepcionado. Lo confieso, la mayoría de los chatbots que existen son muy malos. Y es que no es nada fácil hacer un chatbot que sea realmente útil e inteligente. Un chatbot combina toda la complejidad de la ingeniería de software con la del procesamiento de lenguaje natural. Pensad que muchos chatbots hay que desplegarlos en varios canales (web, telegram, slack,...) y a menudo tienen que utilizar APIs y servicios externos, acceder a bases de datos internas o integrar modelos de lenguaje preentrenados (por ej. detectores de toxicidad), etc. Y el problema no es sólo crear el bot, si no también probarlo y evolucionarlo. En esta charla veremos los mayores desafíos a los que hay que enfrentarse cuando nos encargan un proyecto de desarrollo que incluye un chatbot y qué técnicas y estrategias podemos ir aplicando en función de las necesidades del proyecto, para conseguir, esta vez sí un chatbot que sepa de lo que habla.
Many HPC applications are massively parallel and can benefit from the spatial parallelism offered by reconfigurable logic. While modern memory technologies can offer high bandwidth, designers must craft advanced communication and memory architectures for efficient data movement and on-chip storage. Addressing these challenges requires to combine compiler optimizations, high-level synthesis, and hardware design.
In this talk, I will present challenges, solutions, and trends for generating massively parallel accelerators on FPGA for high-performance computing. These architectures can provide performance comparable to software implementations on high-end processors, and much higher energy efficiency thanks to logic customization.
The main challenge of concurrent software verification has always been in achieving modularity, i.e., the ability to divide and conquer the correctness proofs with the goal of scaling the verification effort. Types are a formal method well-known for its ability to modularize programs, and in the case of dependent types, the ability to modularize and scale complex mathematical proofs.
In this talk I will present our recent work towards reconciling dependent types with shared memory concurrency, with the goal of achieving modular proofs for the latter. Applying the type-theoretic paradigm to concurrency has lead us to view separation logic as a type theory of state, and has motivated novel abstractions for expressing concurrency proofs based on the algebraic structure of a resource and on structure-preserving functions (i.e., morphisms) between resources.
Microarchitectural attacks, such as Spectre and Meltdown, are a class of
security threats that affect almost all modern processors. These attacks exploit the side-effects resulting from processor optimizations to leak sensitive information and compromise a system’s security.
Over the years, a large number of hardware and software mechanisms for
preventing microarchitectural leaks have been proposed. Intuitively, more
defensive mechanisms are less efficient, while more permissive mechanisms may offer more performance but require more defensive programming. Unfortunately, there are no
hardware-software contracts that would turn this intuition into a basis for
principled co-design.
In this talk, we present a framework for specifying hardware/software security
contracts, an abstraction that captures a processor’s security guarantees in a
simple, mechanism-independent manner by specifying which program executions a
microarchitectural attacker can distinguish.
La aparición de vulnerabilidades por la falta de controles de seguridad es una de las causas por las que se demandan nuevos marcos de trabajo que produzcan software seguro de forma predeterminada. En la conferencia se abordará cómo transformar el proceso de desarrollo de software dando la importancia que merece la seguridad desde el inicio del ciclo de vida. Para ello se propone un nuevo modelo de desarrollo – modelo Viewnext-UEx – que incorpora prácticas de seguridad de forma preventiva y sistemática en todas las fases del proceso de ciclo de vida del software. El propósito de este nuevo modelo es anticipar la detección de vulnerabilidades aplicando la seguridad desde las fases más tempranas, a la vez que se optimizan los procesos de construcción del software. Se exponen los resultados de un escenario preventivo, tras la aplicación del modelo Viewnext-UEx, frente al escenario reactivo tradicional de aplicar la seguridad a partir de la fase de testing.
This document discusses trusting artificial intelligence systems. It begins with an overview of trust in social and computing contexts. It then discusses artificial intelligence, including machine learning, deep learning, and natural language processing. It details how AI systems can be attacked, including adversarial inputs, data poisoning, and model stealing. It raises important discussions around using AI in contexts like cybersecurity, medicine, transportation, and sentiment analysis, and the challenges of ensuring systems can be trusted.
El uso de energías renovables es clave para cumplir los objetivos de desarrollo sostenible de la Agenda 2030. Entre estas energías, la eólica es la segunda más utilizada debido a su alta eficiencia. Algunos estudios sugieren que la energía eólica será la principal fuente de generación en 2050. Por ello es conveniente seguir investigando en la aplicación de técnicas de control avanzadas en estos sistemas.
Entre estas técnicas avanzadas cabe destacar las redes neuronales y el aprendizaje por refuerzo combinadas con estrategias clásicas de control. Estas técnicas ya se han empleado con éxito en el modelado y el control de sistemas complejos.
Esta conferencia presentará la aplicación de redes neuronales y aprendizaje por refuerzo al control de aerogeneradores, centrándolo especialmente en el control de pitch. Se detallarán diferentes configuraciones con redes neuronales y otras técnicas aplicadas al control de pitch. Finalmente se propondrán algunas técnicas híbridas que combinen lógica difusa, tablas de búsqueda y redes neuronales, mostrando resultados que han permitido probar su utilidad para mejorar la eficiencia de las turbinas eólicas.
As the world's energy demand rises, so does the amount of renewable energy, particularly wind energy, in the supply. The life cycle of wind farms starting from manufacturing the components to decommission stage involve significant involvement of cost and the application of AI and data analytics are on reducing these costs are limited. With this conference talk, the audience expected to know some of the interesting applications of AI and data analytics on offshore wind. And, also highlight the future challenges and opportunities. This conference could be useful for students, academics and researcher who want to make next career in offshore wind but yet know where to start.
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdfElisaLen4
Un pequeño resumen de lo que fue el estilo arquitectónico Ecléctico, así como el estilo arquitectónico histórico, sus características, arquitectos reconocidos y edificaciones referenciales de dichas épocas.
Presentación Aislante térmico.pdf Transferencia de calorGerardoBracho3
Las aletas de transferencia de calor, también conocidas como superficies extendidas, son prolongaciones metálicas que se adhieren a una superficie sólida para aumentar su área superficial y, en consecuencia, mejorar la tasa de transferencia de calor entre la superficie y el fluido circundante.
TIA portal Bloques PLC Siemens______.pdfArmandoSarco
Bloques con Tia Portal, El sistema de automatización proporciona distintos tipos de bloques donde se guardarán tanto el programa como los datos
correspondientes. Dependiendo de la exigencia del proceso el programa estará estructurado en diferentes bloques.
Los puentes son estructuras esenciales en la infraestructura de transporte, permitiendo la conexión entre diferentes
puntos geográficos y facilitando el flujo de bienes y personas.
Aletas de Transferencia de Calor Jefferson Colina.pptx
Simulación de sistemas distribuidos de gran escala
1. Félix García Carballeira
Grupo de Arquitectura de Computadores
Universidad Carlos III de Madrid
felix.garcia@uc3m.es
Simulación de sistemas
distribuidos de gran escala
2. Objetivo
§ Comprender las ventajas que aportan las técnicas de simulación cuando se quiere
realizar investigación y experimentar sobre sistemas distribuidos de gran escala y las
ventajas que aporta el entorno de simulación SimGrid
•Félix García Carballeira •Introducción a la simulación •2
3. Contenido
§ Motivación
§ Entorno de simulación SimGrid
§ Ejemplos de modelos de simulación
•Félix García Carballeira •Introducción a la simulación •3
4. ¿Por qué es importante la simulación?
§ Conocer el comportamiento de un sistema cuando no se dispone de él bajo una
determinada carga de trabajo
§ Ejemplos:
q Conocer el comportamiento de un determinado algoritmo de planificación
q Comparar el funcionamiento de dos algoritmos de distribución de carga
q Conocer el comportamiento de un sistema de ficheros distribuido
•Félix García Carballeira •Introducción a la simulación •4
5. Motivación
§ Conocer el comportamiento de un nuevo algoritmo de distribución de trabajos entre
servidores de un centro de datos
•Félix García Carballeira •Introducción a la simulación •5
6. Motivación
§ Conocer el comportamiento de un nuevo algoritmo de
distribución de trabajos entre servidores de un centro de datos
•Félix García Carballeira •Introducción a la simulación •6
Dispatcher
s1
s2
s3
s4
sn
Servers
tasks
7. Motivación
•Félix García Carballeira •Introducción a la simulación •7
§ Un algoritmo clásico es: Power of two choices
load balancing
Dispatcher
s1
s2
s3
s4
sn
Servers
tasks
task is sent to the server with
the fewest number of jobs
8. Motivación
§ Algoritmo alternativo: Shortest Queue of 2
with Randomization and Round Robin Policies
•Félix García Carballeira •Introducción a la simulación •8
Dispatcher
s1
s2
s3
s4
sn
Servers
tasks
One server is chosen using Round Robin and the
other randomly
Round robin
Random
9. Motivación
§ Algoritmo alternativo: Shortest Queue of 2
with Randomization and Round Robin Policies
•Félix García Carballeira •Introducción a la simulación •9
Dispatcher
s1
s2
s3
s4
sn
Servers
tasks
One server is chosen using Round Robin and the
other randomly
Round robin
Random
10. Motivación
§ Algoritmo alternativo: Shortest Queue of 2
with Randomization and Round Robin Policies
•Félix García Carballeira •Introducción a la simulación •10
Dispatcher
s1
s2
s3
s4
sn
Servers
tasks
One server is chosen using Round Robin and the
other randomly
Round robin
Random
11. Motivación
§ Algoritmo alternativo: Shortest Queue of 2
with Randomization and Round Robin Policies
•Félix García Carballeira •Introducción a la simulación •11
Dispatcher
s1
s2
s3
s4
sn
Servers
tasks Round robin
Random
task is sent to the server with
the fewest number of jobs
13. Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •13
sistema
Experimentación
con sistema
14. Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •14
sistema
Experimentación
con sistema
Experimentación
con un modelo
15. Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •15
sistema
Experimentación
con sistema
Experimentación
con un modelo
Modelo físico
16. Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •16
sistema
Experimentación
con sistema
Experimentación
con un modelo
Modelo físico Modelo matemático
17. Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •17
sistema
Experimentación
con sistema
Experimentación
con un modelo
Modelo físico Modelo matemático
Solución analítica
18. Enfoques de estudio para el ejemplo
•Félix García Carballeira •Introducción a la simulación •18
sistema
Experimentación
con sistema
Experimentación
con un modelo
Modelo físico Modelo matemático
Solución analítica Simulación
19. Simulación de eventos discretos
§ Modela un sistema cuyo estado global cambia en función del tiempo
§ El estado global se actualiza cada vez que ocurre un evento
§ Características
q Dinámica
q Estocástica
q Discreta
q Tiempo discreto
•Félix García Carballeira •Introducción a la simulación •19
20. Características
q Dinámica: el estado del sistema varía con el tiempo
q Estocástica
§ Entradas y/o relaciones se modelan como variables aleatorias
§ Las salidas de la simulación deben tratarse como variables aleatorias
§ Ejemplo: la llegada de peticiones a un servidor Web no es determinista, sigue
una determinada función de distribución
q Discreta: las variables de estado cambian de valor en instantes separados en el
tiempo
§ El número de paquetes recibidos cambia cuando llega un paquete
§ El número de procesos en una cola de ejecución cambia cuando llega un nuevo
proceso para ejecutar
q Tiempo discreto: Las variables cambian en un conjunto discreto/numerable de
instantes de tiempo
•Félix García Carballeira •Introducción a la simulación •20
21. Eventos típicos
§ ei= evento del sistema
q ti = tiempo de llegada de una petición, tarea, trabajo, etc.
q ci= ti+Di+Si= tiempo de servicio de una petición, tarea, etc
§ Ai = tj-ti = tiempo entre llegadas
§ Si= tiempo de servicio para la petición, tarea, trabajo, etc.
§ Di= tiempo en la cola del servidor que atiende peticiones, etc.
•Félix García Carballeira •Introducción a la simulación •21
•0 t1 t2 c1 t3 c2 tiempo
•e0 e1 e2 e3 e4 e5
•A1 A2 A3
• S1 S2
22. Algoritmo de simulación
Inicializar las variables de estado
Tiempo = 0
Obtener el primer evento
while ((no haya mas eventos) AND (tiempo < máximo)) {
avanzar el tiempo
Obtener/eliminar el siguiente evento de la lista
Procesar el evento {
Actualizar el estado global
Actualizar las estadísticas de la simulación
Generar nuevos eventos y añadirlos a la lista
de eventos
}
}
Imprimir resultados
•Félix García Carballeira •Introducción a la simulación •22
23. Generación de eventos
§ Dirigidas por traza
q Se registran las trazas de eventos que ocurren en un sistema real y se alimenta el
simulador con las mismas
§ Dirigidas por una distribución aleatoria
q Los eventos y entradas son generadas a partir de una determina función de
distribución
q Ejemplo: la llegada de trabajos para su ejecución se puede modelar como la
cantidad de tiempo que transcurre entre dos llegadas consecutivas. Esta cantidad
se puede modelar con una función de distribución exponencial
•Félix García Carballeira •Introducción a la simulación •23
24. Generación de valores aleatorios
§ Un generador de números pseudoaleatorios genera una secuencia de valores zi, que
se aproximan a la distribución U(0,1)
§ Los generadores de números pseudoaleatorios parten de una semilla inicial z0
q Distintos valores de la semilla generan distintas secuencias de números
•Félix García Carballeira •Introducción a la simulación •24
25. Requisitos de un generador de números
pseudoaleatorios
§ Aleatoriedad
q Muestras aproximadas a U(0,1)
q Sin correlación entre las muestras
§ Eficiencia
q Mide el tiempo y memoria necesaria para la generación
§ Periodo máximo
q Número de muestras que se pueden obtener antes de repetir la secuencia
q El generador Mersenne twister tiene un periodo de 219937 -1
§ Secuencia reproducible
q Para poder repetir exactamente la misma simulación
•Félix García Carballeira •Introducción a la simulación •25
26. Generación de variables aleatorias
§ ¿Cómo generar variables aleatorias de otras funciones de distribución a partir de una
muestra de variables aleatorias con distribución U(0,1)?
§ Métodos
q Método de la transformada inversa
q Método de la composición
q Método de la convolución
q Método de aceptación-rechazo
•Félix García Carballeira •Introducción a la simulación •26
27. Método de la transformada inversa
•Félix García Carballeira •Introducción a la simulación •27
U
F(x)
x
x = F-1 (U)
Distribución
uniforme
1
0
28. Ejemplo: función de distribución exponencial
§ Si X es una variable aleatoria exponencial con parámetro l:
§ Función de distribución:
§ Media y varianza
•Félix García Carballeira •Introducción a la simulación •28
( )
î
í
ì
<
³
-
=
-
0
x
si
0
0
x
si
1 x
e
x
F
l
2
1
)
(
1
]
[
l
l
=
= X
V
X
E
29. Ejemplo: función de distribución exponencial
§ Si u es una muestra de una variable aleatoria U(0,1)
§ Entonces:
§ x es una muestra de una variable aleatoria exponencial con parámetro l
•Félix García Carballeira •Introducción a la simulación •29
)
1
ln(
1
u
x -
-
=
l
30. Entornos y lenguajes de simulación
§ OMNet++
§ PARSEC
§ Desmo-J
§ JavaSim
§ Adves
§ OPNET
§ Arena
§ Simio
§ Simscript
§ Simulink
§ Simgrid
•Félix García Carballeira •Introducción a la simulación •30
31. Introducción a SIMGRID
§ SIMGRID: Versatile Simulation of Distributed Systems
§ https://simgrid.org/
§ Permite la simulación de sistemas distribuidos de gran escala
q Grids, Clouds, HPC, P2P, aplicaciones MPI, …
•Félix García Carballeira •Introducción a la simulación •31
32. Introducción a SIMGRID (versión 3)
§ Ofrece un conjunto de funcionalidades para simular aplicaciones distribuidas en
entornos distribuidos heterogéneos
q MSG: modela y simula aplicaciones que intercambiar mensajes
q SimDag para grafos de aplicaciones paralelas
q SMPI para código MPI
•Félix García Carballeira •Introducción a la simulación •32
34. MSG
§ MSG: simulación de procesos secuenciales concurrentes que intercambian mensajes
§ Principales abstracciones:
q Agente: algún código, con datos, que ejecuta en un host
q Task: cantidad de trabajo a realizar y datos a intercambiar
q Host: localización en la que ejecutan los agentes
q Mailbox: lugar donde se envían los mensajes y reciben los mensajes
§ Independientes de la posición de la red
§ Los mensajes se envía a un mailbox y se reciben de un mailbox
§ Se identifican como strings
q Funcionamiento síncrono o asíncrono
•Félix García Carballeira •Introducción a la simulación •34
35. Ejemplo
•Félix García Carballeira •Introducción a la simulación •35
•host1 •host2
•100 MFLOPS •100 MFLOPS
•Ancho de banda: 1 Gbps
•Latencia: 10 ms
36. Ejemplo
•Félix García Carballeira •Introducción a la simulación •36
•host1 •host2
•100 MFLOPS •100 MFLOPS
•Ancho de banda: 1 GBps
•Latencia: 10 ms
•master •worker
•100 tareas
§ Tamaño: 100000 bytes
§ Duración del cálculo: 50 MFLOPS
(cantidad de procesamiento en flops)
37. Descripción de la plataforma: platform.xml
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM
"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
<platform version=”4.1">
<AS id="AS0" routing="Full">
<host id="host1" speed="1E8"/>
<host id="host2" speed="1E8"/>
<link id="link1" bandwidth=“1GBps" latency=”10ms"/>
<route src="host1" dst="host2">
<link_ctn id="link1"/>
</route>
</AS>
</platform>
•Félix García Carballeira •Introducción a la simulación •37
38. Descripción del despliegue: deployment.xml
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM
"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
<platform version=”4.1">
<!-- The master process -->
<process host="host1" function="master">
<argument value="100"/><!--argv[1]:#tasks-->
<argument value="1"/><!--argv[2]:#workers-->
</process>
<!-- The workers -->
<process host="host2" function="worker">
<argument value="0"/>
</process>
</platform>
Félix García Carballeira •Introducción a la simulación •38
39. Definición del master
#define task_comp_size 50000000
#define task_comm_size 100000
int master(int argc, char *argv[])
int i;
char mailbox[256]; char buf[256];
msg_task_t task = NULL;
number_of_jobs = atoi(argv[1]); number_of_workers = atoi(argv[2]);
for (i = 1; i <= number_of_jobs; i++) {// Round Robin
sprintf(mailbox, "worker-%d", i % number_of_workers);
sprintf(buf, "Task_%d", i);
task = MSG_task_create(buf, task_comp_size, task_comm_size, NULL);
MSG_task_send(task, mailbox); // mailbox en este caso es ”worker-0”
}
for (i = 0; i < number_of_workers; i++) {
sprintf(mailbox, "worker-%d", i % number_of_workers);
msg_task_t finalize = MSG_task_create("finalize", 0, 0, 0);
MSG_task_send(finalize, mailbox);
}
return 0;
}
•Félix García Carballeira •Introducción a la simulación •39
40. Definición del worker
int worker(int argc, char *argv[]) {
msg_task_t task;
int errcode;
char mailbox[80];
int id = atoi(argv[1]);
sprintf(mailbox,"worker-%d",id);
while(1) {
errcode = MSG_task_receive(&task, mailbox);
xbt_assert(errcode == MSG_OK, "MSG_task_get failed");
if (!strcmp(MSG_task_get_name(task),"finalize")) {
MSG_task_destroy(task);
break;
}
XBT_INFO("Processing '%s'", MSG_task_get_name(task));
MSG_task_execute(task);
XBT_INFO("'%s' done", MSG_task_get_name(task));
MSG_task_destroy(task);
}
return 0;
}
•Félix García Carballeira •Introducción a la simulación •40
41. Función main()
/** Main function */
int main(int argc, char *argv[])
{
MSG_init(&argc,argv);
/* Declare all existing agent, binding their name to their function */
MSG_function_register("master", &master);
MSG_function_register("worker", &worker);
/* Load a platform instance */
MSG_create_environment(argv[1]);
/* Load a deployment file */
MSG_launch_application(argv[2]);
MSG_main();
XBT_INFO("Simulation took %g seconds",MSG_get_clock());
}
•Félix García Carballeira •Introducción a la simulación •41
42. Modificación
•Félix García Carballeira •Introducción a la simulación •42
•host1
•host2
•master
•worker
•host3 •worker
•100 tareas distribuidas de forma cíclica entre los dos
43. Nueva plataforma
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM
"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
<platform version=”4.1">
<AS id="AS0" routing="Full">
<host id="host1" speed="1E8"/>
<host id="host2" speed="1E8"/>
<host id="host3" speed="1E8"/>
<link id="link1" bandwidth=”1GBps" latency=”10ms"/>
<link id="link2" bandwidth=“1GBps" latency=”10ms"/>
<route src="host1" dst="host2">
<link_ctn id="link1"/>
</route>
<route src="host1" dst="host3">
<link_ctn id="link2"/>
</route>
</AS>
</platform>
•Félix García Carballeira •Introducción a la simulación •43
44. Nuevo despliegue
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM
"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
<platform version=”4.1">
<!-- The master process -->
<process host="host1" function="master">
<argument value="100"/><!--argv[1]:#tasks-->
<argument value="2"/><!--argv[2]:#workers-->
</process>
<!-- The workers -->
<process host="host2" function="worker">
<argument value="0"/>
</process>
<process host="host3" function="worker">
<argument value="1"/>
</process>
</platform>
•Félix García Carballeira •Introducción a la simulación •44
45. Código sin fichero de despliegue
int main(int argc, char *argv[]){
MSG_init(&argc,argv);
MSG_function_register("master", &master);
MSG_function_register("worker", &worker);
/* Load a platform instance */
MSG_create_environment(argv[1]);
char**argv1=xbt_new(char*,4); argc = 3;
argv1[0] = bprintf("%s","master");
argv1[1] = bprintf("%d",100);
argv1[2] = bprintf("%d",1);
argv1[3] = NULL;
MSG_process_create_with_arguments("master", master, NULL,
MSG_get_host_by_name("host1"), argc, argv1);
char**argv2=xbt_new(char*,2); argc = 2;
argv2[0] = bprintf("%s","server");
argv2[1] = bprintf("%d",0);
argv2[2] = NULL;
MSG_process_create_with_arguments("worker", worker, NULL,
MSG_get_host_by_name("host2"), argc, argv2);
MSG_main();
XBT_INFO("Simulation took %g seconds",MSG_get_clock());
}
•Félix García Carballeira •Introducción a la simulación •45
46. Descripción de plataformas en SimGrid
§ Plataforma en SimGrid: archivo XML que describe:
q Hosts con su potencia de cómputo
q Enlaces con sus anchos de banda y latencia
q Rutas entre hosts
•Félix García Carballeira •Introducción a la simulación •46
47. Elementos que se pueden describir
§ AS (autonomous system): unidad que contiene recursos y que define el
encaminamiento entre ellos
§ Recursos que incluye un AS:
q Host
q Link
q Router
q Cluster: hosts interconectados por una red dedicada
•Félix García Carballeira •Introducción a la simulación •47
48. Especificación de un host
<host id="host1”
speed="1000000000”
[state=“ON”]
[availability_file=“host.trace”]
[core=“4”]
§ id: identificador del host
§ speed: potencia en Flops
§ availability_file: ficher de traza asociado
§ state: estado inicial del host (ON/OFF)
§ core: número de cores
•Félix García Carballeira •Introducción a la simulación •48
49. Fichero de disponibilidad
§ En el instante 0: el host proporciona 500 Mflops
§ En el instante 11.0: entrega 250 Mflops
§ En el instante 20.0: entrega el 80%, 400 Mflps
§ El proceso se repite
•Félix García Carballeira •Introducción a la simulación •49
50. Energía
<host id=”host1" speed="100.0Mf,50.0Mf,20.0Mf" >
<prop id=”watt_per_state" value="95.0:200.0,
93.0:170.0, 90.0:150.0" />
</host>
§ Define tres valores de potencia: 100, 50 y 20 Mflops
§ Para cada valor se define un par con el consumo de potencia en watios cuando el procesador está libre
y cuando está a maximo carga
•Félix García Carballeira •Introducción a la simulación •50
•#include "simgrid/plugins/energy.h”
•....
•sg_host_energy_plugin_init();
•...
•sg_host_get_consumed_energy(host);
51. Enlaces de red
<link id=“enlace_1”
bandwidth=“125MBps”
latency=“0.01”
[sharing_policy=“SHARED”] />
§ id: identificador del enlace
§ bandwidth: ancho de banda en bytes/s
§ latency: laencia del enlace
§ sharing_policy_
q SHARED (por defecto): Los flujos comparten el ancho de banda disponible
q FATPIPE: Cada flujo obtiene todo el ancho de banda del enlace
•Félix García Carballeira •Introducción a la simulación •51
52. Rutas
<host id="host1" speed=“1E8"/>
<host id="host2" speed="1E8"/>
<link id="link1" bandwidth=”1Gbps" latency=”100us"/>
<route src="host1" dst="host2">
<link_ctn id="link1"/>
</route>
•Félix García Carballeira •Introducción a la simulación •52
•Host1
•link1
•Host 2
60. Modelización básica de la red
•Félix García Carballeira •Introducción a la simulación •60
Uso de modelos analíticos
para una rápida simulación
Velho, Pedro, Schnorr, Lucas Mello, Casanova, Henri, Legrand, Arnaud.
On the Validity of Flow-level TCP Network Models for Grid and
Cloud Simulations.
ACM Transactions on Modeling and Computer Simulation (TOMACS),
2013. WWW doi:10.1145/2517448
61. Precisión del modelo de red
•Félix García Carballeira •Introducción a la simulación •61
•Lantencia = 0.117 ms
•AB = 100 Mbps
62. Precisión del modelo de red
•Félix García Carballeira •Introducción a la simulación •62
•Lantencia = 0.049 ms
•AB = 1000 Mbps
63. Tipos de comunicación
§ Comunicaciones síncrona:
q Buzones síncronos (por defecto)
§ Emisor y receptor deben coincidir en el tiempo
q Buzones asíncronos
§ MSG_mailbox_set_async(nombre);
§ El emisor en el send espera a que el mensaje llegue al host destino (hay tiempo de red)
aunque no espera el proceso receptor
§ Comunicación asíncrona (MSG_task_isend, MSG_task_ireceive)
q El emisor continua su ejecución (tiempo de ejecución 0)
q El receptor continua su ejecución si no hay mensajes
•Félix García Carballeira •Introducción a la simulación •63
64. Modelización de la CPU
§ Una CPU tiene:
q Una potencia en flop/sec
q Un número de cores
§ Una tarea requiere size flops
§ El tiempo para ejecutar la tarea será:
•Félix García Carballeira •Introducción a la simulación •64
sec
pow
size
65. SimDag
§ Permite crear DAG de tareas
q Vértices: tareas
q Arcos: relaciones de precedencia entre tareas
•Félix García Carballeira •Introducción a la simulación •65
66. Ejemplo
§ DAG formado por:
q Tres tareas secuencias:
§ c1 procesa 1e9 flops
§ c2 proceso 5e9 flops
§ c3 procesa 2e9 flops
q Una única transferencia
§ t1 de 5e8 bytes entre c1 y c3
•Félix García Carballeira •Introducción a la simulación •66
68. SMPI
§ Permite la ejecución de aplicaciones MPI en SimGrid
q Permite la experimentación reproducible de código MPI
q Probar código MPI sobre una plataforma simulada
q https://simgrid.github.io/SMPI_CourseWare/topic_getting_started/platforms/
•Félix García Carballeira •Introducción a la simulación •68
69. Escalabilidad
§ 500 000 procesos conectados por una red de 1 Gbps
q Paquete de 10000 bytes
q Tiempo simulado: 2h 20 min.
q Tiempo de simulación: 66 s.
q Memoria: 8 GB
§ 1 000 000 de procesos:
q Tiempo simulado: 3h
q Tiempo de simulación: 95 s
q Memoria: 12 GB
•Félix García Carballeira •Introducción a la simulación •69
•0
•1
•2
•3
70. Aplicación a Power of two choices load balancing
algorithm
§ Simular cluster de servidores, generador de tareas y dispatcher
§ Conocer la carga de trabajo
§ Validar el simulador realizado
•Félix García Carballeira •Introducción a la simulación •70
71. Carga de trabajo
•Félix García Carballeira •Introducción a la simulación •71
§ Distribution of tasks execution time (Google Datacenter traces vs lognormal
characterization) [7]
•Log-normal aprox:
72. Validación del simulador
•Félix García Carballeira •Introducción a la simulación •72
§ Relative error (%) comparing the simulation results to the average response
time for the Power of two choices:
•For exponential services time
73. Porcentaje de mejora de SQ-RR(d) vs SQ(d) for
Google workload
•Félix García Carballeira •Introducción a la simulación •73
F. Garcia-Carballeira, A. Calderon, and J. Carretero, “Enhancing the power of two
choices load balancing algorithm using round robin policy,” Cluster computing,
pp. 1-14, 2020
74. Ejemplos de uso de SimGrid
•Félix García Carballeira •Introducción a la simulación •74
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “ComBos: A complete
simulator of Volunteer Computing and Desktop Grids,” Simulation Modelling Practice and
Theory, vol. 77, pp. 197-211, 2017
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “Analyzing the Performance of
Volunteer Computing for Data Intensive Applications,” in The 2016 International
Conference on High Performance Computing & Simulation (HPCS 2016). The 14th
Annual Meeting, 2016.
• Alonso-Monsalve, F. Garca-Carballeira, and A. Calderón, “A heterogeneous mobile cloud
computing model for hybrid clouds,” Future generation computer systems, 2018
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “Fog Computing Through
Public-Resource Computing and Storage,” in 2nd International Conference on Fog and
Edge Mobile Computing (FMEC2017), 2017
• E. del Pozo and F. Garcia-Carballeira, “A generic simulator for edge computing platforms,”
in 2020 International Conference on High Performance Computing & Simulation (HPCS).
barcelona, march 2021, 2021.
75. Complete Simulator of BOINC Infrastructures
(ComBoS)
§ https://arcos-combos.github.io
§ Simulador de una infraestructura completa de computación voluntaria basada en
BOINC
•Félix García Carballeira •75
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “ComBos: A complete
simulator of Volunteer Computing and Desktop Grids,” Simulation Modelling
Practice and Theory, vol. 77, pp. 197-211, 2017
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “Analyzing the
Performance of Volunteer Computing for Data Intensive Applications,” in The
2016 International Conference on High Performance Computing & Simulation
(HPCS 2016). The 14th Annual Meeting, 2016.
•Introducción a la simulación
76. Computación voluntaria
•Félix García Carballeira •76
•1.- Download input files
•2.- Compute the application
•3.- Upload output files
•4.- Report results
•Project servers
•Volunteer PC
•Introducción a la simulación
77. Arquitectura de ComBoS
•Félix García Carballeira •77
Project
database
Work
generator
Project back end
Validator Assimilator File deleter
File storage
Input files
Output files
Workunits
Results
Statistics
Server complex
Scheduling server Data server
Requests Dispatcher Requests Dispatcher
Server side
Client group
Volunteer host 1
Work fetch
(ask for files)
Client main process
Execute
tasks
Volunteer host 2
Volunteer host N
Client side
•Introducción a la simulación
78. Información para la simulación
•Félix García Carballeira •78
§ Server side
q number of scheduling
servers
q number of data servers
q bandwidth of disks
q CPU power of servers
(GigaFLOPS)
q input file size
q task deadline
q …
Project
database
Work
generator
Project back end
Validator Assimilator File deleter
File storage
Input files
Output files
Workunits
Results
Statistics
Server complex
Scheduling server Data server
Requests Dispatcher Requests Dispatcher
Server side
Client group
Volunteer host 1
Work fetch
(ask for files)
Client main process
Execute
tasks
Volunteer host 2
Volunteer host N
Client side
•Introducción a la simulación
79. Información para la simulación
•Félix García Carballeira •79
§ Client side
q number of groups
q number of volunteer
nodes per group
q number of projects
attached per volunteer in
a group
q bandwidth and latency of
the network
q CPU power model
q Availability and
unavailability model
Project
database
Work
generator
Project back end
Validator Assimilator File deleter
File storage
Input files
Output files
Workunits
Results
Statistics
Server complex
Scheduling server Data server
Requests Dispatcher Requests Dispatcher
Server side
Client group
Volunteer host 1
Work fetch
(ask for files)
Client main process
Execute
tasks
Volunteer host 2
Volunteer host N
Client side
•Introducción a la simulación
80. Definición de la potencia de CPU
•Félix García Carballeira •80
§ Statistical model
§ Traces
0.25
0.5
0.75
1
25 50 75 100 125 150
Cumulative
Probability
GigaFLOPS/Computer
0
SETI@home hosts
Exponential CDF
•Introducción a la simulación
81. Validación
§ Compare the simulation results with the statistics of real projects (BOINCstats)
q SETI@home
q LHC@home
q Einstein@home
§ Availability model used in the simulation developed in
§ Hosts power: model obtained from the 3,900,000 hosts that participate in SETI@home
§ ADSL networks and Internet backbone of 10 Gbps
•Félix García Carballeira •Introducción a la simulación •81
J.-M. V. D. P. A. Bahman Javadi, Derrick Kondo, “Discovering Statistical Models of
Availability in Large Distributed Systems: An Empirical Study of SETI@home,”
Parallel and Distributed Systems, IEEE Trans- actions, vol. 22, pp. 1896–1903, 2011.
82. Resultados de la validación (GigaFLOPS)
•Félix García Carballeira •82
BOINCstats ComBoS
Project Active Hosts GigaFLOPS GigaFLOPS Error
SETI@home 175,220 864,711 865,001 0.03%
Einstein@home 68,338 1,044,515 1,028,172 1,16%
LHC@home 15,814 7,521 7,392 1,7%
•Results published in BOINCstats about real projects
•Introducción a la simulación
83. Resultados de la validación (créditos/día)
•Félix García Carballeira •83
BOINCstats ComBoS
Project Active Hosts Credits/day Credits/day Error
SETI@home 175,220 171,785,234 168,057,478 2.1%
Einstein@home 68,338 208,902,921 205,634,486 1.56%
LHC@home 15,814 1,504,214 1,393,932 7.3%
•Results published in BOINCstats about real projects
•Crédito: medida del trabajo realizado por un cliente. Una máquina de
•1 GigaFLOP ejecutando durante todo el día produce 200 créditos.
•Introducción a la simulación
84. Rendimiento de ComBoS
•Félix García Carballeira •84
7.5
15
22.5
30
2⋅105
4⋅105
6⋅105
8⋅105
1⋅106
Memory
(GB)
Number of client hosts
0
40
80
120
160
2⋅105
4⋅105
6⋅105
8⋅105
1⋅106
Elapsed
time
(hours)
Number of client hosts
0
1 day
2 days
3 days
4 days
•Memory usage •Execution time
•Introducción a la simulación
85. Modelo de computación voluntaria para aplicaciones
intensivas en datos
§ Modelo de computación voluntaria que utiliza nodos como voluntarios de datos
§ Los voluntarios de datos participan como el resto de nodos pero el software que se
descargan actúa como un servidor de ficheros
•Félix García Carballeira •Introducción a la simulación •85
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “A new volunteer computing model for
data-intensive applications,” Concurrency and computation: practice and experience. 2017
• S. Alonso-Monsalve, F. Garcia-Carballeira, and A. Calderon, “Improving the Performance of
Volunteer Computing with Data Volunteers: A Case Study with the ATLAS@ home Project,” in
ICA3PP: 16th International Conference on Algorithms and Architectures for Parallel Processing,
2016,
86. Modelo original de BOINC
•Félix García Carballeira •86
•Introducción a la simulación
90. Félix García Carballeira
Grupo de Arquitectura de Computadores
Universidad Carlos III de Madrid
felix.garcia@uc3m.es
Simulación de sistemas
distribuidos de gran escala