SlideShare a Scribd company logo
1 of 90
Download to read offline
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
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
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
¿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
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
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
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
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
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
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
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
Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •12
sistema
Enfoques de estudio
•Félix García Carballeira •Introducción a la simulación •13
sistema
Experimentación
con sistema
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Instalación
•Félix García Carballeira •Introducción a la simulación •33
•https://simgrid.org/
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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);
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
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
Rutas con múltiples saltos
<host id="host1" speed="1E8"/>
<host id="host2" speed="1E8"/>
<host id="host2" speed="1E8"/>
<link id="link1" bandwidth="1E6" latency=”100ms"/>
<link id="link2" bandwidth="1E6" latency=”500us"/>
<link id="link3" bandwidth=“2E6" latency=”150ms"/>
<link id="link4" bandwidth=“2E6" latency=”100ms"/>
<route src="host1" dst="host3">
<link_ctn id="link1"/>
<link_ctn id="link3"/>
<link_ctn id="link4"/>
</route>
<route src="host2" dst="host3">
<link_ctn id="link2"/>
<link_ctn id="link3"/>
<link_ctn id="link4"/>
</route>
•Félix García Carballeira •Introducción a la simulación •53
•Host1 •Host 3
•link1
•link3
•link4
•Host 2
•link2
Especificaciones de routers
<router id=”R1”>
<router id=”R2”>
<route src=“A” dest=”R1”>
<link_ctn id=“link1”/>
</route>
<route src=“R1” dest=”B”>
<link_ctn id=“link2”/>
</route>
<route src=“R1” dest=”C”>
<link_ctn id=“link3”/>
</route>
•Félix García Carballeira •Introducción a la simulación •54
Definición de clusters
•Félix García Carballeira •Introducción a la simulación •55
Definición de clusters
•Félix García Carballeira •Introducción a la simulación •56
•<AS id="AS0" routing="Full">
• <cluster id="my_cluster_1" prefix="c-" suffix=".me" radical="0-9"
• speed="1Gf" bw="125MBps" lat="50us" bb_bw="2.25GBps"
• bb_lat="500us" />
• <cluster id="my_cluster_2" prefix="c-" suffix=".me" radical="10-19"
• speed="1Gf" bw="125MBps" lat="50us" bb_bw="2.25GBps"
• bb_lat="500us" />
• <link id="backbone" bandwidth="1.25GBps" latency="500us" />
• <ASroute src="my_cluster_1" dst="my_cluster_2"
•gw_src="c-my_cluster_1_router.me"
• gw_dst="c-my_cluster_2_router.me">
• <link_ctn id="backbone" />
• </ASroute>
•</AS>
Otro tipo de cluster
•Félix García Carballeira •Introducción a la simulación •57
Torus Cluster
•Félix García Carballeira •Introducción a la simulación •58
Fat-Tree Cluster
•Félix García Carballeira •Introducción a la simulación •59
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
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
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
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
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
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
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
Especificación del ejemplo
int main(int argc, char **argv) {
SD_task_t c1, c2, c3, t1;
SD_init(&argc, argv);
c1 = SD_task_create_comp_seq("c1", NULL, 1E9);
c2 = SD_task_create_comp_seq("c2", NULL, 5E9);
c3 = SD_task_create_comp_seq("c3", NULL, 2E9);
t1 = SD_task_create_comm_e2e("t1", NULL, 5e8);
SD_task_dependency_add ("c1-t1", NULL, c1, t1);
SD_task_dependency_add ("t1-c3", NULL, t1, c3);
SD_task_dependency_add ("c2-c3", NULL, c2, c3);
SD_exit();
return 0;
}
•Félix García Carballeira •Introducción a la simulación •67
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
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
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
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:
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
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
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.
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
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
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
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
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
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
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.
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
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
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
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,
Modelo original de BOINC
•Félix García Carballeira •86
•Introducción a la simulación
Evaluation: ATLAS@home project
•Félix García Carballeira •87
•Introducción a la simulación
Modelo de BOINC alternativo
•Félix García Carballeira •88
•Introducción a la simulación
Evaluation: ATLAS@home project
•Félix García Carballeira •89
•Introducción a la simulación
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

More Related Content

What's hot

Estructura general de un sistema
Estructura general de un sistemaEstructura general de un sistema
Estructura general de un sistemaHIAMIX
 
Clasificación de Sistemas de Informacion
Clasificación de Sistemas de InformacionClasificación de Sistemas de Informacion
Clasificación de Sistemas de InformacionMarthaBCHT
 
