SlideShare uma empresa Scribd logo
1 de 48
Paralelização do algoritmo Fast non Dominated Sorting
para a classificação de cidades de acordo com informações
do clima
Vinícius Aires Barros
Programação Concorrente
Prof. Dr. Paulo Sérgio Lopes de Souza
Grupo de Sistemas Distribuídos e Programação Concorrente
Instituto de Ciências Matemáticas e de Computação
Universidade de São Paulo
Novembro 2016
SSC5795 Vinícius Aires Barros Novembro 2016 1 / 48
Agenda
1 Introdução
1 Definição do Problema
2 Motivação e Gap
3 Objetivos
2 Fundamentação Teórica
3 Metodologia
4 Resultados
5 Considerações Finais
SSC5795 Vinícius Aires Barros Novembro 2016 2 / 48
Introdução
1 Base de dados com informações climáticas de cidades;
2 Algoritmo de seleção por meio de ranqueamento das fronteiras de pareto;
3 Proposta de paralelização do algoritmo;
4 Mapeamento e decomposição de tarefas; e
5 Avaliação de desempenho.
SSC5795 Vinícius Aires Barros Novembro 2016 3 / 48
Definição do Problema
1 Seleção de cidades de acordo com
informações do clima:
Base de dados contendo
aproximadamente 200 mil cidades
Fonte retirada da base de dados
Open Weather Map
Determinar melhores condições
climáticas de cidades dado um
conjunto de critérios
2 Problema de otimização multiobjetivo:
Múltiplos critérios de otimização
Critérios conflitantes
3 Ranqueamento das fronteiras de
pareto (Fast non dominated sorting):
Parte do algoritmo genético NSGA-II
Complexidade do algoritmo O(MN2
)
4 Proposta de uma abordagem paralela.
SSC5795 Vinícius Aires Barros Novembro 2016 4 / 48
Motivação e Gap
Alta complexidade do algoritmo para valores N grande;
Necessidade de criação de uma versão otimizada do algoritmo que consiga
diminuir o tempo de execução em relação ao tempo de sua versão serial; e
Auxiliar na seleção de cidades em relação aos critérios de otimização
multiobjetivo.
SSC5795 Vinícius Aires Barros Novembro 2016 5 / 48
Objetivos
1 Aplicar o algoritmo Fast Non dominated Sorting para a seleção de cidades de
acordo com suas informações climáticas;
2 Paralelizar o algoritmo Fast Non Dominated Sorting; e
3 Avaliar o desempenho da solução proposta.
SSC5795 Vinícius Aires Barros Novembro 2016 6 / 48
Fundamentação Teórica
1 Internet das Coisas;
2 Big Data;
3 Otimização Multiobjetivo;
4 Fronteira de Pareto;
5 Relação de Dominância;
6 Relação de Não Dominância;
7 Algoritmo Fast Non Dominated Sorting;
8 Paralelização do Algoritmo; e
9 Avaliação de Desempenho.
SSC5795 Vinícius Aires Barros Novembro 2016 7 / 48
Internet of Things (IoT)
DEFINIÇÃO
A Internet das Coisas, refere-se à uma nova abordagem sobre a
interconexão de coisas, tecnologias e objetos, através da Internet. Essa
abordagem proporcionou ao longo do tempo a criação da rede global de
dispositivos [8].
Alguns exemplos de aplicações que
utilizam IoT:
Smart Farms: Agricultura de Precisão
e Controle Ambiental;
Smart Cities: Controle do Trânsito e
Monitoramento do Clima; e
Smart Homes: Agilidade nas
atividades do dia a dia das pessoas.
SSC5795 Vinícius Aires Barros Novembro 2016 8 / 48
Big Data
DEFINIÇÃO
Big Data é definido como um conjunto de dados estruturados ou não estruturados que
não puderam ser percebidos, adquiridos, gerenciados e processados pelos modelos
tradicionais de hardware e software [3].
Alguns exemplos de aplicações de Big
Data:
Processamento e análise das
preferências dos usuário de um
sistema;
Detecção de fraudes em licitações; e
Auxiliar na tomada de decisão de
diferentes cenários.
SSC5795 Vinícius Aires Barros Novembro 2016 9 / 48
Otimização Multiobjetivo
DEFINIÇÃO
A otimização multiobjetivo é uma parte integrante das atividades de
otimização que apresenta uma enorme importância prática, uma vez que
quase todos os problemas de otimização do mundo real são ideais que
sejam modelados utilizando múltiplos objetivos conflitantes [4].
Alguns exemplos práticos da aplicação de
modelos de otimização multiobjetivo:
Problemas de engenharia;
Indústria; e
Ciência da Computação.
SSC5795 Vinícius Aires Barros Novembro 2016 10 / 48
Fronteira de Pareto
DEFINIÇÃO
Relações denominadas fronteira de pareto são utilizadas para comparar
soluções, onde o conjunto de soluções ótimas de um problema é dado o
nome de soluções de pareto ótimas ou soluções não dominadas [7].
C
Pareto
A
B
f2(A) < f2(B)
f1
f2
f1(A) > f1(B)
Conjunto das melhores soluções dado
um conjunto de critérios;
Soluções dominadas e não
dominadas; e
Níveis de soluções separadas em
camadas.
SSC5795 Vinícius Aires Barros Novembro 2016 11 / 48
Relação de Dominância
DEFINIÇÃO
Uma solução xT é dita não dominada quando não existe nenhum x ∈ S tal
que fi (x) ≤ fi (xT ) para pelo menos um dos objetivos analisados [1]. A
imagem do conjunto de soluções ótimas é chamada de fronteira de pareto ou
curva de pareto. O formato da fronteira de pareto indica a natureza do
trade-off entre diferentes funções objetivo [2].
Não é Reflexiva
A relação de dominância não é reflexiva uma vez que qualquer solução x não se auto
domina (por definição de dominância).
Não é Simétrica
A relação de dominância não é simétrica, por exemplo x y não implica que y x.
Mas o contrário y x é verdade.
Não é Anti Simétrica
Como a relação de dominância não é simétrica, ela também não pode ser Anti
simétrica.
É Transitiva
A relação de dominância é transitiva. Se x y e y z, logo x z.
SSC5795 Vinícius Aires Barros Novembro 2016 12 / 48
Relação de Não Dominância
DEFINIÇÃO
Entre um conjunto de soluções P, o conjunto não dominado de soluções P
são aqueles que não são dominados por qualquer membro do conjunto P [7].
Para um determinado conjunto de solução, podemos realizar todas as
comparações possíveis par a par e encontrar qual solução domina quais e quais
soluções não são dominadas umas em relação às outras; e
Este conjunto tem a propriedade de dominar todas as soluções que pertencem ao
conjunto.
SSC5795 Vinícius Aires Barros Novembro 2016 13 / 48
Fast Non Dominated Sorting
1: procedure FAST-NON-DOMINATED-SORT(P)
2: for p ∈ P do
3: Sp ← 0
4: np ← 0
5: for q ∈ P do
6: if p q then
7: Sp ← Sp ∪ {q}
8: else
9: if q p then
10: np ← np + 1
11: if np = 0 then
12: prank ← 1
13: Fi = Fi ∪ {p}
14: i ← 1
15: while Fi = 0 do
16: Q ← 0
17: for p ∈ Fi do
18: for q ∈ Sp do
19: np ← np − 1
20: if np = 0 then
21: qrank ← i + 1
22: Q ← Q ∪ {q}
23: i ← i + 1
24: Fi ← Q
1 Para cada item são computados três
entidades:
Sp: conjunto de soluções dominadas
np: número de soluções dominadas
por p
Fi : conjunto de soluções não
dominadas
2 Complexidade O(MN2):
O(MN2
) operações para cada p em
Sp
O(N2
) para computar as próximas
fronteiras Pk , k = 1, 2, ... (camadas
de fronteiras não dominadas)
M: número de critérios
N: tamanho da entrada
SSC5795 Vinícius Aires Barros Novembro 2016 14 / 48
Avaliação de Desempenho
Avaliar o comportamento do algoritmo
implementado;
Visualização dos ganhos de
desempenho obtidos; e
Métricas de avaliação.
Speedup
Eficiência
SSC5795 Vinícius Aires Barros Novembro 2016 15 / 48
Speedup
Speedup
O speedup diz respeito ao ganho de desempenho obtido em comparação
com a versão sequencial do algoritmo [9].
Sp =
Ts
Tp
(1)
SSC5795 Vinícius Aires Barros Novembro 2016 16 / 48
Eficiência
Eficiência
A eficiência de um algoritmo paralelo está relacionada ao tempo em que os
processos de fato estão executando o problema. Esta métrica tem como
objetivo indicar os possíveis tempos de ociosidades ou alto custo de
comunicação de sistemas concorrentes [9].
E =
Sp
p
(2)
SSC5795 Vinícius Aires Barros Novembro 2016 17 / 48
Trabalhos Relacionados
A fast and elitist multiobjective genetic algorithm: NSGA-II [5];
An efficient approach to nondominated sorting for evolutionary multiobjective
optimization [12];
Very Fast Non-Dominated Sorting [11]; e
GPU based Non-dominated Sorting Genetic Algorithm-II for multi-objective traffic
light signaling optimization with agent based modeling [10].
SSC5795 Vinícius Aires Barros Novembro 2016 18 / 48
Metodologia
1 Desenvolvimento do algoritmo
sequencial;
2 Mapeamento e decomposição de
tarefas;
3 Paralelização do algoritmo proposto;
4 Ambiente de execução de
experimentos; e
5 Definição dos experimentos.
SSC5795 Vinícius Aires Barros Novembro 2016 19 / 48
Mapeamento e decomposição de tarefas
Metodologia PCAM de Ian Foster [6]:
1 Particionamento
Divisão do espaço busca e
combinações;
2 Comunicação
Passagem de mensagem (send e
receive);
3 Aglomeração
Junção de operações;
4 Mapeamento
Divisão de tarefas em processos;
5 Decomposição do problema
SSC5795 Vinícius Aires Barros Novembro 2016 20 / 48
Decomposição de Tarefas
Figura: Divisão de tarefas do algoritmo Fast non dominated sorting.
SSC5795 Vinícius Aires Barros Novembro 2016 21 / 48
Grafo de dependências (Primeira Fronteira)
Figura: Grafo de dependências (Processar Primeira Camada).
SSC5795 Vinícius Aires Barros Novembro 2016 22 / 48
Grafo de dependências (Demais Fronteiras)
Figura: Grafo de dependências (Processar Demais Camadas).
SSC5795 Vinícius Aires Barros Novembro 2016 23 / 48
Decomposição de Tarefas (Primeira Fronteira)
Figura: Diagrama de Decomposição de Tarefas (Cálculo da primeira fronteira).
SSC5795 Vinícius Aires Barros Novembro 2016 24 / 48
Decomposição de Tarefas (Demais Fronteiras)
Figura: Diagrama de Decomposição de Tarefas (Cálculo das demais fronteiras).
SSC5795 Vinícius Aires Barros Novembro 2016 25 / 48
Paralelização do algoritmo proposto
Paralelização do algoritmo por meio
de Threads e Sockets (comunicação
master e slave);
Conexão orientada a Sockets (TCP);
Criação de processos e threads
dinamicamente;
Linguagem de Programação Java;
Cálculo da primeira fronteira de
pareto;
Cálculo das demais fronteiras; e
Aplicação de métricas de avaliação de
desempenho.
SSC5795 Vinícius Aires Barros Novembro 2016 26 / 48
Gerenciamento de Processos
Pool de Threads;
Enfileiramento de processos (Blocking
Queue); e
Melhor gerenciamento da execução
dos processos.
SSC5795 Vinícius Aires Barros Novembro 2016 27 / 48
Enfileiramento de Processos (Blocking Queue)
Figura: Fila de processos.
SSC5795 Vinícius Aires Barros Novembro 2016 28 / 48
Ambiente experimental
Cluster Halley:
Nós (13 hosts / 104 virtuais) (1 master + 12 slaves);
Intel R CoreTM I7 Processor – LGA -1150 – 4790 3.60GHZ DMI 5GT/S 8MB
32 GB RAM DDR3 Corsair Vegeance; e
HD 2TB Seagate Sata III 7200RPM.
Infraestrutura utilizada:
Nove máquinas físicas, sendo 1 master e 8 slaves.
SSC5795 Vinícius Aires Barros Novembro 2016 29 / 48
Algoritmo (Memória Distribuída)
Figura: Modelo de computação master e slave.
SSC5795 Vinícius Aires Barros Novembro 2016 30 / 48
Algoritmo (Memória Distribuída)
Figura: Modelo de computação master e slave.
SSC5795 Vinícius Aires Barros Novembro 2016 31 / 48
Algoritmo (Memória Distribuída)
Figura: Diagrama de atividades algoritmo (versão memória distribuída).
SSC5795 Vinícius Aires Barros Novembro 2016 32 / 48
Algoritmo (Memória Distribuída Continuação)
Figura: Diagrama de atividades algoritmo (versão memória distribuída).
SSC5795 Vinícius Aires Barros Novembro 2016 33 / 48
Definição do Modelo de Otimização
Maximizar temperatura;
Maximizar umidade;
Maximizar nuvens;
Minimizar velocidade do vento.
SSC5795 Vinícius Aires Barros Novembro 2016 34 / 48
Definição do experimento
1 Memória Compartilhada;
Uma máquina: 2, 4 e 8 processos
2 Memória Distribuída; e
Um processo: 2, 4, 8 máquinas
3 Mestre e Escravo (master e slave).
Um mestre + duas máquinas: 2, 4 e 8 processos
Um mestre + quatro máquinas: 2, 4 e 8 processos
Um mestre + oito máquinas: 2, 4 e 8 processos
Execução 10x para cada experimento totalizando 150 execuções.
SSC5795 Vinícius Aires Barros Novembro 2016 35 / 48
Resultados
Resultados da implementação; e
Métricas de Speedup e Eficiência.
SSC5795 Vinícius Aires Barros Novembro 2016 36 / 48
Resultado da implementação
Figura: Resultado algoritmo serial. Figura: Resultado algoritmo paralelo.
Saída do algoritmo paralelo tem ordem não determinística, mas com os ranks em
ordem crescente.
SSC5795 Vinícius Aires Barros Novembro 2016 37 / 48
Speedup (Todos os experimentos)
Figura: Resultado Speedup.
SSC5795 Vinícius Aires Barros Novembro 2016 38 / 48
Speedup (Todos os experimentos)
Figura: Resultado Speedup.
A partir de 4 máquinas o speedup tende a diminuir.
SSC5795 Vinícius Aires Barros Novembro 2016 39 / 48
Eficiência (Todos os experimentos)
Figura: Resultado eficiência.
SSC5795 Vinícius Aires Barros Novembro 2016 40 / 48
Eficiência (Todos os experimentos)
Figura: Resultado eficiência.
A partir de 4 máquinas a eficiência diminui.
SSC5795 Vinícius Aires Barros Novembro 2016 41 / 48
Tempo médio de execução dos experimentos
Tabela: Resultado médio dos experimentos.
Paradigma N. de Máquinas N. de Threads Tempo Serial (m) Tempo Exp. (m) Speedup Fator (%) Eficiência Custo
Master/Slave 2 8 89,84 11,33 7,93 1,00 3,97 2
Memória C. 1 8 89,84 24,34 3,69 1,00 3,69 1
Master/Slave 4 8 89,84 11,67 7,70 1,00 1,92 4
Master/Slave 2 4 89,84 12,46 7,21 0,50 1,80 2
Memória C. 1 4 89,84 26,79 3,35 0,50 1,68 1
Master/Slave 8 8 89,84 13,15 6,83 1,00 0,85 8
Master/Slave 4 4 89,84 13,18 6,82 0,50 0,85 4
Master/Slave 2 2 89,84 20,43 4,40 0,25 0,55 2
Memória C. 1 2 89,84 45,64 1,97 0,25 0,49 1
Master/Slave 8 4 89,84 14,57 6,17 0,50 0,39 8
Master/Slave 4 2 89,84 20,04 4,48 0,25 0,28 4
Memória D. 2 1 89,84 34,88 2,58 0,13 0,16 2
Master/Slave 8 2 89,84 25,12 3,58 0,25 0,11 8
Memória D. 4 1 89,84 35,55 2,53 0,13 0,08 4
Memória D. 8 1 89,84 39,97 2,25 0,13 0,04 8
Amarelo = Melhores experimentos com relação speedup, eficiência, tempo e custo.
SSC5795 Vinícius Aires Barros Novembro 2016 42 / 48
Considerações Finais
1 Quanto maior o número de máquinas a eficiência tende a diminuir;
2 Quanto maior o número de threads o speedup e eficiência aumentam
consideravelmente;
3 Quanto menor o número de threads o desempenho diminui significativamente;
4 Dado um limiar de número de máquinas e threads o desempenho tende a cair; e
5 Pontos de sincronização, comunicação e condições de disputa (tempo de
ociosidade).
Trabalhos Futuros:
Implementação do algoritmo em outros modelos de programação;
Realizar avaliação de desempenho levando em consideração diferentes
tamanhos de entradas; e
Otimizar algoritmo implementado visando diminuir o overheads enfrentados.
SSC5795 Vinícius Aires Barros Novembro 2016 43 / 48
Dificuldades Encontradas
Dificuldades no entendimento do domínio do problema proposto;
Problemas enfrentados com relação a forte dependência de dados do algoritmo;
Implementação em MapReduce (Hadoop).
SSC5795 Vinícius Aires Barros Novembro 2016 44 / 48
Obrigado!
SSC5795 Vinícius Aires Barros Novembro 2016 45 / 48
Referências I
A. Abraham and L. Jain.
Evolutionary multiobjective optimization.
In Evolutionary Multiobjective Optimization, pages 1–6. Springer, 2005.
M. Caramia and P. Dell’Olmo.
Multi-objective management in freight logistics: Increasing capacity, service level
and safety with optimization algorithms.
Springer Science & Business Media, 2008.
M. Chen, S. Mao, and Y. Liu.
Big data: A survey.
In Mobile Networks and Applications, 2014.
K. Deb.
Multi-objective optimization.
In Search methodologies, pages 403–449. Springer, 2014.
K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan.
A fast and elitist multiobjective genetic algorithm: Nsga-ii.
IEEE transactions on evolutionary computation, 6(2):182–197, 2002.
I. Foster.
Designing and building parallel programs, 1995.
SSC5795 Vinícius Aires Barros Novembro 2016 46 / 48
Referências II
A. L. Jaimes, S. Z. Martınez, and C. A. C. Coello.
An introduction to multiobjective optimization techniques.
Optimization in Polymer Processing, pages 29–57, 2009.
T. L. Koreshoff, T. Robertson, and T. W. Leong.
Internet of things: A review of literature and products.
In Proceedings of the 25th Australian Computer-Human Interaction Conference:
Augmentation, Application, Innovation, Collaboration, OzCHI ’13, pages 335–344,
New York, NY, USA, 2013. ACM.
P. Pacheco.
An introduction to parallel programming.
Elsevier, 2011.
Z. Shen, K. Wang, and F.-Y. Wang.
Gpu based non-dominated sorting genetic algorithm-ii for multi-objective traffic
light signaling optimization with agent based modeling.
In 16th International IEEE Conference on Intelligent Transportation Systems
(ITSC 2013), pages 1840–1845. IEEE, 2013.
C. Smutnicki, J. Rudy, and D. ˙Zelazny.
Very fast non-dominated sorting.
Decision Making in Manufacturing and Services, 8, 2014.
SSC5795 Vinícius Aires Barros Novembro 2016 47 / 48
Referências III
X. Zhang, Y. Tian, R. Cheng, and Y. Jin.
An efficient approach to nondominated sorting for evolutionary multiobjective
optimization.
IEEE Transactions on Evolutionary Computation, 19(2):201–213, 2015.
SSC5795 Vinícius Aires Barros Novembro 2016 48 / 48

