Você está na página 1de 28

SISTEMAS DE INFORMAÇÃO

e
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

LINGUAGEM DE PROGRAMAÇÃO C++

Prof. Marilda Fatima de Souza da Silva


Computação de Alto
Desempenho (HPC)

22SSIS_6B/N

Prof. Manoel Guilherme


Apresentação do Professor

Prof. Esp. Manoel Guilherme Moraes

Mais de 20 anos de
Mestrando em Astrofísica e experiência em Head de Segurança da
Graduado em Matemática Pós Graduado em
Física Computacional – Infraestrutura de TI, Cloud, Informação (Blue Time) em
e Física Segurança da Informação
UNICID/SP Gestão e Segurança da uma FINTEC.
Informação.

profmguilhermemoraes@gmail.com @tectoyrj

https://www.linkedin.com/in/manoel-guilherme-moraes-
https://steamcommunity.com/id/tectoyrj/ 79334a3b/
High-Performance Computing (HPC)
Objetivos da Aula

• Apresentação da disciplina

• Introduzir os conceitos básicos de Computação paralela e distribuída

• Motivações

• Modelos de arquitetura
Vamos começar
nossa Jornada!
Para Refletir!

Science is organized Knowlegede. Wisdom is


Organized life.

Immanuel Kant

Ouse Saber! (Sapere aude)


High-Performance Computing (HPC)
Mas antes: Vamos falar sobre carros????

Alguma pergunta???
High-Performance Computing (HPC)

Formula 1 CG 150
High-Performance Computing (HPC)

10 Km

2,5Km 2,5Km 2,5Km 2,5Km


High-Performance Computing (HPC)

VS
F1 CG 150

• Tipo: Carro de Corrida • Tipo: moto de passeio


• Velocidade: 400 Km/h • Velocidade: 120 Km/h
• Consumo: 0,5 Km/l • Consumo: 40 Km/l
• Arrefecimento motor: Complexo • Arrefecimento motor: simples
• Preço: R$ 100 milhões • Preço: R$ 7 mil
High-Performance Computing (HPC)
Como percorrer 10 Km com menor tempo?

Comprar uma
moto de
corrida?

Comprar 4 CG
High-Performance Computing (HPC)

10 Km

2,5Km 2,5Km 2,5Km 2,5Km

Percorremos a mesma distância dividindo o trabalho


Reduzimos o consumo de combustível
High-Performance Computing (HPC)
O que tem isso tudo com Computação paralela??? Até 2000

• Processadores Single Core


• Aumento da frequência do clock
• Otimizações de HW
• Aumento de consumo de energia
High-Performance Computing (HPC)
E após o ano 2000???

• Processadores Single Core


• Aumento da frequência do clock No more
• Otimizações de HW
• Aumento de consumo de energia

• Processadores MultiCore
• Aumento da quantidade de núcleos
• Frequência do Clock Moderada
• Muito mais Otimizações de HW
High-Performance Computing (HPC)
Informações técnicas
Desempenho x Custo Energético

A e B possuem o “mesmo” poder de processamento


B dissipa 40% menos potência que A
High-Performance Computing (HPC)
Computação Serial
• A maioria das pessoas está familiarizada com a computação serial, mesmo que não
percebam que é assim que ela é chamada!
• A maioria dos programas que as pessoas escrevem e executam no dia a dia são
programas seriais.
• Um programa serial é executado em um único computador, geralmente em um único
processador. As instruções do programa são executadas uma após a outra, em série, e
apenas uma instrução é executada por vez.

Problema

Instruções
Fonte: https://www.itrelease.com/2017/11/difference-
serial-parallel-processing/

CPU

tN t3 t2 t1
Fonte: Autor
High-Performance Computing (HPC)
Motivadores da Computação paralela

• Busca por maior desempenho;

• Aplicações intrinsecamente paralelas.

• Alto custo dos supercomputadores tradicionais.

• Desenvolvimento de redes de computadores de alta velocidade;

• Desenvolvimento tecnológico na construção de microprocessadores;


High-Performance Computing (HPC)
Computação paralela

• A computação paralela é uma forma de computação que permite que muitas