42 preguntas que deberias hacerte antes de abordar un proyecto
42 preguntas que deberias hacerte antes de abordar un proyecto42 preguntas que deberias hacerte antes de abordar un proyecto
42 preguntas que deberias hacerte antes de abordar un proyectoBlogdelfreelance .com
 
Sistemas de informacion estrategicos
Sistemas de informacion estrategicosSistemas de informacion estrategicos
Sistemas de informacion estrategicosjloaiza8
 
Check List Seguridad Informatica y Sistemas
Check List Seguridad Informatica y SistemasCheck List Seguridad Informatica y Sistemas
Check List Seguridad Informatica y SistemasÁlex Picón
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
1.1 REQUERIMIENTOS DE PROCESO
1.1 REQUERIMIENTOS DE PROCESO1.1 REQUERIMIENTOS DE PROCESO
1.1 REQUERIMIENTOS DE PROCESOmataditoxd
 
Planificación de sistemas de información
Planificación de sistemas de informaciónPlanificación de sistemas de información
Planificación de sistemas de informaciónMARCO POLO SILVA SEGOVIA
 
Diseno de instrumentos-de-recoleccion-de-datos
Diseno de instrumentos-de-recoleccion-de-datosDiseno de instrumentos-de-recoleccion-de-datos
Diseno de instrumentos-de-recoleccion-de-datosprofeperilla
 
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemasUNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemasUNEG-AS
 
Arquitectura de Datos
Arquitectura de DatosArquitectura de Datos
Arquitectura de DatosJazmin Glez.
 
Sistema informacion-gerencial-y-estrategico
Sistema informacion-gerencial-y-estrategicoSistema informacion-gerencial-y-estrategico
Sistema informacion-gerencial-y-estrategicoCesar Suniaga
 

What's hot (20)

Determinación de costos por simulación
Determinación de costos por simulaciónDeterminación de costos por simulación
Determinación de costos por simulación
 
Estructura general de un sistema
Estructura general de un sistemaEstructura general de un sistema
Estructura general de un sistema
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Clasificación de Sistemas de Informacion
Clasificación de Sistemas de InformacionClasificación de Sistemas de Informacion
Clasificación de Sistemas de Informacion
 
42 preguntas que deberias hacerte antes de abordar un proyecto
42 preguntas que deberias hacerte antes de abordar un proyecto42 preguntas que deberias hacerte antes de abordar un proyecto
42 preguntas que deberias hacerte antes de abordar un proyecto
 
Sistemas de informacion estrategicos
Sistemas de informacion estrategicosSistemas de informacion estrategicos
Sistemas de informacion estrategicos
 
Check List Seguridad Informatica y Sistemas
Check List Seguridad Informatica y SistemasCheck List Seguridad Informatica y Sistemas
Check List Seguridad Informatica y Sistemas
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
1.1 REQUERIMIENTOS DE PROCESO
1.1 REQUERIMIENTOS DE PROCESO1.1 REQUERIMIENTOS DE PROCESO
1.1 REQUERIMIENTOS DE PROCESO
 
Uso de las Bases De Datos
Uso de las Bases De DatosUso de las Bases De Datos
Uso de las Bases De Datos
 
Planificación de sistemas de información
Planificación de sistemas de informaciónPlanificación de sistemas de información
Planificación de sistemas de información
 
Seis sigma
Seis sigmaSeis sigma
Seis sigma
 
Diseno de instrumentos-de-recoleccion-de-datos
Diseno de instrumentos-de-recoleccion-de-datosDiseno de instrumentos-de-recoleccion-de-datos
Diseno de instrumentos-de-recoleccion-de-datos
 
Graficos de control
Graficos de controlGraficos de control
Graficos de control
 
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemasUNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
 
Modelos de decisiones
Modelos de decisionesModelos de decisiones
Modelos de decisiones
 
Arquitectura de Datos
Arquitectura de DatosArquitectura de Datos
Arquitectura de Datos
 
Sistema informacion-gerencial-y-estrategico
Sistema informacion-gerencial-y-estrategicoSistema informacion-gerencial-y-estrategico
Sistema informacion-gerencial-y-estrategico
 
Tipos de sistemas de información
Tipos de sistemas de informaciónTipos de sistemas de información
Tipos de sistemas de información
 
Simulacion discreta
Simulacion discretaSimulacion discreta
Simulacion discreta
 

Similar to Simulación de sistemas distribuidos de gran escala

System Simulation
System Simulation  System Simulation
System Simulation Edgar Mata
 
