Giter VIP home page Giter VIP logo

kaka-paralelo's Introduction

Sistemas distribuidos & Programação paralela:

Semana 1:

  • Os motivos de se fazer?

    • Menos tempo;
    • Mais complexidade;
    • Aproveitamento total de recursos computacionais;
    • Ultrapassar limites de um único hardware;

  • Desafios:

    • Sincronia no uso e comunicação dos dados;
    • Divisão adequada entre os recursos computacionais disponivéis de:
      • processos;
      • códigos;
      • dados;
    • Complexidade de implementação;
    • Conhecimento do hardware;
    • Impedimentos de paralelização;
    • Depuração complexa;

  • SpeedUp:

    • Porcentagem de melhora em comparação do sequencial para o paralelo
    • Modos de se calcular:
      • Comum:
        $SpeedUp = \frac{\Delta T _{Sequencial}}{\Delta T _{Paralelo}}$

      • Pela lei de Amdahl:
        $SpeedUp = \frac{ 1 }{\frac{ \Delta T _{Paralelo}}{nroProcesos} + \Delta T _{Sequencial}}$


Semana 2:

  • Modelos de computação paralela:

    • Modelos de máquina: Descreve as caracteristicas das máquinas
    • Modelos de programação: Permite compreender aspectos ligados a implementação e desempenho do codigo
    • Modelos de aplicação: representa o paralelismo de um algoritmo

  • Modelos de máquinas da taxonomia de Flynn:

Instruction \ Data | SD
(Single Data)
| MD
(Multiple Data)
SI
(Single Instruction)
| SISD
Máquina von Neumann
| SIMD
Máquinas Array
MI
(Multiple Instruction)
| MISD
Sem representante
| MIMD
Multiprocessadores
e Multicomputadores

  • Vantagens da modelagem paralela:

    • Permite compreender os diferentes impactos da aplicação na implementação de um codigo paralelo
      • Qtd de calculos envolvidos
      • Volume de dados manipulados
      • Depedência de informações entre as atividades em execução

  • Distribuição do trabalho (Granulosidade)

    • Relação entre o tamanho de cada tarefa e o tamanho total do programa (razão entre computação e comunicação):
      • Alta(Grossa)
      • Média
      • Baixa(Fina)
    • Indica o tipo de arquitetura mais adequada:
      • Clusters(grossa)
      • SMP(média)
      • Procs vetoriais(fina)

  • Paralelismo de dados VS Paralelismo de tarefas

    • Paralelismo de dados:
      • Execução de uma mesma tarefa sobre diferentes partes de um conjunto de dados.
      • Os dados determinam a concorrência da aplicação e a forma como o cálculo deve ser distribuído na arquitetura
    • Paralelismo de tarefa:
      • Execução paralela de diferentes atividades sobre conjuntos distintos de dados
      • Identificação das atividades concorrentes da aplicação e como essas atividades são distribuídas pelos recursos disponíveis

  • Mémoria compartilhada VS Troca de mensagens

    • Identifica como ocorre o compartilhamento de infoemações durante a execução;
    • Mémoria compartilhada
      • As tarefas em execução compartilham um mesmo espaço de memória
      • Comunicação através do acesso a uma área compartilhada
    • Troca de mensagens
      • Não existe um espaço de endereçamento comum
      • Comunicação através de troca de mensagens usando a rede de interconexão.

  • Modelos de Aplicação

    • WorkPool
      • Tarefas disponibilizadas em uma estrutura de dados global (memória compartilhada)
      • Desafios: Sincronização
      • Vantagem: Balanceamento de carga
    • Mestre / Escravo (Task farming)
      • Mestre dividi tarefas entre processos escravos
      • Desafio: Escalonamento centralizado (gargalo)
      • Vantagem: Maior tolerância a falhas
    • Pipeline
      • Fluxo contínuo de dados
      • Sobreposição de comunicação e computação
    • Divisão e conquista
      • Processo Pai e Filhos
      • Pai dividi o trabalho e repassa uma parte para os Filhos
    • Desafio: dificuldade de balanceamento de carga das tarefas

  • Fases paralelas

    • Etapas de computação e Sincronização
    • Desafios:
      • Problema de balanceamento de carga
        • Processos que acabam antes
      • Overhead de comunicação
        • comunicação é realizada ao mesmo tempo

Semana 04:

  • Troca de mensagens

    • comunicação síncrona (bloqueante)
      • send bloqueia emissor até receptor executar receive
      • receive bloqueia receptor até emissor enviar mensagem
    • comunicação assíncrona (não bloqueante)
      • send não bloqueia emissor
      • receive pode ser realizado durante execução
  • Comunicação em grupo

    • Broadcast: envio de msg a todos os processos do grupo
    • Gather/Scatter:
      • Gather: recebimento de partes de mensagens de diversos processos de um grupo por um processo (coletar)
      • Scatter: envio de partes de uma mensagem de um processo para diferentes processos de um grupo (distribuir)

kaka-paralelo's People

Contributors

leonardoconde avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.