As propostas abaixo apresentam alguns assuntos que podem ser tratados como tema de pesquisa, tanto por trabalhos de conclusão como trabalhos de pós-graduação. Todos os temas propostos encontram-se associados a projetos de pesquisa (Anahy, Holo ou CSHuV).
Interessados em desenvolver estes assuntos, entrar em contato.
Escalonamento de atividades em arquiteturas multi-core
- Projeto associado Anahy
- Objetivo: Explorar a tecnologia multi-core para obtenção de processamento de alto desempenho.
- Ferramentas:
- Compilador Intel e ferramentas
- Compilador gcc
- Metodologia:
- Identificar esquemas de execução concorrente com múltiplas threads
- Avaliação do impacto de uso dos recursos de programação disponíveis em máquinas multi-core
- Desenvolvimento/implementação de mecanismo de escalonamento de atividades em arquiteturas multi-core
Coletor de lixo concorrente
- Projeto associado Anahy
- Objetivo: introduzir em uma ferramenta de programação multithread (athreads) mecanismo de coleta de lixo (garbage collector) concorrente.
- Ferramentas:
- Compilador Intel e ferramentas
- Compilador gcc
- Metodologia:
- Identificar esqueletos de programação concorrente
- Estudo de técnicas de garbage collector concorrente
- Implementação do mecanismo no kernel de athreads
- Avaliação de desempenho
Implementação de núcleo de execução concorrente para linguagem funcional
- Projeto associado Anahy
- Objetivo: implementar para arquitetura multiprocessada (UMA/NUMA) núcleo de execução para linguagem multithread do paradigma funcional.
- Ferramentas:
- Metodologia
- Estudo dos ambientes de programação funcionais multithread
- Porte de pFun para multiprocessadores
- Avaliação de desempenho
Desing Patterns em um ambiente de programacao concorrente
- Projeto associado Anahy
- Objetivo: Oferecer facilidades de programacao no desenvolvimento de aplicacoes concorrentes de grande porte.
- Ferramentas:
- Design Patterns
- Anahy
- C/C++
- Metodologia:
- Estudo de design patterns para concorrencia
- Projeto e introducao de design patterns em um ambiente de programacao
- Implementacao de estudo de casos
- Desenvolvimento em Anahy como caso de estudo
- Avaliacao de desempenho
Modificacoes no escalonamento de threads POSIX no Linux
Objetivo: Dada a expectativa de incremento no numero de maquinas multi-core, a tendencia eh o aumento da demanda por aplicacoes concorrentes desenvolvida com threads. Recursos de escalonamento se tornam necessarios para tirar proveito da nova tecnologia.
- Ferramentas:
- C/C++
- Linux
- Metodologia:
- Estudo das variacoes de escalonamento de threads e de trabalhos previos (Narlikar, Nano-threads), bem como de algoritmos de escalonamento de lista
- Modificacoes no kernel
- Implementacao do benchmark NAS para teste de desempenho (http://www.nas.nasa.gov/Software/NPB/)
Uso de multiprogramação leve no desenvolvimento de jogos
- Projeto associado Anahy
- Objetivo: arquiteturas hiper-threading (Wikipedia) e multicore (Arstechnica, pequeno artigo) tem se tornados populares. Soluções de hardware (Playstation) e de software (artigo). A proposta visa a exploração de Anahy para o desenvolvimento de jogos de ação.
- Ferramentas:
- Anahy
- Posix Threads
- C/C++
- Metodologia: Especificar um jogo e realizar sua implementação concorrente em Anahy. Interagir com a equipe de Anahy.
Desenvolver uma versão de Anahy para Java
- Projeto associado Anahy
- Objetivo: construir uma interface de programação multithread em Java baseada em fluxo de dados
- Ferramentas:
- Java
- Threads Java
- Metodologia: criar uma API em Java capaz de representar o modelo de execução dataflow explorado em diversas estraté de escalonamento.
Avaliação de Carga de Processamento
- Projeto associado Anahy
- Objetivo: Obter informações sobre a capacidade de processamento disponível sobre recursos computacionais.
- Ferramentas:
- C/C++
- Threads POSIX
- Linux
- Metodologia: Utilizar recursos para extração de índices de desempenho em arquiteturas de forma a explorar eficientemente a execução paralela de atividades.
Computação em Grade
- Projeto associado Anahy
- Objetivo: Explorar grades computacionais para extração de alto desempenho.
- Ferramentas:
- Java
- Linux
- sockets
- MyGrid
- Globus
- Metodologia: Explorar as tecnologias existentes para grades computacionais e avaliar estratégias alternativas a opção bag-of-tasks.
Multiprogramação Leve Multi-Nível
- Projeto associado Anahy
- Objetivo: Mesclar diferentes granulosidades de atividades em execuções paralelas em arquiteturas multiprocessadas.
- Ferramentas:
- Linux
- sockets
- Threads
- Anahy
- OpenMP
- C/C++
- Metodologia: Introduzir em Anahy primitivas para descrição da concorrência segundo o modelo OpenMP.
Tratamento Alternativo de Sincronizações
- Projeto associado Anahy
- Objetivo: Reduzir perdas de desempenho pela ocorrência de sincronizações em programas concorrentes.
- Ferramentas:
- Linux
- sockets
- Threads
- Anahy
- C/C++
- Metodologia: Capturar sincronizações realizadas por programas concorrentes (tais mutex-lock e receive-messages) e de forma a reduzir o impacto dos tempos de espera dos fluxos de execução para satisfação das sincronizações solicitadas.
Implementação de servicos em redes wireless
- Projeto associado Holo
- Objetivo: Implementar uma aplicação para ambiente wireless, onde uma estação, ao entrar em uma célula wireless tenha o seu estado atualizado (tipo uma agenda ou controle de estoque)
- Ferramentas:
- Equipamentos wireless
- C/C++/Java
- Linux
- Metodologia: Identificar uma aplicação onde seu contexto deva ser atualizado conforme a localização do agente. Esta localização define o comportamento da execução. Adaptar cartão de comunicação wireless para atuar como ponto de acesso.
Balanceamento de carga em redes wireless
- Projeto associado Holo
- Objetivo: Balancear o número de ocupantes de células wireless, migrando estações em zonas limites
- Ferramentas:
- Simulação
- C++
- Linux
- Metodologia: Identificar o comportamento de uma comunidade urbana e seus deslocamentos. Considerar diferentes perfis de usuarios de telefonia móvel.
Aplicações de alto desempenho
- Projeto associado Anahy
- Objetivo: Validar o ambiente de programação Anahy através de seu uso aplicado.
- Ferramentas:
- Cluster de SMPs
- Anahy
- C/C++
- Linux
- Metodologia: Utilizar o modelo de programação de Anahy para propor uma solução concorrente para uma aplicação que necessite grande quantidade de recursos computacionais. Validar através de implementação e analise de resultados.
Migração de Anahy para ambiente windows
- Variação da proposta acima, porém a metodologia implica em migrar Anahy para ambiente Windows.
- Ferramentas:
- Arquitetura SMP
- Windows NT/2000 e/ou XP
- Threads Posix Windows
Testes de ambientes de alto desempenho
- Projeto associado Anahy
- Objetivo: Explorar ferramentas de desempenho em clusters de computadores (benchmarks e ferramentas de terceiro).
- Ferramentas:
- Cluster de SMPs
- C/C++
- Linux
- Metodologia: Instalar e obter resultados de desempenho de clusters. Sistematizar a analise e propor novos testes de desempenho.
Interface gráfica para programação concorrente
- Projeto associado Anahy
- Objetivo: Disponibilizar, para Anahy, uma interface gráfica para programação concorrente.
- Ferramentas:
- Anahy
- C/C++
- Kdevelop, Qt, ...
- Linux
- Metodologia: Desenvolvimento de uma interface de programação gráfica segundo o modelo de programação concorrente de Anahy. Validação através da programação de aplicações e comparação com outras ferramentas de programação.
<< Voltar