Simulacion con promodel 88 diaposit
Simulacion con promodel  88 diapositSimulacion con promodel  88 diaposit
Simulacion con promodel 88 diapositLA Antifashion Ramos
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresEnrique Catala Bañuls
 
Lineas de espera
Lineas de esperaLineas de espera
Lineas de esperaTensor
 
lineas - de - espera teoria de colas , filas
lineas - de - espera teoria de colas , filaslineas - de - espera teoria de colas , filas
lineas - de - espera teoria de colas , filas170874
 
Diagnostico y resolución de problemas en sql server
Diagnostico y resolución de problemas en sql serverDiagnostico y resolución de problemas en sql server
Diagnostico y resolución de problemas en sql serverSpanishPASSVC
 
System Simulation with Excel (Part 2)
System Simulation with Excel (Part 2)System Simulation with Excel (Part 2)
System Simulation with Excel (Part 2)Edgar Mata
 
OPTIMIZACION DE SISTEMAS III - CLASE 06.pptx
OPTIMIZACION DE SISTEMAS III - CLASE 06.pptxOPTIMIZACION DE SISTEMAS III - CLASE 06.pptx
OPTIMIZACION DE SISTEMAS III - CLASE 06.pptxJoseMiguelRiveraMare
 
Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008Salvador Ramos
 
Programación Funcional y Orientada a Objetos con Asincronismos
Programación Funcional y Orientada a Objetos con AsincronismosProgramación Funcional y Orientada a Objetos con Asincronismos
Programación Funcional y Orientada a Objetos con AsincronismosVíctor Bolinches
 
Líneas de espera (1) ejercicio
Líneas de espera (1) ejercicioLíneas de espera (1) ejercicio
Líneas de espera (1) ejercicioMachado Mauricio
 
Sesion2 simulacion
Sesion2 simulacionSesion2 simulacion
Sesion2 simulacionkbellezae
 

Similar to Simulación de sistemas distribuidos de gran escala (20)

Clouster y grid
Clouster y gridClouster y grid
Clouster y grid
 
System Simulation
System Simulation  System Simulation
System Simulation
 
Simulacion con promodel 88 diaposit
Simulacion con promodel  88 diapositSimulacion con promodel  88 diaposit
Simulacion con promodel 88 diaposit
 
Quees theory
Quees theoryQuees theory
Quees theory
 
Quees theory
Quees theoryQuees theory
Quees theory
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
Lineas de espera
Lineas de esperaLineas de espera
Lineas de espera
 
lineas - de - espera teoria de colas , filas
lineas - de - espera teoria de colas , filaslineas - de - espera teoria de colas , filas
lineas - de - espera teoria de colas , filas
 
SimulacionSistemasDinamicos.pptx
SimulacionSistemasDinamicos.pptxSimulacionSistemasDinamicos.pptx
SimulacionSistemasDinamicos.pptx
 
simulacion-compartido.pdf
simulacion-compartido.pdfsimulacion-compartido.pdf
simulacion-compartido.pdf
 
Diagnostico y resolución de problemas en sql server
Diagnostico y resolución de problemas en sql serverDiagnostico y resolución de problemas en sql server
Diagnostico y resolución de problemas en sql server
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
System Simulation with Excel (Part 2)
System Simulation with Excel (Part 2)System Simulation with Excel (Part 2)
System Simulation with Excel (Part 2)
 
Comunicación entre Procesos
Comunicación entre ProcesosComunicación entre Procesos
Comunicación entre Procesos
 
OPTIMIZACION DE SISTEMAS III - CLASE 06.pptx
OPTIMIZACION DE SISTEMAS III - CLASE 06.pptxOPTIMIZACION DE SISTEMAS III - CLASE 06.pptx
OPTIMIZACION DE SISTEMAS III - CLASE 06.pptx
 
Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008
 
Programación Funcional y Orientada a Objetos con Asincronismos
Programación Funcional y Orientada a Objetos con AsincronismosProgramación Funcional y Orientada a Objetos con Asincronismos
Programación Funcional y Orientada a Objetos con Asincronismos
 
Tema teoria de lineas de espera
Tema teoria de lineas de esperaTema teoria de lineas de espera
Tema teoria de lineas de espera
 
Líneas de espera (1) ejercicio
Líneas de espera (1) ejercicioLíneas de espera (1) ejercicio
Líneas de espera (1) ejercicio
 
Sesion2 simulacion
Sesion2 simulacionSesion2 simulacion
Sesion2 simulacion
 

