Uma Abordagem para o Escalonamento Estático de Tarefas em Multiprocessadores Baseada em Autômatos Celulares

Documentos relacionados
UM MODELO BASEADO EM AUTÔMATOS CELULARES SÍNCRONOS PARA O ESCALONAMENTO DE TAREFAS EM MULTIPROCESSADORES

ABORDAGENS BASEADAS EM AUTÔMATOS CELULARES SÍNCRONOS PARA O ESCALONAMENTO ESTÁTICO DE TAREFAS EM MULTIPROCESSADORES

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

Estudo Comparativo de Algoritmos de Escalonamento para Grades Computacionais

Desempenho de computação paralela

Estudo Comparativo de Técnicas de Escalonamento de Tarefas Dependentes para Grades Computacionais


ESCALONAMENTO DE TAREFAS BASEADO EM AUTÔMATOS CELULARES COM USO DOS PARÂMETROS DE PREVISÃO DO COMPORTAMENTO DINÂMICO

Escalonamento de Aplicações BoT em Ambiente de Nuvem

1. Computação Evolutiva

Escalonamento de Processos em Sistemas Distribuídos: Uma Visão Geral

Toward an Architecture-Independent Analysis of Parallel Algorithms

Um Algoritmo de Escalonamento para Redução do Consumo de Energia em Computação em Nuvem

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Implementação de um escalonador de processos em GPU

Escalonamento de Tarefas Divisíveis em Redes Estrela

INVESTIGAÇÕES SOBRE A TAREFA DA CLASSIFICAÇÃO DA DENSIDADE EM AUTÔMATOS CELULARES BIDIMENSIONAIS

Previsão dinâmica e recurso compartilhado auxiliando a busca evolutiva de autômatos celulares bidimensionais

Um Algoritmo de Escalonamento com Intercalação de Processos em Grades Computacionais

3. Resolução de problemas por meio de busca

Computação Evolucionária

Conceitos Básicos dos Sistemas de Tempo Real

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Um Estudo sobre Algoritmos de Escalonamento para Grids Computacionais

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

EVOLUÇÃO DE AUTÔMATOS CELULARES PARA RESOLUÇÃO DA TAREFA DE SINCRONIZAÇÃO UNIDIMENSIONAL E BIDIMENSIONAL

Ummétodohíbridoparaescalonar turnosdeenfermeiras

Algoritmos de Escalonamento do Preactor. Algoritmos de Escalonamento do Preactor. INESC Porto Unidade de Engenharia de Sistemas de Produção

Algoritmos evolutivos paralelos. Carlos Eduardo Cuzik Marcos Felipe Eipper Ramon Artner Rocha

Algoritmos Genéticos e Evolucionários

Introdução aos Algoritmos Genéticos

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS

3. Resolução de problemas por meio de busca

Economia de Energia em Sistemas Embarcados com Multiprocessadores Homogêneos ou Heterogêneos

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

DEMONSTRATIVO DE CÁLCULO DE APOSENTADORIA - FORMAÇÃO DE CAPITAL E ESGOTAMENTO DAS CONTRIBUIÇÕES

Modelagem para previsão/estimação: uma aplicação Neuro-Fuzzy

Fundamentos de Inteligência Artificial [5COP099]

Linear para o Problema de Escalonamento de Workflows em Múltiplos Provedores de Nuvem

11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados

Algoritmos de Escalonamento

Desempenho de computação paralela

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Algoritmos Genéticos Fundamentos e Aplicações. Prof. Juan Moisés Mauricio Villanueva

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Escalonador de Ordens de Produção Utilizando Algoritmos Genéticos

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Profa. Sheila Morais de Almeida. março

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Escalonamento em uma máquina

Algoritmos Genéticos

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Referências bibliográficas

Executivo Cíclico. Executivo Cíclico Introdução. Sistemas de Tempo Real: Executivo Cíclico Exemplo. Executivo Cíclico Introdução

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Pesquisa Operacional Aplicada à Mineração

Palavras Chave: Autômatos Celulares, Algoritmos Genéticos, Tarefa de Classificação da Densidade.

Uma Introdução à Busca Tabu André Gomes

4 Métodos Existentes. 4.1 Algoritmo Genético

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

PCC173 - Otimização em Redes

Modelos e Métodos de Resolução para Problemas de Escalonamento de Projetos

Caracterização. Sistemas de Tempo Real: Caracterização. Caracterização. Caracterização. Concepções Erradas. Mercados

Computação Bioinspirada PROF. PAULO SALGADO

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

3 Aprendizado por reforço

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

INPE Outubro, Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva Projeto:

GENERALIZAÇÃO DE ESTRATÉGIAS DE DESCONTAMINAÇÃO DE RETICULADOS DE AUTÔMATOS CELULARES

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

Tópicos Especiais em Otimização

Marcone Jamilson Freitas Souza

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

1. Computação Evolutiva

3 Extensões dos modelos matemáticos

Optimização do tempo de processamento de aplicações em clusters em ambiente multi-utilizador

Problema de Satisfação de Restrições

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Sistemas Operacionais. Gerência de Processador

Um algoritmo pseudo-periférico genérico para a heurística de Snay

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Análise de Desempenho de Estratégias de Particionamento de Grafos

3 Metaeurísticas e Resolvedores MIP

Aprendizado de Máquinas. Seleção de Características

Métodos de pesquisa e Optimização

Palestra COPPE Elétrica. Dezembro de 2010

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Transcrição:

Uma Abordagem para o Escalonamento Estático de Tarefas em Multiprocessadores Baseada em Autômatos Celulares Autor: Murillo G. Carneiro 1, Orientadora: Gina M. B. Oliveira 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade Federal do Uberlândia (UFU) Uberlândia MG Brasil carneiro.murillo@gmail.com, gina@facom.ufu.br Nível: Mestrado Ano de ingresso no programa: 2009 Previsão de entrega da proposta: Janeiro / 2011 Época esperada de conclusão: Agosto / 2011 Resumo. O problema de escalonamento estático em multiprocessadores é conhecido por ser NP-Completo e consiste em alocar tarefas entre processadores de tal modo que as restrições de precedência entre as tarefas sejam mantidas e o tempo total de execução seja minimizado. Abordagens propostas para resolver esse problema normalmente utilizam heurísticas ou metaheurísticas. Contudo, muitas delas não tem a capacidade de extrair conhecimento do processo de escalonamento de uma aplicação e precisam começar do zero a cada nova instância. Trabalhos anteriores apontaram o uso promissor de Autômatos Celulares (ACs) no escalonamento em multiprocessadores. Assim, o objetivo desta pesquisa é a construção de um escalonador baseado em AC que, a partir do modelo de vizinhança linear, seja capaz de realizar o escalonamento ótimo (ou sub-ótimo) mediante a extração e reuso do conhecimento de uma aplicação em outras. Palavras-Chave. escalonamento de tarefas, sistemas multiprocessadores, autômatos celulares, vizinhança linear.

