Estratégias de escalonamento para ambientes de execução guiada por fluxo de dados

A Sucuri é uma biblioteca em Python que provê programação dataflow através de uma sintaxe razoavelmente simples. Ela permite uma execução transparente em clusters explorando de forma natural o paralelismo. Na Sucuri, o programador instancia o grafo dataflow, onde cada nó está associado a uma função e...

Descripción completa

Detalles Bibliográficos
Autor: Silva, Rafael José do Nascimento
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2016
País:Brasil
Institución:Universidade do Estado do Rio de Janeiro (UERJ)
Repositorio:Biblioteca Digital de Teses e Dissertações da UERJ
Idioma:portugués
OAI Identifier:oai:www.bdtd.uerj.br:1/7714
Acceso en línea:http://www.bdtd.uerj.br/handle/1/7714
Access Level:acceso abierto
Palabra clave:Dataflow
Sucuri
Paralelism
Scheduling
Work-Stealing
Paralelismo
Escalonamento
Balanceamento de carga
Python (Linguagem de Programação de Computador)
Escalonamento de produção
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Descripción
Sumario:A Sucuri é uma biblioteca em Python que provê programação dataflow através de uma sintaxe razoavelmente simples. Ela permite uma execução transparente em clusters explorando de forma natural o paralelismo. Na Sucuri, o programador instancia o grafo dataflow, onde cada nó está associado a uma função e as arestas representam as dependências de dados entre os nós. A implementação original da Sucuri, utiliza um escalonador centralizado, que gera altos custos de comunicação, principalmente em clusters com um elevado número de máquinas. Neste trabalho nós modificamos a Sucuri de modo que cada máquina no cluster tenha seu próprio escalonador. Antes da execução, o Grafo dataflow é particionado e os nós são distribuídos entre as máquinas do cluster. Em tempo de execução os trabalhadores livres de cada máquina recebem tarefas da fila de prontos de seu escalonador local. Quando uma máquina termina de executar sua lista de nós, ela irá solicitar às outras máquinas, que estejam sobrecarregadas, parte das tarefas que estejam nas suas filas de prontos. Os resultados experimentais confirmam que a solução pode reduzir o tempo gasto com comunicação e aumentar o desempenho em grandes clusters