More from Facultad de Informática UCM

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?Facultad de Informática UCM
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...Facultad de Informática UCM
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersFacultad de Informática UCM
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmFacultad de Informática UCM
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingFacultad de Informática UCM
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroFacultad de Informática UCM
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...Facultad de Informática UCM
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Facultad de Informática UCM
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFacultad de Informática UCM
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoFacultad de Informática UCM
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCFacultad de Informática UCM
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Facultad de Informática UCM
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Facultad de Informática UCM
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Facultad de Informática UCM
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windFacultad de Informática UCM
 

More from Facultad de Informática UCM (20)

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation Computers
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura Arm
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented Computing
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuro
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error Correction
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPC
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
 
Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore wind
 

Recently uploaded

clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 

Recently uploaded (20)

clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 

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
  • 12. Enfoques de estudio •Félix García Carballeira •Introducción a la simulación •12 sistema
  • 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
  • 33. Instalación •Félix García Carballeira •Introducción a la simulación •33 •https://simgrid.org/
  • 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
  • 53. Rutas con múltiples saltos <host id="host1" speed="1E8"/> <host id="host2" speed="1E8"/> <host id="host2" speed="1E8"/> <link id="link1" bandwidth="1E6" latency=”100ms"/> <link id="link2" bandwidth="1E6" latency=”500us"/> <link id="link3" bandwidth=“2E6" latency=”150ms"/> <link id="link4" bandwidth=“2E6" latency=”100ms"/> <route src="host1" dst="host3"> <link_ctn id="link1"/> <link_ctn id="link3"/> <link_ctn id="link4"/> </route> <route src="host2" dst="host3"> <link_ctn id="link2"/> <link_ctn id="link3"/> <link_ctn id="link4"/> </route> •Félix García Carballeira •Introducción a la simulación •53 •Host1 •Host 3 •link1 •link3 •link4 •Host 2 •link2
  • 54. Especificaciones de routers <router id=”R1”> <router id=”R2”> <route src=“A” dest=”R1”> <link_ctn id=“link1”/> </route> <route src=“R1” dest=”B”> <link_ctn id=“link2”/> </route> <route src=“R1” dest=”C”> <link_ctn id=“link3”/> </route> •Félix García Carballeira •Introducción a la simulación •54
  • 55. Definición de clusters •Félix García Carballeira •Introducción a la simulación •55
  • 56. Definición de clusters •Félix García Carballeira •Introducción a la simulación •56 •<AS id="AS0" routing="Full"> • <cluster id="my_cluster_1" prefix="c-" suffix=".me" radical="0-9" • speed="1Gf" bw="125MBps" lat="50us" bb_bw="2.25GBps" • bb_lat="500us" /> • <cluster id="my_cluster_2" prefix="c-" suffix=".me" radical="10-19" • speed="1Gf" bw="125MBps" lat="50us" bb_bw="2.25GBps" • bb_lat="500us" /> • <link id="backbone" bandwidth="1.25GBps" latency="500us" /> • <ASroute src="my_cluster_1" dst="my_cluster_2" •gw_src="c-my_cluster_1_router.me" • gw_dst="c-my_cluster_2_router.me"> • <link_ctn id="backbone" /> • </ASroute> •</AS>
  • 57. Otro tipo de cluster •Félix García Carballeira •Introducción a la simulación •57
  • 58. Torus Cluster •Félix García Carballeira •Introducción a la simulación •58
  • 59. Fat-Tree Cluster •Félix García Carballeira •Introducción a la simulación •59
  • 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
  • 67. Especificación del ejemplo int main(int argc, char **argv) { SD_task_t c1, c2, c3, t1; SD_init(&argc, argv); c1 = SD_task_create_comp_seq("c1", NULL, 1E9); c2 = SD_task_create_comp_seq("c2", NULL, 5E9); c3 = SD_task_create_comp_seq("c3", NULL, 2E9); t1 = SD_task_create_comm_e2e("t1", NULL, 5e8); SD_task_dependency_add ("c1-t1", NULL, c1, t1); SD_task_dependency_add ("t1-c3", NULL, t1, c3); SD_task_dependency_add ("c2-c3", NULL, c2, c3); SD_exit(); return 0; } •Félix García Carballeira •Introducción a la simulación •67
  • 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
  • 87. Evaluation: ATLAS@home project •Félix García Carballeira •87 •Introducción a la simulación
  • 88. Modelo de BOINC alternativo •Félix García Carballeira •88 •Introducción a la simulación
  • 89. Evaluation: ATLAS@home project •Félix García Carballeira •89 •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