1. Introdução Autômatos Celulares (ACs) têm sido empregados com sucesso nos mais diversos campos de pesquisa da computação: criptografia [Wolfran 1986], simulação de sistemas complexos e de vida artificial [Oliveira 2003], entre outros. ACs são sistemas dinâmicos discretos (tempo e espaço) e possuem como uma de suas principais características a capacidade de emergir um comportamento global a partir de interações entre unidades locais. Trabalhos anteriores [Seredynski and Zomaya 2002], [Swiecicka et al. 2006] e [Vidica 2006] apontaram o uso promissor de abordagens baseadas em AC para o Problema de Escalonamento Estático de Tarefas (PEET). O PEET consiste basicamente em designar um conjunto de tarefas que compõem uma aplicação aos diversos processadores do sistema de tal forma que o Makespan ou tempo total da execução, seja mínimo. O problema é conhecido por ser NP-Completo em sua forma geral [Ullman 1975] e tem sido um grande desafio para muitos pesquisadores. Tendo em vista que algoritmos exatos não são capazes de encontrar soluções ótimas para quaisquer instâncias do problema em tempo considerável, o uso de métodos heurísticos tem sido muito frequente. O principal objetivo desta pesquisa é a construção de um novo método baseado em AC capaz de realizar o escalonamento estático de tarefas em sistemas multiprocessadores de modo ótimo (ou, pelo menos, sub-ótimo) para várias aplicações diferentes. A idéia principal é modelar um algoritmo apto a extrair conhecimento sobre o processo de escalonamento de uma determinada aplicação e reusá-lo no escalonamento de outras. Para auxiliar no processo de extração do conhecimento é trivial combinar o uso de ACs e Algoritmos Genéticos (AGs) conforme já foi proposto anteriormente em [Mitchell et al. 1996], devido ao grande espaço de regras existentes para determinados tamanhos de vizinhança. A seguir, nas seções 2, 3 e 4, são apresentadas, respectivamente, uma breve introdução acerca do problema de escalonamento de tarefas, alguns conceitos sobre ACs e o funcionamento de um escalonador baseado em ACs. Na seção 5 são exibidos alguns algoritmos clássicos para o problema. Em seguida, na seção 6, tem-se um esboço da metodologia criada para o desenvolvimento da proposta, o levantamento do estado atual e também um cronograma relacionado ao planejamento restante para a conclusão do trabalho. 2. Escalonamento de Tarefas em Multiprocessadores Um programa paralelo pode ser representado por um Grafo Acíclico Direcionado (GAD) definido por uma tupla G = (V, E, W, C), onde V ={ t 1,..., t N } denota o conjunto de N tarefas do grafo; E ={ e i,j t i, t j V } representa o conjunto de arestas de comunicação, também denominadas restrições de precedência; W ={ w 1,..., w n } representa o conjunto de tempos de execução das tarefa, ou seja, para cada tarefa t V é associado um peso de computação w(t) W referente ao custo de execução da mesma; e C = { c i,j e i,j E} denota o conjunto de custos de comunicação de arestas, ou seja, a cada aresta e i,j E é associado um custo de comunicação c i,j C relacionado ao custo de transferência de dados entre as tarefas t i e t j quando são executadas em processadores distintos. Satisfazendo essas condições G é denominado grafo de precedência de tarefas ou, simplesmente, grafo de programa. Na figura 1 tem-se um exemplo de um grafo de programa. É importante esclarecer que o conjunto de arestas E define as relações de precedência entre tarefas. Assim, uma tarefa não pode ser executada a menos que todos os seus predecessores tenham completado suas execuções e todos os dados relevantes estejam disponíveis. Preempção de tarefas e execuções redundantes não são permitidas na versão do problema considerado neste artigo.

Figure 1. Exemplo de um grafo de programa. Um sistema multiprocessador por sua vez, pode ser representado por um grafo não ponderado e não direcionado G s = (V s, E s ), denominado grafo de sistema. V s é o conjunto de N nós do grafo de sistema que representa os processadores de um computador paralelo de arquitetura MIMD ( Multiple Instruction Multiple Data) com suas respectivas memórias locais. E s é o conjunto de arestas representando canais bi-direcionais entre processadores e definindo a topologia do sistema multiprocessador. Nesse modelo assume-se também que todos os processadores tem o mesmo poder computacional e que as comunicações entre os canais não consomem qualquer tempo do processador. Na figura 2 é exibido um grafo de sistema para dois processadores: P0 e P1. Figure 2. Grafo de sistema para dois processadores: P0 e P1. O escalonamento de tarefas não é um problema novo. Existem na literatura vários trabalhos que estudam esse tema de diversas formas [Kwok and Ahmad 1999], estando relacionados ora a proposição de novos algoritmos e abordagens para o problema [Drozdowski 1997] e ora ao estudo teórico e matemático de fatores ligados ao próprio escalonamento [Motta et al. 2002]. É importante afirmar ainda que o problema possui diversas variações [Cardoso 2004], como por exemplo o caso dinâmico e estático. No primeiro as decisões de alocação se realizam durante a execução do programa, isto porque os custos de comunicação e de computação das tarefas não podem ser totalmente conhecidos em tempo de compilação. Já no segundo, informações relativas ao tempo de execução de cada tarefa e as relações de precedência são previamente especificadas. O caso considerado nesse trabalho é o escalonamento estático de tarefas. 3. Autômatos Celulares Um AC é um sistema composto por espaço celular e função de transição de estados. O espaço celular é um reticulado de N células (componentes simples e idênticos que possuem conectividade local e condições de contorno) dispostas em um arranjo d-dimensional. A regra ou função de transição f por sua vez, é responsável por determinar o próximo estado do AC a partir de seu estado atual, assim ela apresenta uma relação direta com o comportamento apresentado durante a evolução do reticulado. Diz-se evolução o processo de aplicar as regras sobre o reticulado por um número determinado de passos de tempo t. Ainda sobre a evolução de um reticulado, tal processo pode acontecer, normalmente, dos seguintes modos: Paralelo ou Síncrono: onde todas as células do reticulado atualizam seus estados sincronamente em cada passo de tempo.

Sequencial ou Assíncrono: em que apenas uma célula por vez atualiza o seu estado e esse novo estado é considerado na atualização das outras células. Diz-se sequencial porque a ordem em que cada célula é atualizada está representada na sequência do reticulado. Aleatório: a atualização das células é semelhante ao modo sequencial porém a ordem de atualização das células é definida aleatoriamente. Para cada célula i, chamada célula central, uma vizinhança de raio R é definida. Assim, o tamanho da vizinhança de i (que inclui a própria célula) é dado por: n i = 2R+1. É importante perceber que se a célula i no tempo t apresenta estado q t i, então o seu estado no tempo t + 1 dependerá apenas dos estados das células de sua vizinhança no tempo t, ou seja: q t+1 i = f(q t i, q t i1, q t i2,..., q t ni). Como exemplo, na figura 3(a) é exibido um autômato celular uni-dimensional, binário, de tamanho dez e de raio um. Na figura 3(b) tem-se uma função de transição e na figura 3(c) é apresentado a evolução do reticulado em modo paralelo e com condição de contorno periódica por dois passos de tempo. Figure 3. Exemplo de um AC: (a) reticulado inicial; (b) regra de transição; (c) evolução temporal. 4. Escalonamento Baseado em ACs Em [Seredynski and Zomaya 2002], é apresentado um escalonador baseado em AC que opera em dois modos: aprendizagem e operação. Nesse modelo de escalonador, cada célula do reticulado é associada a uma tarefa do grafo de programa. Considerando uma arquitetura composta por N processadores, o AC a ser utilizado tem N possíveis estados, além disso considerando o conjunto de tarefas de tamanho X o reticulado possuirá X células. Assim, supondo um sistema com dois processadores (P0 e P1), tem-se que cada célula do AC pode assumir, em um instante de tempo t, o valor 0, indicando que a tarefa correspondente está alocada no processador P0, ou o valor 1, indicando que a tarefa está alocada no processador P1. Por exemplo, o grafo de programa da figura 1, que é composto por 4 tarefas, deve ser representado por um reticulado de 4 células e em uma configuração onde as tarefas 0 e 3 estão alocadas em P0 e as tarefas 1 e 2 em P1, o reticulado será 0110. No modo de aprendizagem, o escalonador faz uso de um AG para descobrir regras capazes de encontrar soluções ótimas (ou sub-ótimas) para várias instâncias aleatórias de um grafo de programa. A população desse AG é composta de possíveis regras de transições de estados geradas de modo randômico. A cada geração do AG, também são gerados um conjunto de reticulados (CR) cujas alocações das tarefas se dão aleatoriamente. Assim, o método de avaliação da população (função de fitness do AG) é a evolução desse CR pelos individuos por t passos

