INPE – Outubro, 2008 Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva [email protected], [email protected] Apoio: Projeto: Instituição: Objetivos: Apresentar versão de alto desempenho para o Garp ‾ ‾ ‾ Aplicação de algoritmos paralelos Máquinas paralelas consideradas: cluster Comunicação usando MPI (Massive Parallel Interface) Mostrar alguns resultados de desempenho ‾ Testes realizados no cluster – Poli/USP com espécies selecionadas Obs.: 1. O algoritmo considerado como base para o estudo foi o Garp com openModeller implementation. 2. O artigo correspondente aos algoritmos aqui apresentados está em fase de submissão para publicação em revista científica. Problema: Tempo “grande” para a geração de um modelo, considerando especialmente: ‾ ‾ Muitos layers ambientais Resolução adotada para análise dos layers resulta em muitos pontos/pixels Resultados para alguns casos reais: ‾ De horas a dias !!! Análise de desempenho realizada na Poli-USP: ‾ Etapas que mais consomem tempo (como esperado): Execução do algoritmo Projeção do modelo Algoritmo = seqüência de passos Step 1 Melhoria de performance: Step 2 ... NO MAGIC! Step N Se o algoritmo estiver correto, presume-se que todos os passos são necessários para resolver o problema. Alternativa seqüencial: criar novos algoritmos (ex.: ordenação)... …mas este tipo de solução já existe de sobra, por exemplo, no openModeller, porém o problema é diferente e a abordagem não vale. Supercomputadores: Eficiência e utilização podem depender da arquitetura Exemplos: − − − − Um só superprocessador (muito rápido e poderoso) Cluster - Network of Workstations Constelation - “cluster of clusters´´ Etc. Curiosos: − − − Consultar: http://www.top500.org/ 500 supercomputadores mais rápidos do mundo! Detalhes sobre suas arquiteturas Supercomputadores: Cluster é opção mais adotada (boa relação custo - benefício): − − Máquinas com vários processadores e fast switch (comunicação rápida) Cada um dos p nós da figura: processador + memória 1 2 ... P Cluster with p nodes - each node: processor + memory Implementações comuns para cluster: − − Instâncias do mesmo algoritmo em diferentes nós, sob diferentes condições Quantidade maior de modelos gerados no mesmo período de tempo Úteis para, e.g.: experimentação, análise de sensibilidade, modelagem “em massa”! Resultado: maior throughput , mas … ... a performance de cada algoritmo será a mesma! Algoritmos paralelos: Quebrar a “barreira de software”: ‾ Software específico para acompanhar o desempenho do hardware Explorar os recursos da máquina: − Tirar máximo de vantagens do hardware Combinar resultados obtidos em instâncias distintas para resolver o mesmo problema Necessitam de modelo de computação adequado ao hardware (Obs.: O projeto de algoritmos seqüenciais são baseados na Máquina de von Neumann, também definida como RAM por Cormen, Leiserson, Rivest, ) PRAM: Famoso, teórico, mas inadequado para clusters BSP (Bulk-Synchronous Parallel): Valiant, 1990 Algoritmo é seqüência de superpassos − − − Rodadas de computação local Rodadas de comunicação Análise dos algoritmos consideram os dois CGM (Course-Grained Multicomputer): Dehne, 1996 Versão simplificada do BSP − − Step 1 Step 1 Step 1 Step 2 Step 2 Step 2 ... ... ... Step N Step N Step N Análise simplificada, baseada apenas no número de rodadas Supõe minimização do tempo de uso dos recursos (preferir: # pequeno msgs grandes, redução de troca de contexto, etc.) GARP P-GARP GARP Furcata boliviana - 100 iterations GARP P-GARP Unknown species - 20 iterations P-GARP Furcata boliviana - 400 iterations P-GARP GARP P-GARP Unknown species - 100 iterations SpeedUp T(GARP) T(PGARP) np speedup 0,68817 0,6817 1 0,68817 0,4176 2 0,68817 0,3545 3 0,68817 0,2919 4 0,68817 0,2708 5 0,68817 0,2436 6 0,68817 0,2414 7 0,68817 0,2144 8 0,68817 0,2119 9 0,68817 0,2285 10 0,68817 0,2362 20 0,68817 0,2233 40 Obs.: O speedup representa o número de vezes que um algoritmo paralelo é mais rápido do que um seqüência, considerando o melhor algoritmo seqüencial disponível. efficiency 1,01 1,01 1,65 0,82 1,94 0,65 2,36 0,59 3,50 2,54 0,51 2,83 0,47 2,85 0,41 3,00 3,21 0,40 3,25 0,36 2,50 3,01 0,30 2,91 0,15 2,00 3,08 0,08 Speedup x #processors 1,50 1,00 0,50 0,00 0 10 20 30 #processors 40 50 Desempenho dos algoritmos genéticos paralelos P-GARP: − − − Em média, 3 vezes mais rápido do que o GARP, para 8 processadores Resultado pode ser considerado bastante bom, já que computação paralela pode ser comparada, em uma “associação livre”, com a construção de um prédio Em outros clusters, pode ter resultados de desempenho diferentes, mas sempre haverá um limite superiosr para o speedup (quando o tempo de comunicação ultrapassar o tempo de computação local) Outras variações − Resultado esperado: ainda melhor – porque a paralelização é “trivial” Objetivos: Apresentar AdaptGARP – versão de algoritmo adaptativo para o Garp ‾ ‾ Aplicação de algoritmos adaptativos Técnica adaptativa: tabela de decisão Mostrar alguns resultados de desempenho ‾ Testes comparando Garp com AdaptGARP Obs.: O AdaptGARP já foi apresentado e publicado: César Bravo, João J. Neto, Fabiana S. Santana, Antonio M. Saraiva, “Towards an adaptive implementation of genetic algorithms”, In: XXXIII Latin American Informatics Conference (CLEI – INBI), Proceedings, 2007. Motivação (Por que fizemos?): Adaptividade: ‾ ‾ ‾ ‾ Propriedade de alguns sistemas ou dispositivos/equipamentos de auto-modificarem o seu conjunto de operações e regras básicas de funcionamento A adaptatividade depende exclusivamente do histórico de uso ou execução do sistema, sem ajuda externa Ex.: Adaptive Automata (AA), Adaptive Grammars (AG), Adaptive Decision Table (ADT), etc. Técnica adaptativa: tabela de decisão IF x1 [A11, B11] AND x2 [A12, B12] AND … xk [A1k, B1k] THEN PRESENCE GARP – Furcata boliviana AdaptGARP– Furcata boliviana Observe que a precisão dos modelos adaptativos é mantida! Trabalhos futuros: Validar e aprovar com os especialistas e pesquisadores em modelagem de nicho ecológico Melhorar, a partir dos resultados dos especialistas e pesquisadores em modelagem de nicho ecológico, a construção da tabela de decisão Conclusão: O AdaptGARP mantém o desempenho do GARP original Pelos testes realizados, é difícil dizer que a qualidade do modelo gerado pelo AdaptGARP se altera, em relação à qualidade do modelo gerado pelo GARP Fabiana Soares Santana [email protected] Apoio: Projeto: Instituição: