Parte da Tarefa. Parte da Tarefa. Parte da Tarefa SEND RECEIVE SEND RECEIVE
|
|
- Simone de Lacerda Carneiro
- 8 Há anos
- Visualizações:
Transcrição
1 Produto Escalar com MPI-2 (C++) Aula Sistemas Distribuídos Prof. Dr. Marcelo Facio Palin 1 1
2 O que é Paralelismo? Conceitos Paralelismo é uma técnica usada em tarefas grandes e complexas para obter resultados mais rápidos, dividindo-as em tarefas pequenas que serão distribuídas em vários processadores para serem executadas simultaneamente. Parte da Tarefa Parte da Tarefa P0 P1 SEND RECEIVE Problema GRANDE SEND RECEIVE Parte da Tarefa Pn 2 2
3 O que é Paralelismo? Conceitos Paralelismo é uma técnica usada em tarefas grandes e complexas para obter resultados mais rápidos, dividindo-as em tarefas pequenas que serão distribuídas em vários processadores para serem executadas simultaneamente. Parte da Tarefa Parte da Tarefa P0 P1 SEND RECEIVE Problema GRANDE SEND RECEIVE Parte da Tarefa Pn 3 3
4 Dados os VETORES: Vetores de mesma Dimensão (n) Produto Escalar Como é o cálculo Produto Escalar? v u R [ v1, v2, v3,, vn ] [ u u u u ],,,, n p n = i i= 1 SEQUENCIAL P v u i M Exemplo: v u [ 1.0, 2.0,3.0, 4.0] [ 4.0,3.0, 2.0,1.0] p = v1u 1 + v2u2 + v3u3 + v4u4 = = Matrizes Densas 4 4
5 Dados os VETORES: Vetores de mesma Dimensão (n) Exemplo: Produto Escalar Como é o cálculo Produto Escalar? v u v u [ 1.0, 2.0,3.0, 4.0] [ 4.0,3.0, 2.0,1.0] R [ v1, v2, v3,, vn ] [ u u u u ],,,, n p p = n = i i= 1 n = i i= 1 v u v u i i Matrizes Densas 5 5
6 Multicomputadores = Cluster P = PROCESSADOR Conceitos PC M = MEMÓRIA = REDE P M Memória Distribuída Única Interface com o Usuário Nó Mestre Cluster BEOWULF Dados (Possui disco local) S.O. Linux + MPI P M P M P M Fluxo de Dados (Troca de Mensagens) Switch Nós Escravos Diskless Sem Disco 6 6
7 Exemplo de Multicomputadores: Cluster Única Interface com o Usuário Nó Mestre Cluster BEOWULF Dados (Possui disco local) S.O. Linux + MPI Fluxo de Dados (Troca de Mensagens) Switch Nós Escravos Diskless Sem Disco 7 7
8 Comunicação Global de Envio MPI_BCast MPI-2 Função Global de Envio MPI_BCast Nó 1 MPI_BCast Nós Escravos Dados Enviados para Todos os Nós Escravos Nó N 8 8
9 Resumo Em resumo, multicomputadores são possíveis de se construir mas difíceis de programar, sendo os multiprocessadores o oposto, difíceis de construir mas simples de programar
10 Ou seja... MPI-2 Vamos aprender... COMPUTAÇÃO PARALELA Única Interface com o Usuário Nó Mestre Cluster BEOWULF EM Dados (Possui disco local) S.O. Linux + MPI Fluxo de Dados (Troca de Mensagens) Switch Nós Escravos AMBIENTE DISTRIBUÍDO Para isso precisamos de...? Diskless Sem Disco
11 Programando com MPI-2 Em MULTICOMPUTADORES MPI-2 MESSAGE PASSING INTERFACE + difíceis de programar ALGORITMOS PARALELOS MPI-2 PARALELISMO
12 MPI-2 Troca de Mensagens SEND RECEIVE MPI é um conjunto de rotinas padronizadas que permitem aos programas paralelos rodem em arquiteturas de memória distribuída
13 Razões para utilizar o MPI Troca de Mensagens SEND Portabilidade Funcionalidade Disponibilidade RECEIVE Utilizamos a implementação MPICH
14 O que é o MPICH2? Troca de Mensagens Implementação do MPI
15 Comunicação Ponto-a-Ponto MPI-2 P0 P1 buffer RECEIVE SEND buffer
16 Sintaxe dos Métodos Send() e Recv() MPI_Send(buf, count, datatype, dest, tag, comm) Função responsável pelo envio de mensagens. IN buf: endereço do buffer de envio IN count: número de elementos a enviar IN datatype: tipo dos elementos a serem enviados IN dest: identificador do processo destino IN tag: tag (marca) da mensagem IN comm: communicator (handle) Troca de Mensagens MPI_Recv(buf, conunt, datatype, source, tag, comm, status) Função responsável pelo recebimento de mensagens. OUT buf: endereço do buffer de recebimento IN count: número de elementos a serem recebidos IN datatype: tipo dos elementos a serem recebidos IN source: identificador do processo remetente IN tag: tag (marca) da mensagem IN comm: communicator (handle) OUY status: status de operação
17 Comunicação Coletiva (MPI_Bcast) Nó 0 MPI-2 Mestre Dados MPI_BCast Nó 1 Nó 2 Nó Nó N
18 6 Funções Básicas do MPI MPI-2 Funções MPI_INIT() MPI_COMM_SIZE() MPI_COMM_RANK() MPI_SEND() MPI_RECV() MPI_FINALIZE() Descrição Inicia a execução do MPI Número de Processadores ID (identidade) do Processador Envia Mensagens Recebe Mensagens Termina a execução do MPI buffer buffer
19 Sintaxe Básico do Programa MPI em C MPI-2 MPI_Init(&argc, &argv) Inicializa uma execução do MPI. Copia o código do programa em todos os processadores que participam do Cluster. Nenhuma outra função MPI pode aparecer antes de MPI_Init(), isso causaria ERROS de compilação. MPI_Finalize() Termina uma execução MPI. Nenhuma outra função MPI pode aparecer depois de MPI_Finalize. #include <stdio.h> #include "mpi.h" int main(int argc, char* argv) { MPI_Init(&argc, &argv); MPI_Finalize(); return 0; }
20 Sintaxe Básico do Programa MPI em C++ MPI::MPI_Init() MPI::MPI_Finalize() OBS: devemos linkar com a biblioteca cxx.lib e mpi.lib Devemos compilar o código em C++ #include <iostream> #include <mpi.h> using namespace std; int main(int argc, char *argv[]) { MPI::Init(); MPI::Finalize(); return 0; } MPI
21 Sintaxe C++ das outras funções em MPI-2 MPI::MPI_Init() MPI::MPI_Finalize() // Recebe o ID do Processador int myrank = MPI::COMM_WORLD.Get_rank(); // Recebe o Numero de Processadores do Cluster int numprocs = MPI::COMM_WORLD.Get_size(); MPI
22 Sintaxe em C++ do MPI MPI-2 No envio e recepção de mensagens é necessário especificar o tipo de dados da mensagem (MPI::INT, MPI::DOUBLE, etc) cada mensagem inclui uma etiqueta que permite distinguir as mensagens de uma mesma fonte Envio: MPI::comm.Send(buf, count, datatype, dest, tag) Retorna assim que a mensagem foi colocada no buffer do receptor Recepção: MPI::comm.Recv(buf, count, datatype, src, tag)
23 Exemplo de Código MPI-2 em C++ #include mpi.h #include <iostream> using namespace std; int main( int argc, char *argv[]) { int rank, buf; MPI::Init(argv, argc); rank = MPI::COMM_WORLD.Get_rank(); // Process 0 sends and Process 1 receives if (rank == 0) { buf = ; MPI::COMM_WORLD.Send( &buf, 1, MPI::INT, 1, 0 ); } else if (rank == 1) { MPI::COMM_WORLD.Recv( &buf, 1, MPI::INT, 0, 0 ); std::cout << Recebido << buf << endl; } MPI::Finalize(); return 0; }
24 Exemplo: Comunicação Ponto-a-Ponto Comunicação P1 P RECEIVE 1 SEND 5 UPDATE Partes IGUAIS
25 Comunicação Coletiva Scatter (Espalhar) MPI-2 Scatter - Espalhar Nó 1 Parte dos Dados MPI_Scatter() Parte dos Dados Parte dos Dados Dados quebrados em Blocos Nó N Nós Escravos Parte dos Dados
Arquitecturas Paralelas I Computação Paralela em Larga Escala. Passagem de Mensagens
Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI/LMCC - 4º/5º Ano Passagem de Mensagens João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Novembro 2004 Passagem
Leia maisProgramação Paralela com Troca de Mensagens. Profa Andréa Schwertner Charão DLSC/CT/UFSM
Programação Paralela com Troca de Mensagens Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Modelo de programa MPI Comunicação em MPI Comunicadores Mensagens Comunicação ponto-a-ponto Comunicação coletiva
Leia maisMessage Passing Interface - MPI. Jorge Barbosa
Message Passing Interface - MPI Jorge Barbosa Introdução ao MPI Até ao fim dos anos 80, os fabricantes de computadores desenvolviam a sua própria biblioteca de funções para desenvolver programas paralelos.
Leia maisSistemas Distribuídos Message-Passing
0010010101011101010111100010111100010101010100100111001010001001010100101010100010010100101010110101010101 01100000011111101010010100010101010010010101101001000100101010111010101111000101111 101010101001001110010100010010101001010101000100101001010101101010101010110000001111110101001010001010101001001010110100100010010
Leia maisComputação por Passagem de Mensagens
Computação por Passagem de Mensagens Programação por passagem de mensagens Programação de multiprocessadores conectados por rede pode ser realizada: criando-se uma linguagem de programação paralela especial
Leia maisInstruções para uso do MPI - Relatório Técnico -
Universidade de Passo Fundo Instituto de Ciências Exatas e Geociências Curso de Ciência da Computação Instruções para uso do MPI - Relatório Técnico - ComPaDi Grupo de Pesquisa em Computação Paralela e
Leia maisComputação por Passagem de Mensagens
Computação por Passagem de Mensagens Programação por passagem de mensagens Programação de multiprocessadores conectados por rede pode ser realizada: criando-se uma linguagem de programação paralela especial
Leia maisProgramação Paralela. Simone de Lima Martins Agosto/2002
Programação Paralela Simone de Lima Martins Agosto/2002 Computação por Passagem de Mensagens Arquitetura de computadores que utilizam passagem de mensagens Computadores conectados por uma rede estática
Leia maisIntrodução. Programação Paralela. Motivação. Conhecimento do Hardware. Análise de Desempenho. Modelagem do Problema
Introdução Programação Paralela Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes Programação paralela é a divisão de um problema em partes, de maneira que essas partes possam ser executadas paralelamente
Leia maisProgramação Paralela. Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes
Programação Paralela Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes Introdução Programação paralela é a divisão de um problema em partes, de maneira que essas partes possam ser executadas paralelamente
Leia maisMessage Passing Interface - MPI
Message Passing Interface - Pedro de Botelho Marcos Maio/2008 1 Sumário Introdução; Conceitos básicos; Comunicação; Principais rotinas; Compilando e executando códigos ; Exemplos; Referências; 2 Introdução
Leia maisProgramação de Computadores Primeiros Passos Práticos em C++
Programação de Computadores Primeiros Passos Práticos em C++ Alan de Freitas! Marco Antonio Carvalho Compilação de Programas O compilador é o responsável por transformar nosso código em um programa propriamente
Leia maisIntrodução a Computação Paralela: Rotinas MPI em Clusters Beowulf
Introdução a Computação Paralela: Rotinas MPI em Clusters Beowulf Miguel Dias Costa João Viana Lopes Centro de Física do Porto Estrutura do Curso Motivação Estrutura do Curso Motivação Conceitos de Computação
Leia maisMPI (Message Passing Interface)
MPI (Message Passing Interface) Standard desenvolvido por académicos e indústria. Define rotinas, não a implementação. Não define como se criam os processos (depende da implementação) Existem várias implementações
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 1 Linguagens de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto
Leia maisJorge Barbosa, FEUP-DEI 2008
Técnicas para paralelização de aplicações Jorge Barbosa, FEUP-DEI 2008 Índice Introdução Técnicas de paralelização de aplicações Nível 1: Usando código sequencial Nível 2: Alteração mínima de código sequencial
Leia maisUm Visualizador de Carga de Rede para um Cluster que utiliza a biblioteca MPI
Universidade Federal do Espírito Santo Centro Tecnológico Curso de Ciência da Computação Projeto de Graduação Um Visualizador de Carga de Rede para um Cluster que utiliza a biblioteca MPI Ricardo de Magalhães
Leia maisMPI Linux. Alternativas Práticas
MPI Linux Alternativas Práticas Downloads Portable Ubuntu http://sourceforge.net/projects/portableubuntu/ files/portableubuntu/uno/portable_ubuntu.ex e/download Wubi http://www.ubuntu.com/getubuntu/download
Leia maisAlgoritmos e Técnicas de
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisAula 5 Computação Distribuída de Alto Desempenho
CBPF Centro Brasileiro de Pesquisas Físicas Aula 5 Computação Distribuída de Alto Desempenho Marcelo Portes de Albuquerque Nilton Alves Marcelo Giovanni Rio de Janeiro 17 a 28 de julho de 2006 Sumário
Leia mais2 Arquitetura Paralela
1 Resumo Esta monografia tem como objetivo o desenvolvimento de uma ferramenta para auxiliar no desenvolvimento de programa que utilizam a biblioteca MPI Esta ferramenta mostra ao usuário qual a carga
Leia maisEXERCÍCIO 1 MUDANDO AS CORES
EXERCÍCIO 1 MUDANDO AS CORES O código abaixo ilustra o uso da comunicação ponto-a-ponto e a comunicação coletiva. Nesse código, uma matriz de três cores (verde, branco, vermelho e) é distribuída para todos
Leia maisAlgoritmos Paralelos usando CGM/MPI. Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP Aula 05
Algoritmos Paralelos usando CGM/MPI Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP Aula 05 Algoritmos Paralelos BSP/CGM Objetivos Descrever algumas das principais técnicas para o desenvolvimento
Leia maisProf. Jhonatan Fernando
Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisCarla Osthoff LNCC/MCTI Exemplos: https://goo.gl/amxo7e
Carla Osthoff LNCC/MCTI osthoff@lncc.br Exemplos: https://goo.gl/amxo7e Message Passing Interface www.mpi-forum.org http://mpi-forum.org/docs/ http://mpi-forum.org/mpi-40/ Manual online: http://www.mpich.org/static/docs/latest/
Leia maisQUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TÉCNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI Cicero Augusto de Lara Pahins, Cristiano Reis dos Santos. Professora:
Leia maisNa disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.
Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como
Leia maisFundamentos de Programação Linguagem C++ Entrada e saída com arquivos
Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos Prof.: Bruno E. G. Gomes IFRN 1 Introdução Entrada e saída de dados pode ser feita: Para dispositivo de entrada/saída (monitor, impressora,
Leia maisCurso de Informática DCC-IM / UFRJ. Gabriel P. Silva MPI
Curso de Informática DCC-IM / UFRJ MPI Um curso prático Gabriel P. Silva MPI É um padrão de troca de mensagens portátil que facilita o desenvolvimento de aplicações paralelas. Usa o paradigma de programação
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisO que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados O que é um algoritmo? Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 O que é um programa? 2009-1 Algoritmos Sequência de ações executáveis para
Leia maisapt-get install openssh-client (Debian) yum install openssh-clents (Fedora) slapt-get install openssh (Slackware)
Capítulo 1 O CLUSTER Acessando o Cluster O cluster pode ser acessado através de SSH. A partir do *UNIX A maioria dps sistemas unix já oferece um cliente ssh (openssh) na instalação padrão. Caso use uma
Leia maisCOMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0
COMPUTAÇÃO PARALELA uma visão geral Guilherme Galante v.2.0 Guilherme Galante Bacharel em Informática Unioeste (2003) Mestre em Ciência da Computação UFRGS (2006) Professor Assistente do curso de Informática/Ciência
Leia maisTabela ASCII de caracteres de controle
Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia maisInfra-Estrutura de Software. Introdução. (cont.)
Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como
Leia maisTécnicas de Programação I
Técnicas de Programação I Conceitos básicos C/C++ Material baseado nas aulas da Profa. Isabel Harb Manssour http://www.inf.pucrs.br/~manssour/laproi, entre outros materias Estrutura de Seleção: Comando
Leia maisPor que dez milhões de cores?
O primeiro passo para programar dez milhões de cores Álvaro Fazenda Denise Stringhini ICT-UNIFESP São José dos Campos ERAD-SP 2016 Por que dez milhões de cores? 192 top500.org (junho/2016) E o Brasil no
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisListas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
Leia maisRelatório do Trabalho de Conclusão de Curso Curso de Ciência da Computação
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Relatório do Trabalho de Conclusão de Curso Curso de Ciência da Computação Compilação de código C/MPI para C/Pthreads Diego Francisco
Leia maisTÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI
Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI CATEGORIA: CONCLUÍDO ÁREA:
Leia maisCAP-387(2016) Tópicos Especiais em
CAP-387(2016) Tópicos Especiais em Computação Aplicada: Construção de Aplicações Massivamente Paralelas Aula 44: MPI IO Celso L. Mendes, Stephan Stephany LAC / INPE Emails: celso.mendes@inpe.br, stephan.stephany@inpe.br
Leia maisAula 3 Computação Distribuída de Alto Desempenho
CBPF Centro Brasileiro de Pesquisas Físicas Aula 3 Computação Distribuída de Alto Desempenho Marcelo Portes de Albuquerque Nilton Alves Marcelo Giovanni Rio de Janeiro 17 a 28 de julho de 2006 Sumário
Leia maisLÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2012-1
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2012-1 Objetivos Entender o mecanismo de um programa em C/C++ Apresentar e estrutura da Linguagem C/C++
Leia maisAula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>
Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras
Leia maisAlgoritmo Iterativo. Dilema do Martelo x Edifício. O Martelo. O Edifício 01/06/2014. Dilema das ações x declarações
Algoritmo Iterativo Fernando Cardeal Parece com o processo de seguir uma estrada: Como chegar à estrada? Como se manter na estrada? Como saber que chegou ao destino para sair da estrada? Como fazer tudo
Leia maisString em C++ Verificando o tamanho da string
String em C++ Uma das formas de se manipular cadeias de caracteres, também chamadas de strings em C+ + é armazená-las como vetores de char. Esta é a forma tradicional utilizada pela linguagem C. Então,
Leia maisIntrodução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955
O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma
Leia maisLinguagem de Programação
Linguagem de Programação Introdução a Linguagem C Princípios de Programação em C Gil Eduardo de Andrade Conceitos Iniciais: Linguagem C Introdução É uma linguagem estruturada; Foi desenvolvida na década
Leia maisProgramação Paralela em Memória Compartilhada e Distribuída
Programação Paralela em Memória Compartilhada e Distribuída Prof. Claudio Schepke claudioschepke@unipampa.edu.br Prof. João V. F. Lima jvlima@inf.ufsm.br (baseado em material elaborado por professores
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Cadeias de caracteres (strings) Caracteres Definição e manipulação de strings Vetor de strings Parâmetros
Leia maisTécnicas de Programação I
Técnicas de Programação I Conceitos básicos C/C++ Material baseado nas aulas da Profa. Isabel Harb Manssour http://www.inf.pucrs.br/~manssour/laproi, entre outros materias Operadores Aritméticos C++: Outros
Leia maisConvertendo Algoritmos para a Linguagem C
onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento
Leia maisTipos de Dados Avançados Vetores e Matrizes
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Tipos de Dados Avançados Vetores e Matrizes Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br
Leia maisOlimpíadas de Informática
Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C++. Prof. Gemilson George gemilson_geo gemilson@colegiogeo.com.br (83)8792-7419 informaticageo.wordpress.com (Grupo): GEO.OBI
Leia maisUniversidade de Coimbra - Faculdade de Ciências e Tecnologia Departamento de Matemática
Universidade de Coimbra - Faculdade de Ciências e Tecnologia Departamento de Matemática COMPUTAÇÃO PARALELA - 2005/2006 4ºANO PROBLEMA 1 DETERMINAÇÃO DOS NÚMEROS PRIMOS *** RELATÓRIO *** Sara Catarina
Leia mais3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação
Lógica de Programação 3. INTRODUÇÃO À LINGUAGEM C Caro Aluno Vamos iniciar o terceiro capítulo da nossa disciplina. Agora vamos começar a aplicar os conceitos vistos nos capítulos anteriores em uma linguagem
Leia maisCAP-387(2016) Tópicos Especiais em
CAP-387(2016) Tópicos Especiais em Computação Aplicada: Construção de Aplicações Massivamente Paralelas Aula 33: Programação Híbrida com MPI Celso L. Mendes, Stephan Stephany LAC / INPE Emails: celso.mendes@inpe.br,
Leia maisPrograma ConsoleRPN. PUC-Rio CIV 2802 - Sistemas Gráficos para Engenharia Luiz Fernando Martha & André Maués Brabo Pereira
Programa ConsoleRPN Programa criado com o Visual Studio Community 2013 para efetuar operações algébricas entre números, uma calculadora funcionando com console usando RPN PUC-Rio CIV 2802 - Sistemas Gráficos
Leia maisAula 28: Arquivos de texto
Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização
Leia maisParalela e Distribuída. Memória Distribuída com o MPI
Programação Paralela e Distribuída Programação em Memória Distribuída com o MPI Programação em Memória Distribuída As aplicações são vistas como um conjunto de programas que são executados de forma independente
Leia maisCAP-387(2016) Tópicos Especiais em
CAP-387(2016) Tópicos Especiais em Computação Aplicada: Construção de Aplicações Massivamente Paralelas Aula 34: Programação MPI+OpenMP Celso L. Mendes, Stephan Stephany LAC / INPE Emails: celso.mendes@inpe.br,
Leia maisINFORMÁTICA E COMPUTAÇÃO CMP 1060 CONTROLE DE FLUXO ESTRUTURA CONDICIONAL 1
INFORMÁTICA E COMPUTAÇÃO CMP 1060 CONTROLE DE FLUXO ESTRUTURA CONDICIONAL 1 Os programas que vimos até agora têm a seguinte estrutura: main( ) declarações instrução 1 instrução 2 instrução 3... instrução
Leia maisComunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa
Comunicação entre Processos por Troca de Mensagens Prof. Celso maciel da Costa Troca de Mensagens Com memória compartilhada: os processo compartilham variáveis e trocam informações através do uso de variáveis
Leia maisESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2005/2006 TRABALHO PRÁTICO Nº
Leia maisIntrodução a Programação. Ponteiros e Strings, Alocação Dinâmica
Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros
Leia maisProf. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013
MC714 Sistemas Distribuídos 2 semestre, 2013 Tipos de comunicação Middleware: serviço intermediário na comunicação de nível de aplicação. Fig. 67 Ex.: correio eletrônico Comunicação é persistente. Middleware
Leia maisIntrodução a Computação
Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para
Leia maisAlgoritmo e Técnica de Programação - Linguagem C
Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema
Leia maisAula 10 Comandos de Repetição
Aula 10 Comandos de Repetição Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br 1 Introdução Em certas situações é necessária
Leia maisAula 05: Condicionais (Parte 2)
Aula 05: Condicionais (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Leia maisCurso de Linguagem C
Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...
Leia maisSistemas de Operação II. Ricardo Rocha
Programação em Memória Distribuída Ricardo Rocha ricroc@dcc.fc.up.pt Programação em Memória Distribuída As aplicações são vistas como um conjunto de programas que são executados de forma independente em
Leia maisCapítulo 8 Arquitetura de Computadores Paralelos
Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da
Leia maisAmbientes de troca de mensagens - MPI. Aleardo Manacero Jr.
Ambientes de troca de mensagens - MPI Aleardo Manacero Jr. Ambientes de troca de mensagens Como já mencionado, os chamados ambientes de troca de mensagens aparecem para facilitar a programação paralela
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre
Leia maisParalela e Distribuída. com o MPI e o OpenMP
Programação Paralela e Distribuída Programação Híbrida com o e o OpenMP e OpenMP Uma forma de executar um programa em paralelo num cluster multiprocessor é criar um processo por cada processador. Nesse
Leia maisUma Visão Geral dos Sistemas distribuídos de Cluster e Grid e suas Ferramentas para o processamento paralelo de dados
Uma Visão Geral dos Sistemas distribuídos de Cluster e Grid e suas Ferramentas para o processamento paralelo de dados Luiz Antônio Vivacqua Corrêa Meyer Resumo Aplicações convencionais e não convencionais
Leia maisINTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita
Leia maishvbacellar@gmail.com Palavras-chave Cluster; Beowulf; OpenMosix; MPI; PVM.
Cluster: Computação de Alto Desempenho Hilário Viana Bacellar Instituto de Computação, Universidade Estadual de Campinas Av. Albert Einstein 1251, Cidade Universitária, CEP 13083-970 Campinas, SP, Brasil
Leia maisMDX-cc: Ambiente de Programação Paralela Aplicado a Cluster de Clusters
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação MDX-cc: Ambiente de Programação Paralela Aplicado a Cluster de Clusters Cassiano Ricardo
Leia maisBACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
Leia maisIntrodução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
Leia maisLinguagem de Programação C
ICMC USP Linguagem de Programação C Aula: Funções em C Prof Alneu de Andrade Lopes MODULARIZAÇÃO Um problema complexo é melhor abordado se for dividido primeiramente em vários subproblemas MODULARIZAÇÃO
Leia maisModelo - Hardware. Página - 1/18. PUC-Rio 2011.2. 02 Características da Distribuição. Sérgio Côrtes scortes@inf.puc-rio.br
Programação Distribuída Concorrente (INF1406) 02 Características da Distribuição Sérgio Côrtes scortes@inf.puc-rio.br Modelo - Hardware Conjunto de máquinas autônomas, heterogêneas, com características
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,
Leia maisProgramando em C++ Histórico da Linguagem C
Programando em C++ Joaquim Quinteiro Uchôa joukim@comp.ufla.br DCC-UFLA, 2002 Programando em C++ p.1/38 Histórico da Linguagem C Linguagem C: 1972 - Laboratório Bells, por Dennis Ritchie, a partir da linguagem
Leia maisLinguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador
Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor
Leia maisLinguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
Leia maisITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes
ITENS FUNDAMENTAIS Profª Angélica da Silva Nunes CONCEITOS BÁSICOS Hardware - é a parte física do computador, tais como: teclado, monitor de vídeo, etc. Software - são os programas e aplicativos que permitem
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisCapítulo 2. Charm++ 16
2 Charm++ O Charm++ é uma linguagem orientada a objetos para programação paralela baseada em C++ (34). Ela possui uma biblioteca de execução para suporte a computação paralela que se chama Kernel do Charm
Leia maisResumo da última aula. Compiladores. Tipos. Regras semânticas. Expressões de tipos. Análise Semântica e checagem de tipos.
Resumo da última aula Compiladores Análise semântica Verificação de tipos 1 Implementação: Esquemas S-atribuídos: Mecanismo bottom-up direto Esquemas L-atribuídos: Mecanismo top-down: Necessita gramática
Leia maisProgramação de Sistemas
Programação de Sistemas Multi-núcleos Programação de Sistemas Core : 1/19 Introdução (1) [Def] núcleo ( core ) é uma unidade de processamento. O multicore (Dual, Quad,...) possui 2 ou mais núcleos que
Leia maisProgramação de Sistemas
Programação de Sistemas Multi-núcleos Programação de Sistemas Core : 1/19 Introdução (1) [Def] núcleo ( core ) é uma unidade de processamento. O multicore (Dual, Quad,...) possui 2 ou mais núcleos que
Leia maisProgramação Estruturada I
Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:
Leia maisAula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para
Leia mais