de tempo. Após esse período cada reticulado do CR é escalonado mediante uma política de escalonamento escolhida a priori e então obtem-se a média de custo de escalonamento para aquela regra. Vale destacar que as melhores regras devem ser mantidas para a geração seguinte do AG (através de elitismo), e que apenas elas são consideradas na seleção de pais para o crossover. Para que o escalonador de AC obtenha bons resultados é importante optar por um modo de vizinhança capaz de capturar as relações entre as tarefas expressas no grafo de programa. Os modos de vizinhança podem ser divididos em lineares e não lineares. No primeiro assume-se que a estrutura não linear de um grafo de programa é aproximada para a estrutura linear de um AC, como foi apresentado na figura 3 (a). Já no modo de vizinhança não linear, a estrutura não linear de um grafo de programa é modelada através de uma estrutura também não linear de vizinhança de um AC. Para tanto, a vizinhança de uma célula do AC é baseada no conjunto de tarefas predecessoras, irmãs e sucessoras da tarefa analisada. Abaixo são introduzidos os dois tipos de vizinhança não lineares apresentados em [Seredynski and Zomaya 2002] e que, aliás, obtiveram os melhores resultados de escalonamento: Selecionada: A vizinhança selecionada de uma tarefa i do grafo de programa é formada pela própria tarefa e somente duas tarefas representativas de cada conjunto de tarefas predecessoras, irmãs e sucessoras da tarefa i. Estas tarefas representativas são, respectivamente, a tarefa com o valor máximo e a tarefa com o valor mínimo, de acordo com algum atributo das tarefas (custo de computação, de comunicação, entre outros) escolhido a priori. Totalística: A vizinhança totalística, diferentemente da vizinhança selecionada, considera todas as tarefas pertencentes aos conjuntos de predecessoras, irmãs e sucessoras de uma dada tarefa central, e não apenas as mais representativas de cada conjunto. No modo de operação normal espera-se que, para uma dada alocação inicial qualquer de tarefas, as regras de AC sejam capazes de minimizar o Makespam. É esperado também que a evolução das regras na fase de aprendizagem possa ser utilizada para o bom desempenho no escalonamento de outros grafos. Em [Swiecicka et al. 2006], tem-se um escalonador baseado em AC que opera em três modos: aprendizagem, operação e reutilização. Os dois primeiros modos são idênticos aos propostos por [Seredynski and Zomaya 2002]. No modo de reutilização as regras descobertas anteriormente são reusadas, com o apoio de um Sistema Imunológico Artificial (SIA), para resolver novas instâncias do problema. No modelo de SIA, as regras descobertas são consideradas anticorpos enquanto que novas instâncias do problema de escalonamento são tratadas como antígenos. Dessa forma, um dado anticorpo reconhece um antígeno específico se ele pode encontrar um escalonamento ótimo para ele. O trabalho de [Vidica 2006] é baseado nos conceitos de escalonador propostos em [Seredynski and Zomaya 2002] e [Swiecicka et al. 2006] e tem como principal contribuição duas novas abordagens para o modo de aprendizagem. A primeira, denominada evolução conjunta, consiste em utilizar, paralelamente, mais de um grafo de programa durante a evolução das regras. O outro modelo, chamado ambiente coevolutivo, consiste na troca do AG tradicional por um Algoritmo Genético Coevolutivo (AGC). Os AGCs diferem dos AGs tradicionais por utilizarem duas populações durante o processo evolutivo. Dessa forma, foi designada uma população de possíveis soluções (regras de AC) e outra população de instâncias do problema a resolver (diferentes grafos de programa).