Mais conteúdo relacionado

Semelhante a Apresentação Programação Concorrente USP

3 0 cap 003
3 0 cap 0033 0 cap 003
3 0 cap 003luisadr
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoHelder Lopes
 
Plano de aula po1 capitulo 3 introdução a po 2015 vrs 0000.ppt [modo de com...
Plano de aula po1 capitulo 3   introdução a po 2015 vrs 0000.ppt [modo de com...Plano de aula po1 capitulo 3   introdução a po 2015 vrs 0000.ppt [modo de com...
Plano de aula po1 capitulo 3 introdução a po 2015 vrs 0000.ppt [modo de com...Luis Duncan
 
Além do Método do Caminho Crítico: Success Driven Project Management
Além do Método do Caminho Crítico: Success Driven Project ManagementAlém do Método do Caminho Crítico: Success Driven Project Management
Além do Método do Caminho Crítico: Success Driven Project ManagementPeter Mello
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
Aula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdf
Aula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdfAula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdf
Aula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdfRonnisonRegesVidal
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting ProfessionalMichel Alves
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Práticatdc-globalcode
 
Revisões RUP na fase de Análise de Software - TCC
Revisões RUP na fase de Análise de Software - TCCRevisões RUP na fase de Análise de Software - TCC
Revisões RUP na fase de Análise de Software - TCCCassiano Casagrande
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática ComputacionalRicardo Terra
 
Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...
Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...
Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...Minitab, LLC
 
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...Luciano Araki
 

Semelhante a Apresentação Programação Concorrente USP (20)

3 0 cap 003
3 0 cap 0033 0 cap 003
3 0 cap 003
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de Informação
 
Plano de aula po1 capitulo 3 introdução a po 2015 vrs 0000.ppt [modo de com...
Plano de aula po1 capitulo 3   introdução a po 2015 vrs 0000.ppt [modo de com...Plano de aula po1 capitulo 3   introdução a po 2015 vrs 0000.ppt [modo de com...
Plano de aula po1 capitulo 3 introdução a po 2015 vrs 0000.ppt [modo de com...
 
Além do Método do Caminho Crítico: Success Driven Project Management
Além do Método do Caminho Crítico: Success Driven Project ManagementAlém do Método do Caminho Crítico: Success Driven Project Management
Além do Método do Caminho Crítico: Success Driven Project Management
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Aula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdf
Aula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdfAula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdf
Aula 01_ contrato didatico_20221 - Raciocinio lógico algoritmos 02.pdf
 
Pesquisa Operacional
Pesquisa OperacionalPesquisa Operacional
Pesquisa Operacional
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting Professional
 
Gerenciamento de projetos Aula05 -exercício cpm-parte1
Gerenciamento de projetos Aula05 -exercício cpm-parte1Gerenciamento de projetos Aula05 -exercício cpm-parte1
Gerenciamento de projetos Aula05 -exercício cpm-parte1
 
Questionário bb 1 semana
Questionário bb 1 semanaQuestionário bb 1 semana
Questionário bb 1 semana
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Prática
 
PO - aula 1.pptx
PO - aula 1.pptxPO - aula 1.pptx
PO - aula 1.pptx
 
Pdca p-g
Pdca p-gPdca p-g
Pdca p-g
 
Revisões RUP na fase de Análise de Software - TCC
Revisões RUP na fase de Análise de Software - TCCRevisões RUP na fase de Análise de Software - TCC
Revisões RUP na fase de Análise de Software - TCC
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática Computacional
 
Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...
Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...
Melhore seu conhecimento sobre analise de dados com a versao mais recente do ...
 
Modelo essencial
Modelo essencialModelo essencial
Modelo essencial
 
Aula1
Aula1Aula1
Aula1
 
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
 

Apresentação Programação Concorrente USP

  • 1. Paralelização do algoritmo Fast non Dominated Sorting para a classificação de cidades de acordo com informações do clima Vinícius Aires Barros Programação Concorrente Prof. Dr. Paulo Sérgio Lopes de Souza Grupo de Sistemas Distribuídos e Programação Concorrente Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Novembro 2016 SSC5795 Vinícius Aires Barros Novembro 2016 1 / 48
  • 2. Agenda 1 Introdução 1 Definição do Problema 2 Motivação e Gap 3 Objetivos 2 Fundamentação Teórica 3 Metodologia 4 Resultados 5 Considerações Finais SSC5795 Vinícius Aires Barros Novembro 2016 2 / 48
  • 3. Introdução 1 Base de dados com informações climáticas de cidades; 2 Algoritmo de seleção por meio de ranqueamento das fronteiras de pareto; 3 Proposta de paralelização do algoritmo; 4 Mapeamento e decomposição de tarefas; e 5 Avaliação de desempenho. SSC5795 Vinícius Aires Barros Novembro 2016 3 / 48
  • 4. Definição do Problema 1 Seleção de cidades de acordo com informações do clima: Base de dados contendo aproximadamente 200 mil cidades Fonte retirada da base de dados Open Weather Map Determinar melhores condições climáticas de cidades dado um conjunto de critérios 2 Problema de otimização multiobjetivo: Múltiplos critérios de otimização Critérios conflitantes 3 Ranqueamento das fronteiras de pareto (Fast non dominated sorting): Parte do algoritmo genético NSGA-II Complexidade do algoritmo O(MN2 ) 4 Proposta de uma abordagem paralela. SSC5795 Vinícius Aires Barros Novembro 2016 4 / 48
  • 5. Motivação e Gap Alta complexidade do algoritmo para valores N grande; Necessidade de criação de uma versão otimizada do algoritmo que consiga diminuir o tempo de execução em relação ao tempo de sua versão serial; e Auxiliar na seleção de cidades em relação aos critérios de otimização multiobjetivo. SSC5795 Vinícius Aires Barros Novembro 2016 5 / 48
  • 6. Objetivos 1 Aplicar o algoritmo Fast Non dominated Sorting para a seleção de cidades de acordo com suas informações climáticas; 2 Paralelizar o algoritmo Fast Non Dominated Sorting; e 3 Avaliar o desempenho da solução proposta. SSC5795 Vinícius Aires Barros Novembro 2016 6 / 48
  • 7. Fundamentação Teórica 1 Internet das Coisas; 2 Big Data; 3 Otimização Multiobjetivo; 4 Fronteira de Pareto; 5 Relação de Dominância; 6 Relação de Não Dominância; 7 Algoritmo Fast Non Dominated Sorting; 8 Paralelização do Algoritmo; e 9 Avaliação de Desempenho. SSC5795 Vinícius Aires Barros Novembro 2016 7 / 48
  • 8. Internet of Things (IoT) DEFINIÇÃO A Internet das Coisas, refere-se à uma nova abordagem sobre a interconexão de coisas, tecnologias e objetos, através da Internet. Essa abordagem proporcionou ao longo do tempo a criação da rede global de dispositivos [8]. Alguns exemplos de aplicações que utilizam IoT: Smart Farms: Agricultura de Precisão e Controle Ambiental; Smart Cities: Controle do Trânsito e Monitoramento do Clima; e Smart Homes: Agilidade nas atividades do dia a dia das pessoas. SSC5795 Vinícius Aires Barros Novembro 2016 8 / 48
  • 9. Big Data DEFINIÇÃO Big Data é definido como um conjunto de dados estruturados ou não estruturados que não puderam ser percebidos, adquiridos, gerenciados e processados pelos modelos tradicionais de hardware e software [3]. Alguns exemplos de aplicações de Big Data: Processamento e análise das preferências dos usuário de um sistema; Detecção de fraudes em licitações; e Auxiliar na tomada de decisão de diferentes cenários. SSC5795 Vinícius Aires Barros Novembro 2016 9 / 48
  • 10. Otimização Multiobjetivo DEFINIÇÃO A otimização multiobjetivo é uma parte integrante das atividades de otimização que apresenta uma enorme importância prática, uma vez que quase todos os problemas de otimização do mundo real são ideais que sejam modelados utilizando múltiplos objetivos conflitantes [4]. Alguns exemplos práticos da aplicação de modelos de otimização multiobjetivo: Problemas de engenharia; Indústria; e Ciência da Computação. SSC5795 Vinícius Aires Barros Novembro 2016 10 / 48
  • 11. Fronteira de Pareto DEFINIÇÃO Relações denominadas fronteira de pareto são utilizadas para comparar soluções, onde o conjunto de soluções ótimas de um problema é dado o nome de soluções de pareto ótimas ou soluções não dominadas [7]. C Pareto A B f2(A) < f2(B) f1 f2 f1(A) > f1(B) Conjunto das melhores soluções dado um conjunto de critérios; Soluções dominadas e não dominadas; e Níveis de soluções separadas em camadas. SSC5795 Vinícius Aires Barros Novembro 2016 11 / 48
  • 12. Relação de Dominância DEFINIÇÃO Uma solução xT é dita não dominada quando não existe nenhum x ∈ S tal que fi (x) ≤ fi (xT ) para pelo menos um dos objetivos analisados [1]. A imagem do conjunto de soluções ótimas é chamada de fronteira de pareto ou curva de pareto. O formato da fronteira de pareto indica a natureza do trade-off entre diferentes funções objetivo [2]. Não é Reflexiva A relação de dominância não é reflexiva uma vez que qualquer solução x não se auto domina (por definição de dominância). Não é Simétrica A relação de dominância não é simétrica, por exemplo x y não implica que y x. Mas o contrário y x é verdade. Não é Anti Simétrica Como a relação de dominância não é simétrica, ela também não pode ser Anti simétrica. É Transitiva A relação de dominância é transitiva. Se x y e y z, logo x z. SSC5795 Vinícius Aires Barros Novembro 2016 12 / 48
  • 13. Relação de Não Dominância DEFINIÇÃO Entre um conjunto de soluções P, o conjunto não dominado de soluções P são aqueles que não são dominados por qualquer membro do conjunto P [7]. Para um determinado conjunto de solução, podemos realizar todas as comparações possíveis par a par e encontrar qual solução domina quais e quais soluções não são dominadas umas em relação às outras; e Este conjunto tem a propriedade de dominar todas as soluções que pertencem ao conjunto. SSC5795 Vinícius Aires Barros Novembro 2016 13 / 48
  • 14. Fast Non Dominated Sorting 1: procedure FAST-NON-DOMINATED-SORT(P) 2: for p ∈ P do 3: Sp ← 0 4: np ← 0 5: for q ∈ P do 6: if p q then 7: Sp ← Sp ∪ {q} 8: else 9: if q p then 10: np ← np + 1 11: if np = 0 then 12: prank ← 1 13: Fi = Fi ∪ {p} 14: i ← 1 15: while Fi = 0 do 16: Q ← 0 17: for p ∈ Fi do 18: for q ∈ Sp do 19: np ← np − 1 20: if np = 0 then 21: qrank ← i + 1 22: Q ← Q ∪ {q} 23: i ← i + 1 24: Fi ← Q 1 Para cada item são computados três entidades: Sp: conjunto de soluções dominadas np: número de soluções dominadas por p Fi : conjunto de soluções não dominadas 2 Complexidade O(MN2): O(MN2 ) operações para cada p em Sp O(N2 ) para computar as próximas fronteiras Pk , k = 1, 2, ... (camadas de fronteiras não dominadas) M: número de critérios N: tamanho da entrada SSC5795 Vinícius Aires Barros Novembro 2016 14 / 48
  • 15. Avaliação de Desempenho Avaliar o comportamento do algoritmo implementado; Visualização dos ganhos de desempenho obtidos; e Métricas de avaliação. Speedup Eficiência SSC5795 Vinícius Aires Barros Novembro 2016 15 / 48
  • 16. Speedup Speedup O speedup diz respeito ao ganho de desempenho obtido em comparação com a versão sequencial do algoritmo [9]. Sp = Ts Tp (1) SSC5795 Vinícius Aires Barros Novembro 2016 16 / 48
  • 17. Eficiência Eficiência A eficiência de um algoritmo paralelo está relacionada ao tempo em que os processos de fato estão executando o problema. Esta métrica tem como objetivo indicar os possíveis tempos de ociosidades ou alto custo de comunicação de sistemas concorrentes [9]. E = Sp p (2) SSC5795 Vinícius Aires Barros Novembro 2016 17 / 48
  • 18. Trabalhos Relacionados A fast and elitist multiobjective genetic algorithm: NSGA-II [5]; An efficient approach to nondominated sorting for evolutionary multiobjective optimization [12]; Very Fast Non-Dominated Sorting [11]; e GPU based Non-dominated Sorting Genetic Algorithm-II for multi-objective traffic light signaling optimization with agent based modeling [10]. SSC5795 Vinícius Aires Barros Novembro 2016 18 / 48
  • 19. Metodologia 1 Desenvolvimento do algoritmo sequencial; 2 Mapeamento e decomposição de tarefas; 3 Paralelização do algoritmo proposto; 4 Ambiente de execução de experimentos; e 5 Definição dos experimentos. SSC5795 Vinícius Aires Barros Novembro 2016 19 / 48
  • 20. Mapeamento e decomposição de tarefas Metodologia PCAM de Ian Foster [6]: 1 Particionamento Divisão do espaço busca e combinações; 2 Comunicação Passagem de mensagem (send e receive); 3 Aglomeração Junção de operações; 4 Mapeamento Divisão de tarefas em processos; 5 Decomposição do problema SSC5795 Vinícius Aires Barros Novembro 2016 20 / 48
  • 21. Decomposição de Tarefas Figura: Divisão de tarefas do algoritmo Fast non dominated sorting. SSC5795 Vinícius Aires Barros Novembro 2016 21 / 48
  • 22. Grafo de dependências (Primeira Fronteira) Figura: Grafo de dependências (Processar Primeira Camada). SSC5795 Vinícius Aires Barros Novembro 2016 22 / 48
  • 23. Grafo de dependências (Demais Fronteiras) Figura: Grafo de dependências (Processar Demais Camadas). SSC5795 Vinícius Aires Barros Novembro 2016 23 / 48
  • 24. Decomposição de Tarefas (Primeira Fronteira) Figura: Diagrama de Decomposição de Tarefas (Cálculo da primeira fronteira). SSC5795 Vinícius Aires Barros Novembro 2016 24 / 48
  • 25. Decomposição de Tarefas (Demais Fronteiras) Figura: Diagrama de Decomposição de Tarefas (Cálculo das demais fronteiras). SSC5795 Vinícius Aires Barros Novembro 2016 25 / 48
  • 26. Paralelização do algoritmo proposto Paralelização do algoritmo por meio de Threads e Sockets (comunicação master e slave); Conexão orientada a Sockets (TCP); Criação de processos e threads dinamicamente; Linguagem de Programação Java; Cálculo da primeira fronteira de pareto; Cálculo das demais fronteiras; e Aplicação de métricas de avaliação de desempenho. SSC5795 Vinícius Aires Barros Novembro 2016 26 / 48
  • 27. Gerenciamento de Processos Pool de Threads; Enfileiramento de processos (Blocking Queue); e Melhor gerenciamento da execução dos processos. SSC5795 Vinícius Aires Barros Novembro 2016 27 / 48
  • 28. Enfileiramento de Processos (Blocking Queue) Figura: Fila de processos. SSC5795 Vinícius Aires Barros Novembro 2016 28 / 48
  • 29. Ambiente experimental Cluster Halley: Nós (13 hosts / 104 virtuais) (1 master + 12 slaves); Intel R CoreTM I7 Processor – LGA -1150 – 4790 3.60GHZ DMI 5GT/S 8MB 32 GB RAM DDR3 Corsair Vegeance; e HD 2TB Seagate Sata III 7200RPM. Infraestrutura utilizada: Nove máquinas físicas, sendo 1 master e 8 slaves. SSC5795 Vinícius Aires Barros Novembro 2016 29 / 48
  • 30. Algoritmo (Memória Distribuída) Figura: Modelo de computação master e slave. SSC5795 Vinícius Aires Barros Novembro 2016 30 / 48
  • 31. Algoritmo (Memória Distribuída) Figura: Modelo de computação master e slave. SSC5795 Vinícius Aires Barros Novembro 2016 31 / 48
  • 32. Algoritmo (Memória Distribuída) Figura: Diagrama de atividades algoritmo (versão memória distribuída). SSC5795 Vinícius Aires Barros Novembro 2016 32 / 48
  • 33. Algoritmo (Memória Distribuída Continuação) Figura: Diagrama de atividades algoritmo (versão memória distribuída). SSC5795 Vinícius Aires Barros Novembro 2016 33 / 48
  • 34. Definição do Modelo de Otimização Maximizar temperatura; Maximizar umidade; Maximizar nuvens; Minimizar velocidade do vento. SSC5795 Vinícius Aires Barros Novembro 2016 34 / 48
  • 35. Definição do experimento 1 Memória Compartilhada; Uma máquina: 2, 4 e 8 processos 2 Memória Distribuída; e Um processo: 2, 4, 8 máquinas 3 Mestre e Escravo (master e slave). Um mestre + duas máquinas: 2, 4 e 8 processos Um mestre + quatro máquinas: 2, 4 e 8 processos Um mestre + oito máquinas: 2, 4 e 8 processos Execução 10x para cada experimento totalizando 150 execuções. SSC5795 Vinícius Aires Barros Novembro 2016 35 / 48
  • 36. Resultados Resultados da implementação; e Métricas de Speedup e Eficiência. SSC5795 Vinícius Aires Barros Novembro 2016 36 / 48
  • 37. Resultado da implementação Figura: Resultado algoritmo serial. Figura: Resultado algoritmo paralelo. Saída do algoritmo paralelo tem ordem não determinística, mas com os ranks em ordem crescente. SSC5795 Vinícius Aires Barros Novembro 2016 37 / 48
  • 38. Speedup (Todos os experimentos) Figura: Resultado Speedup. SSC5795 Vinícius Aires Barros Novembro 2016 38 / 48
  • 39. Speedup (Todos os experimentos) Figura: Resultado Speedup. A partir de 4 máquinas o speedup tende a diminuir. SSC5795 Vinícius Aires Barros Novembro 2016 39 / 48
  • 40. Eficiência (Todos os experimentos) Figura: Resultado eficiência. SSC5795 Vinícius Aires Barros Novembro 2016 40 / 48
  • 41. Eficiência (Todos os experimentos) Figura: Resultado eficiência. A partir de 4 máquinas a eficiência diminui. SSC5795 Vinícius Aires Barros Novembro 2016 41 / 48
  • 42. Tempo médio de execução dos experimentos Tabela: Resultado médio dos experimentos. Paradigma N. de Máquinas N. de Threads Tempo Serial (m) Tempo Exp. (m) Speedup Fator (%) Eficiência Custo Master/Slave 2 8 89,84 11,33 7,93 1,00 3,97 2 Memória C. 1 8 89,84 24,34 3,69 1,00 3,69 1 Master/Slave 4 8 89,84 11,67 7,70 1,00 1,92 4 Master/Slave 2 4 89,84 12,46 7,21 0,50 1,80 2 Memória C. 1 4 89,84 26,79 3,35 0,50 1,68 1 Master/Slave 8 8 89,84 13,15 6,83 1,00 0,85 8 Master/Slave 4 4 89,84 13,18 6,82 0,50 0,85 4 Master/Slave 2 2 89,84 20,43 4,40 0,25 0,55 2 Memória C. 1 2 89,84 45,64 1,97 0,25 0,49 1 Master/Slave 8 4 89,84 14,57 6,17 0,50 0,39 8 Master/Slave 4 2 89,84 20,04 4,48 0,25 0,28 4 Memória D. 2 1 89,84 34,88 2,58 0,13 0,16 2 Master/Slave 8 2 89,84 25,12 3,58 0,25 0,11 8 Memória D. 4 1 89,84 35,55 2,53 0,13 0,08 4 Memória D. 8 1 89,84 39,97 2,25 0,13 0,04 8 Amarelo = Melhores experimentos com relação speedup, eficiência, tempo e custo. SSC5795 Vinícius Aires Barros Novembro 2016 42 / 48
  • 43. Considerações Finais 1 Quanto maior o número de máquinas a eficiência tende a diminuir; 2 Quanto maior o número de threads o speedup e eficiência aumentam consideravelmente; 3 Quanto menor o número de threads o desempenho diminui significativamente; 4 Dado um limiar de número de máquinas e threads o desempenho tende a cair; e 5 Pontos de sincronização, comunicação e condições de disputa (tempo de ociosidade). Trabalhos Futuros: Implementação do algoritmo em outros modelos de programação; Realizar avaliação de desempenho levando em consideração diferentes tamanhos de entradas; e Otimizar algoritmo implementado visando diminuir o overheads enfrentados. SSC5795 Vinícius Aires Barros Novembro 2016 43 / 48
  • 44. Dificuldades Encontradas Dificuldades no entendimento do domínio do problema proposto; Problemas enfrentados com relação a forte dependência de dados do algoritmo; Implementação em MapReduce (Hadoop). SSC5795 Vinícius Aires Barros Novembro 2016 44 / 48
  • 45. Obrigado! SSC5795 Vinícius Aires Barros Novembro 2016 45 / 48
  • 46. Referências I A. Abraham and L. Jain. Evolutionary multiobjective optimization. In Evolutionary Multiobjective Optimization, pages 1–6. Springer, 2005. M. Caramia and P. Dell’Olmo. Multi-objective management in freight logistics: Increasing capacity, service level and safety with optimization algorithms. Springer Science & Business Media, 2008. M. Chen, S. Mao, and Y. Liu. Big data: A survey. In Mobile Networks and Applications, 2014. K. Deb. Multi-objective optimization. In Search methodologies, pages 403–449. Springer, 2014. K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan. A fast and elitist multiobjective genetic algorithm: Nsga-ii. IEEE transactions on evolutionary computation, 6(2):182–197, 2002. I. Foster. Designing and building parallel programs, 1995. SSC5795 Vinícius Aires Barros Novembro 2016 46 / 48
  • 47. Referências II A. L. Jaimes, S. Z. Martınez, and C. A. C. Coello. An introduction to multiobjective optimization techniques. Optimization in Polymer Processing, pages 29–57, 2009. T. L. Koreshoff, T. Robertson, and T. W. Leong. Internet of things: A review of literature and products. In Proceedings of the 25th Australian Computer-Human Interaction Conference: Augmentation, Application, Innovation, Collaboration, OzCHI ’13, pages 335–344, New York, NY, USA, 2013. ACM. P. Pacheco. An introduction to parallel programming. Elsevier, 2011. Z. Shen, K. Wang, and F.-Y. Wang. Gpu based non-dominated sorting genetic algorithm-ii for multi-objective traffic light signaling optimization with agent based modeling. In 16th International IEEE Conference on Intelligent Transportation Systems (ITSC 2013), pages 1840–1845. IEEE, 2013. C. Smutnicki, J. Rudy, and D. ˙Zelazny. Very fast non-dominated sorting. Decision Making in Manufacturing and Services, 8, 2014. SSC5795 Vinícius Aires Barros Novembro 2016 47 / 48
  • 48. Referências III X. Zhang, Y. Tian, R. Cheng, and Y. Jin. An efficient approach to nondominated sorting for evolutionary multiobjective optimization. IEEE Transactions on Evolutionary Computation, 19(2):201–213, 2015. SSC5795 Vinícius Aires Barros Novembro 2016 48 / 48