SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

Herramientas case
Herramientas case Herramientas case
Herramientas case
00menni
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
Eduardo Navarrete Salazar
 
Optimizacion de sistemas y funciones
Optimizacion de sistemas y funciones Optimizacion de sistemas y funciones
Optimizacion de sistemas y funciones
Yrem Bermudez
 
Caracteristicas de los primeros chipset
Caracteristicas de los primeros chipsetCaracteristicas de los primeros chipset
Caracteristicas de los primeros chipset
Juan Anaya
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Universidad Nacional de Piura
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
Jose R. Hilera
 
Analisis estructurado
Analisis estructuradoAnalisis estructurado
Analisis estructurado
kvillazon
 
Metodologia estructurada
Metodologia estructuradaMetodologia estructurada
Metodologia estructurada
M'elver Melende'z
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientos
almarza1
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
Roger Villegas
 
Componentes de un sistema de base de datos
Componentes de un sistema de base de datosComponentes de un sistema de base de datos
Componentes de un sistema de base de datos
Isabel
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacion
zulaymaylin
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
landeta_p
 
Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3
UV
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
Jose Patricio Bovet Derpich
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
Yaskelly Yedra
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
Universidad Técnica del Norte
 
Fase de implementación de sistemas de información
Fase de implementación de sistemas de informaciónFase de implementación de sistemas de información
Fase de implementación de sistemas de información
NAHAMA19
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
John Anthony Peraza
 
arquitecturas-SISD%SIMD%MISD%MIMD
arquitecturas-SISD%SIMD%MISD%MIMDarquitecturas-SISD%SIMD%MISD%MIMD
arquitecturas-SISD%SIMD%MISD%MIMD
Universidad Centroccidental "Lisandro Alvarado"
 

La actualidad más candente (20)

Herramientas case
Herramientas case Herramientas case
Herramientas case
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
Optimizacion de sistemas y funciones
Optimizacion de sistemas y funciones Optimizacion de sistemas y funciones
Optimizacion de sistemas y funciones
 
Caracteristicas de los primeros chipset
Caracteristicas de los primeros chipsetCaracteristicas de los primeros chipset
Caracteristicas de los primeros chipset
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Analisis estructurado
Analisis estructuradoAnalisis estructurado
Analisis estructurado
 
Metodologia estructurada
Metodologia estructuradaMetodologia estructurada
Metodologia estructurada
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientos
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Componentes de un sistema de base de datos
Componentes de un sistema de base de datosComponentes de un sistema de base de datos
Componentes de un sistema de base de datos
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacion
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Fase de implementación de sistemas de información
Fase de implementación de sistemas de informaciónFase de implementación de sistemas de información
Fase de implementación de sistemas de información
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
arquitecturas-SISD%SIMD%MISD%MIMD
arquitecturas-SISD%SIMD%MISD%MIMDarquitecturas-SISD%SIMD%MISD%MIMD
arquitecturas-SISD%SIMD%MISD%MIMD
 

Similar a Simulación de sistemas distribuidos de gran escala

Clouster y grid
Clouster y gridClouster y grid
Clouster y grid
Gredhy Valdivia
 
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 diaposit
LA Antifashion Ramos
 
Quees theory
Quees theoryQuees theory
Quees theory
DonatoTapias
 
Quees theory
Quees theoryQuees theory
Quees theory
DonatoTapias
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
Enrique Catala Bañuls
 
Lineas de espera
Lineas de esperaLineas de espera
Lineas de espera
Tensor
 
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
170874
 
SimulacionSistemasDinamicos.pptx
SimulacionSistemasDinamicos.pptxSimulacionSistemasDinamicos.pptx
SimulacionSistemasDinamicos.pptx
LENASOFIAALAPECASTAN
 
simulacion-compartido.pdf
simulacion-compartido.pdfsimulacion-compartido.pdf
simulacion-compartido.pdf
GenyferAldanaSalgado1
 
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
SpanishPASSVC
 
(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
Microsoft Argentina y Uruguay [Official Space]
 
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
 
Comunicación entre Procesos
Comunicación entre ProcesosComunicación entre Procesos
Comunicación entre Procesos
SandraRodriguezAvila
 
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
JoseMiguelRiveraMare
 
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
Salvador 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 Asincronismos
Víctor Bolinches
 
Tema teoria de lineas de espera
Tema teoria de lineas de esperaTema teoria de lineas de espera
Tema teoria de lineas de espera
Socorro Lomeli Sanchez
 
Líneas de espera (1) ejercicio
Líneas de espera (1) ejercicioLíneas de espera (1) ejercicio
Líneas de espera (1) ejercicio
Machado Mauricio
 
Sesion2 simulacion
Sesion2 simulacionSesion2 simulacion
Sesion2 simulacion
kbellezae
 

Similar a 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
 

Más de 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 Computers
Facultad de Informática UCM
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
Facultad 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 Arm
Facultad de Informática UCM
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
Facultad 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 Computing
Facultad de Informática UCM
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
Facultad 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 futuro
Facultad 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 Correction
Facultad 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 intento
Facultad 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 HPC
Facultad de Informática UCM
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
Facultad 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
 
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?
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 wind
Facultad de Informática UCM
 

Más de 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
 

Último

DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtualSESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
JuanGavidia2
 
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de PlantasDISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
HalmarMiranda
 
tema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdftema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdf
veronicaluna80
 
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdfECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ArnulfoPerezPerez2
 
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdfEstilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
ElisaLen4
 
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdftintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
MishelBautista4
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
MONICADELROCIOMUNZON1
 
Sistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motorSistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motor
mauriciok961
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
Edgar Najera
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
KruggerCossio1
 
Presentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calorPresentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calor
GerardoBracho3
 
TIA portal Bloques PLC Siemens______.pdf
TIA portal Bloques PLC Siemens______.pdfTIA portal Bloques PLC Siemens______.pdf
TIA portal Bloques PLC Siemens______.pdf
ArmandoSarco
 
Clase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieriaClase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieria
leonidasbajalquepuch
 
Control de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptxControl de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptx
alexanderlara1198
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 
Aletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicosAletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicos
FrancelisFernandez
 
Aletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptxAletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptx
jeffersoncolina427
 

Último (20)

DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtualSESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
 
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de PlantasDISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
 
tema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdftema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdf
 
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdfECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
 
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdfEstilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
 
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdftintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
 
Sistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motorSistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motor
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
 
Presentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calorPresentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calor
 
TIA portal Bloques PLC Siemens______.pdf
TIA portal Bloques PLC Siemens______.pdfTIA portal Bloques PLC Siemens______.pdf
TIA portal Bloques PLC Siemens______.pdf
 
Clase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieriaClase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieria
 
Control de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptxControl de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptx
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 
Aletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicosAletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicos
 
Aletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptxAletas de Transferencia de Calor Jefferson Colina.pptx
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
  • 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