5. Algoritmos de Escalonamento Clássicos Os algoritmos de escalonamento clássicos para o PEET, também denominados heurísticas de construção, se diferem dos metaheurísticos em vários aspectos. Entretanto, a principal diferença é que eles constroem a cada passo um único escalonamento como resposta a uma determinada entrada enquanto que estes trabalham com um conjunto de escalonamentos. O intuito de estudar os algoritmos clássicos é que alguns deles possuem estruturas de escalonamento muito simples, com bons resultados e que podem ser bem incorporados ao modelo de escalonador baseado em AC deste trabalho. O HLFET (Hightest Level First with Estimated Times) por exemplo, possui uma estrutura de escalonamento simples que consiste na criação de uma lista ordenada descendentemente de acordo com o nível estático das tarefas. Já o ISH (Insertion Scheduling Heuristic) e o MCP (Modified Critical Path) tentam cobrir espaços de tempo vazios nos processadores escalonando tarefas que já estão prontas neles. O ETF (Earliest Time First) por sua vez, avalia cada par tarefa-processador possível a fim de escalonar a relação que possui menor tempo de início, enquanto que, o DLS (Dynamic Level Scheduling) através de um cálculo, denominado Dynamic Level (DL), realizado para todos os pares tarefaprocessador aloca o par com maior valor de DL. 6. Metodologia e Estado da Pesquisa A primeira etapa para o desenvolvimento da pesquisa foi a reprodução do trabalho de [Vidica 2006]. Diante disso, os conceitos de vizinhanças não lineares propostos por [Seredynski and Zomaya 2002] também foram estudados e replicados enquanto que as novas estruturas incorporadas ao modelo de escalonamento baseado em AC propostas por [Swiecicka et al. 2006] tem sido cuidadosamente pesquisadas. Essa etapa é crucial para a pesquisa porque está diretamente relacionada ao propósito dela: o desenvolvimento de um modelo mais eficiente para o PEET através do modo de vizinhança linear. Paralelamente a etapa descrita anteriormente tem acontecido o levantamento do estado da arte no que diz respeito ao problema de escalonamento de tarefas, haja vista que os trabalhos mencionados no parágrafo anterior não expõe de forma precisa a contribuição de seus modelos por não considerarem as várias subdivisões do problema. Diante disso, foi feito um estudo sobre as taxonomias para o problema geral [Casavant and Kuhl 1988] e, especificamente, para o PEET [Kwok and Ahmad 1999] a fim de levantar precisamente a área de contribuição do modelo a ser desenvolvido. ATIVIDADES Dez 10 Jan 11 Fev 11 Mar 11 Abr 11 Mai 11 Jun 11 Jul 11 Ago 11 Reprodução Abordagem Avaliação Escrita Defesa Table 1. Cronograma geral de atividades. Na tabela 1 é apresentado o cronograma geral de atividades a serem realizadas até a defesa da dissertação. A etapa de Reprodução faz referência a replicação de experimentos de [Seredynski and Zomaya 2002], [Swiecicka et al. 2006] e [Vidica 2006] e estudo de trabalhos que podem auxiliar na pesquisa [Kwok and Ahmad 1999]. A Abordagem está relacionada

ao período designado para construção e desenvolvimento da proposta. Já a Avaliação é o período destinado a analisar quantitativamente e qualitativamente a eficiência do modelo. O período destinado a Escrita e a Defesa estão, respectivamente, ligados à escrita, tanto de artigos quanto da própria tese, e apresentação do projeto. References Cardoso, D. F. (2004). Escalonamento estático de tarefas em ambientes computacionais heterogêneos sob o modelo logp. Master s thesis, Universidade Federal Fluminense - Programa de Pós-Graduação em Computação. Casavant, T. L. and Kuhl, J. G. (1988). A taxonomy of scheduling in general-purpose distributed computing systems. IEEE Transactions on Software Enginnering, 14(2):141 154. Drozdowski, M. (1997). Selected Problems of Scheduling Tasks in Multiprocessor Computer Systems. PhD thesis, Instytut Informatyki Politechnika Poznanska. Kwok, Y.-K. and Ahmad, I. (1999). Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Computing Surveys, 31(4):406 471. Mitchell, M., Crutchfield, J. P., and Das, R. (1996). Evolving cellular automata with genetic algorithms: A review of recent work. In Proceedings of the First International Conference on Evolutionary Computation and Its Applications (EvCA 96). Motta, E., Rajpathak, D., Zdrahal, Z., and Roy, R. (2002). The epistemology of scheduling problems. 15th European Conference on Artificial Intelligence (ECAI 2002). Oliveira, G. M. B. (2003). Autômatos celulares: aspectos dinâmicos e computacionais. III Jornada de Mini-cursos em Inteligência Artificial (MCIA), 8:297 345. Seredynski, F. and Zomaya, A. Y. (2002). Sequential and parallel cellular automatabased scheduling algorithms. IEEE Transactions on Parallel and Distributed Systems, 13(10):1009 1022. Swiecicka, A., Seredynski, F., and Zomaya, A. Y. (2006). Multiprocessor scheduling and rescheduling with use of cellular automata and artificial immune system support. IEEE Transactions on Parallel and Distributed Systems, 17(3):253 262. Ullman, J. D. (1975). NP-complete scheduling problems. Journal of Computer and System Science, 10(3):384 393. Vidica, P. M. (2006). Autômatos celulares e algoritmos genéticos aplicados ao problema do escalonamento de tarefas em sistemas multiprocessadores. Master s thesis, Universidade Federal de Uberlândia - Programa de Pós-Graduação em Ciência da Computação. Wolfran, S. (1986). Cryptography with cellular automata. Advances in Cryptology: Crypto 85 Proceedings, 218:429 432.