alan malta rodrigues cmp167 – programação com objetos distribuídos instituto de informática...
TRANSCRIPT
![Page 1: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/1.jpg)
Alan Malta Rodrigues
CMP167 – Programação com Objetos Distribuídos
Instituto de Informática
Universidade Federal do Rio Grande do Sul
08 de julho de 2009.
Modelagem da XtremWeb no SimGrid
1
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 2: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/2.jpg)
Sumário
ObjetivosXtremWebSimGridProtótipoTrabalhos FuturosConclusões
2
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 3: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/3.jpg)
Objetivos3
Estudar e apresentar o simulador SimGrid;
Modelar a Grid XtremWeb no SimGrid
Avaliar diferentes configurações da XtremWeb:Quantidade de nodos;Quantidade de tarefas;Tamanho da tarefa (CPU-Gflops);Tamanho da tarefa (NET-KB).
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 4: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/4.jpg)
XtremWeb4
Grid de código aberto para plataformas distribuída;Modelo de desktop computing;Conceito de computação oportunista;Implementada em C e Java;Composta por 3 componentes:
ServerEscalona tarefas.
WorkerExecuta as tarefas.
ClientRequisita tarefas.
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 5: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/5.jpg)
SimGrid5
SimGrid é um toolkit para desenvolvimento de ambientes distribuídos;
Possui várias APIs de programação;
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 6: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/6.jpg)
SimGrid6
Requisitos para simulação no módulo MSG:
1. Arquivo xml da plataforma:Power, bandwidth e latency;Tabela de roteamento.
2. Arquivo xml do deploy:Função dos processos;Argumentos como:
Quantidade de tarefas, requisito de CPU e de NET por tarefa.
3. Código em C linkando as bibliotecas do SimGrid (msg e xbt).
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 7: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/7.jpg)
Protótipo
Cenário: desktop computing;Váriáveis da simulação:
Todas as combinações de teste;Cada teste feito 30 vezes*.
7
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
Nodes Tasks CPU_req NET_req Fail rate
100 100 ~6,3Gf (1min) 10KB 10%
500 1K ~63Gf (10min) 100KB 30%
1K 100K ~126Gf (20min) 1MB 40%
5K 1M - 10MB +5%
![Page 8: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/8.jpg)
Protótipo – Platform.xml8
Plataformas geradas aleatoriamente, seguindo os seguintes argumentos:Power:
Mínima: 35Mflops (P3 600MHz) Máxima: 181Mflops (Pentium M 1.83MHz)
Bandwidth: Mínima: 250/128Kbps Máxima: 14/1Mbps
Latency: Mínima: 5ms Máxima: 2000ms
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
Bandwidth
Download Taxa (%)
>= 1Mbps 37
>= 512Kbps & < 1Mbps
33
>= 256Kbps & < 512Kbps
20%
< 256Kbps 10%
![Page 9: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/9.jpg)
Protótipo – Platform.xml9
<platform version="2"><host id="Node_1" power="314572800"/><host id="Node_2" power="168820736"/><link id="Node_1_in" bandwidth="6553600" latency="0.100"/><link id="Node_1_out" bandwidth="1310720" latency="0.100"/><link id="Node_2_in" bandwidth="64000" latency="0.169000"/><link id="Node_2_out" bandwidth="16384" latency="0.978000"/><link id="loopback" bandwidth="13107200" latency="0.005" sharing_policy="FATPIPE"/><route src="Node_1" dst="Node_1"><link:ctn id="loopback"/></route><route src="Node_2" dst="Node_2"><link:ctn id="loopback"/></route><route src="Node_1" dst="Node_2">
<link:ctn id="Node_1_out"/><link:ctn id="Node_2_in"/></route><route src="Node_2" dst="Node_1">
<link:ctn id="Node_2_out"/><link:ctn id="Node_1_in"/></route>(...)
</platform>
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 10: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/10.jpg)
Protótipo – deploy.xml10
<platform version="2">
<process host="Node_1" function="server">
<argument value="100000"/> <!-- Number of tasks to execute -->
<argument value="6.79477e+09"/> <!-- Range of the random task cpu requirement -->
<argument value="10240"/> <!-- Range of the random task net requirement -->
<argument value="Node_2"/>
</process>
<process host="Node_2" function="worker"/>
</platform>
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 11: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/11.jpg)
Protótipo – Código fonte (server)11
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
int server(int argc, char *argv[])
{
server_host = MSG_host_self();
num_workers = argc – 4;
xbt_assert1(sscanf(argv[1],"%d", &tasks_count), "Invalid parameter %s\n",argv[1]);
xbt_assert1(sscanf(argv[2],"%lg", &task_cpu_size), "Invalid parameter %s\n",argv[2]);
xbt_assert1(sscanf(argv[3],"%lg", &task_net_size), "Invalid parameter %s\n",argv[3]);
todo = create_tasks();
workers = create_hosts(argv);
scheduler(tasks_count, num_workers, workers);
free(workers);
free(todo);
return 0;
} /* end_of_server */
![Page 12: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/12.jpg)
Protótipo – Código fonte (scheduler)12
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
int scheduler(int tasks_count, int workers_count, m_host_t* workers) {
for (i = 0; i < tasks_count; i++) {
requester = NULL;requester = receive_request_task();if(requester == NULL)
continue;else
a = send_task_to_worker(i, requester);}for (; i < (tasks_count+tasks_losted); i++) {
(...)}for(i=0; i<workers_count; i++){
(...)}INFO1("NUMBER OF TASKS LOSTED %d", tasks_losted);return 0;
} /* end_of_scheduler */
![Page 13: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/13.jpg)
Protótipo – Código fonte (worker)13
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
int worker(int argc, char *argv[]){
srand(time(NULL)+pid);while(1) {
if(rand()%4 == 1) /* 25% can sleep */{
to_sleep = rand()%86401;if(to_sleep >= 60){
MSG_process_sleep(to_sleep);}
}a = request_task_to_server();switch(a){
case MSG_OK:b = receive_task_from_server(); /* execute_task(task); */break;
} } /* end_of_while */return 0;
} /* end_of_worker */
![Page 14: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/14.jpg)
Trabalhos Futuros14
Simular a XtremWeb com 10K e 100K nodes;
Simular a XtremWeb com tarefas de 30min e 60min;
Simular outros algoritmos de escalonamento;
Simular outros cenários (corporativo e G5K).
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer
![Page 15: Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc11b497959413d8c99b2/html5/thumbnails/15.jpg)
Conclusões15
As simulações na SimGrid não são tão rápidas;
Algoritmo de escalonamento da XtremWeb não é bom;
Ausência de checkpoint é bastante prejudicial;
Arquivos XML são relativamente grandes para distribuir na XtremWeb.
Alan Malta Rodrigues CMP167 Prof. Claudio Geyer