instruções em um programa sejam executadas simultaneamente, em paralelo.
• Para conseguir isso, um programa deve ser dividido em partes independentes para
que cada processador possa executar sua parte do programa simultaneamente
com os outros processadores.
• A computação paralela pode ser obtida em um único computador com vários
processadores, vários computadores individuais conectados por uma rede ou uma
combinação dos dois.
Fonte: https://www.itrelease.com/2017/11/difference-
serial-parallel-processing/

Objetivo: Aumento de Desempenho


High-Performance Computing (HPC)
Forma de Paralelismo

Nível de Instrução Nível de Dados Nível de Tarefas

• Entre Threads
• Entre instruções HW • Conjunto de instruções
• Aquiteturas SMT
• Arquiteturas Pipeline • Executado sobre dados
(Simultaneous
• Superescalar diferentes
MultiThreading)
High-Performance Computing (HPC)
Um exemplo prático

for i in range(0, 5, 1): Onde T = Tempo


print(i + 5)

i=0 5
i=1 6
i=2 7
i=3 8
i=4 9
i=n n+5

Posso fazer algo para paralelizar?


High-Performance Computing (HPC)
Conceitos Básicos

Concorrência: quando dois ou mais processos começaram sua execução mas não terminaram.

Sistema Distribuído: Processos concorrentes executados em vários elementos de processamento.

Paralelismo: Sistema distribuído visando à solução de um único problema.


High-Performance Computing (HPC)
Arquiteturas

Classificação de Flynn é a mais utilizada embora não seja muito abrangente.

• SISD (Single Instruction Single Data): Arquitetura de von Neumann;

• SIMD (Single Instruction Multiple Data): Supercomputadores clássicos (Computadores


vetoriais);

• MISD (Multiple Instruction Single Data): O Mesmo fluxo de dados percorre um array
linear de processadores (pipeline);

• MIMD (Multiple Instruction Multiple Data): Arquiteturas formada por processadores


executam instruções independentemente.
High-Performance Computing (HPC)
SISD (Single Instruction Single Data)

Corresponde ao tradicional modelo Von Neumann. Um


processador executa sequencialmente um conjunto de
instruções sobre um conjunto de dados.

Exemplo: Computadores com um processador (PC’s e


Mainframes).
High-Performance Computing (HPC)
SIMD (Single Instruction Multiple Data)
Envolve múltiplos processadores (escravos) sob o controle de uma única unidade de controle (mestre)
executando simultaneamente a mesma instrução em diversos conjuntos de dados. Arquiteturas SIMD são
utilizadas para manipulação de matrizes e processamento de imagens.

Uma única unidade de controle busca a instrução que comanda várias unidades aritméticas que executam
em paralelo, cada uma delas com seus próprios dados;

Exemplo: Array de processadores (vetoriais e matriciais) e alguns supercomputadores;


High-Performance Computing (HPC)
MISD (Multiple Instruction Single Data)

Envolve múltiplos processadores executando diferentes


instruções em um único conjunto de dados. Geralmente,
nenhuma arquitetura é classificada como MISD, isto é,
não existem representantes desta categoria.

Alguns autores consideram arquiteturas pipeline como


exemplo deste tipo de organização.
High-Performance Computing (HPC)
MIMD (Multiple Instruction Multiple Data)

Envolve múltiplos processadores executando diferentes instruções em diferentes conjuntos de dados, de


maneira independente. Esta classe engloba a maioria dos computadores paralelos.

Os sistemas distribuídos estão nesta categoria, ou um conjunto de computadores independentes, cada um


com seu contador de programa, conjunto de instruções e dados.
High-Performance Computing (HPC)
Conjuntos de aplicações relacionados aos tipos de arquiteturas
Bibliografia

M. J. Quinn, Parallel Computing Theory and Practice, 2nd edition, McGraw-Hill, 1994

Andrew S. TANENBAUM, Maarten Van Steen - Distributed Systems: Principles and Paradigms, 2rd Edition, Pearson -
Prentice Hall, 2007

George COULOURIS, Jean DOLLIMORE, Tim KINDBERG, Gordon BLAIR - Distributed Systems: Concepts and Design, 5rd
Edition, Addison Wesley, 2012

Você também pode gostar