SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Análise do problema do caixeiro viajante sobre diferentes
         ambientes de programação concorrente


                                   Elvio Viçosa Junior
                                  Jerônimo M. Madruga
                                     Rafael L. Pereira
                               Gerson Geraldo H. Cavalheiro


  {evicosa_ifm, jmadruga.ifm, rpereira.ifm, gerson.cavalheiro}@ufpel.edu.br




          Universidade Federal de Pelotas
                   IFM – DINFO                                                          ERAD 2008
              Ciência da Computação
     Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Sumário


•    Introdução
•    Caixeiro Viajante
•    Número de caminhos
•    Ambientes de Programação
•    Estratégias adotadas
•    Benchmark
•    Conclusão
•    Trabalhos Futuros

    Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Introdução




•    Motivação
•    Objetivos
•    Ferramentas utilizadas
•    Ambiente de teste




    Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Caixeiro Viajante




•    Descrição do problema
•    Complexidade envolvida
•    Estratégia de “força-bruta”
•    Longo tempo de execução
•    Aplicações Reais



    Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Número de caminhos




Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Ambientes de programação



• Athreads
    – Interface de programação de alto nível
• Cilk
    – Extensão a linguagem C
    – Baixo nível de overhead
• Pthreads
    – API padronizada para gerenciamento de threads



 Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Estratégias adotadas




•    Versão seqüencial
•    Teste com diversos números de cidades
•    Validação do algoritmo
•    Inserção da concorrência




    Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Benchmark




Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Conclusão




• Aumento de desempenho
• Utilização dos recursos da arquitetura
• Cálculo dos caminhos de forma concorrente




 Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Trabalhos futuros




•    Ambientes distribuídos
•    Concorrência intra-nó
•    Distribuição de tarefas entre nós
•    Afinidade das threads com processadores




    Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008
Análise do problema do caixeiro viajante sobre diferentes
         ambientes de programação concorrente


                                   Elvio Viçosa Junior
                                  Jerônimo M. Madruga
                                     Rafael L. Pereira
                               Gerson Geraldo H. Cavalheiro


  {evicosa_ifm, jmadruga.ifm, rpereira.ifm, gerson.cavalheiro}@ufpel.edu.br




          Universidade Federal de Pelotas
                   IFM – DINFO                                                          ERAD 2008
              Ciência da Computação
     Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro   ERAD 2008

Mais conteúdo relacionado

Mais de Jerônimo Medina Madruga

Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...Jerônimo Medina Madruga
 
Rock And Code: Como criar música programando
Rock And Code: Como criar música programandoRock And Code: Como criar música programando
Rock And Code: Como criar música programandoJerônimo Medina Madruga
 
Remember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalhoRemember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalhoJerônimo Medina Madruga
 
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéComo se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéJerônimo Medina Madruga
 
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...Jerônimo Medina Madruga
 
Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017Jerônimo Medina Madruga
 
Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017Jerônimo Medina Madruga
 
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017Jerônimo Medina Madruga
 
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...Jerônimo Medina Madruga
 
Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016Jerônimo Medina Madruga
 
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...Jerônimo Medina Madruga
 
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...Jerônimo Medina Madruga
 
Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015Jerônimo Medina Madruga
 
Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016Jerônimo Medina Madruga
 
Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016Jerônimo Medina Madruga
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Jerônimo Medina Madruga
 
Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013Jerônimo Medina Madruga
 

Mais de Jerônimo Medina Madruga (20)

Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
 
Rock And Code: Como criar música programando
Rock And Code: Como criar música programandoRock And Code: Como criar música programando
Rock And Code: Como criar música programando
 
Do zero ao python em 40 minutos!
Do zero ao python em 40 minutos!Do zero ao python em 40 minutos!
Do zero ao python em 40 minutos!
 
Remember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalhoRemember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalho
 
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéComo se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
 
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...
 
Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017
 
Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017
 
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
 
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
 
Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016
 
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
 
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
 
Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015
 
Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016
 
Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014
 
Curso de Moodle para Professores da UFPel
Curso de Moodle para Professores da UFPelCurso de Moodle para Professores da UFPel
Curso de Moodle para Professores da UFPel
 
CMS: The Good, the Bad and the Ugly
CMS: The Good, the Bad and the UglyCMS: The Good, the Bad and the Ugly
CMS: The Good, the Bad and the Ugly
 
Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013
 

Análise do problema do caixeiro viajante sobre diferentes ambientes de programação concorrente - ERAD 2008

  • 1. Análise do problema do caixeiro viajante sobre diferentes ambientes de programação concorrente Elvio Viçosa Junior Jerônimo M. Madruga Rafael L. Pereira Gerson Geraldo H. Cavalheiro {evicosa_ifm, jmadruga.ifm, rpereira.ifm, gerson.cavalheiro}@ufpel.edu.br Universidade Federal de Pelotas IFM – DINFO ERAD 2008 Ciência da Computação Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 2. Sumário • Introdução • Caixeiro Viajante • Número de caminhos • Ambientes de Programação • Estratégias adotadas • Benchmark • Conclusão • Trabalhos Futuros Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 3. Introdução • Motivação • Objetivos • Ferramentas utilizadas • Ambiente de teste Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 4. Caixeiro Viajante • Descrição do problema • Complexidade envolvida • Estratégia de “força-bruta” • Longo tempo de execução • Aplicações Reais Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 5. Número de caminhos Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 6. Ambientes de programação • Athreads – Interface de programação de alto nível • Cilk – Extensão a linguagem C – Baixo nível de overhead • Pthreads – API padronizada para gerenciamento de threads Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 7. Estratégias adotadas • Versão seqüencial • Teste com diversos números de cidades • Validação do algoritmo • Inserção da concorrência Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 8. Benchmark Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 9. Conclusão • Aumento de desempenho • Utilização dos recursos da arquitetura • Cálculo dos caminhos de forma concorrente Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 10. Trabalhos futuros • Ambientes distribuídos • Concorrência intra-nó • Distribuição de tarefas entre nós • Afinidade das threads com processadores Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008
  • 11. Análise do problema do caixeiro viajante sobre diferentes ambientes de programação concorrente Elvio Viçosa Junior Jerônimo M. Madruga Rafael L. Pereira Gerson Geraldo H. Cavalheiro {evicosa_ifm, jmadruga.ifm, rpereira.ifm, gerson.cavalheiro}@ufpel.edu.br Universidade Federal de Pelotas IFM – DINFO ERAD 2008 Ciência da Computação Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro ERAD 2008