Programação em Memória Compartilhada com OpenMP
|
|
- João Vítor João Pedro Garrido Castro
- 8 Há anos
- Visualizações:
Transcrição
1 Programação em Memória Compartilhada com OpenMP Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br 25 de Maio de 2010 Introdução ao OpenMP 1 / 29
2 Conteúdo Introdução 1 Introdução 2 3 Introdução ao OpenMP 2 / 29
3 Conteúdo Introdução 1 Introdução 2 3 Introdução ao OpenMP 3 / 29
4 Técnicas de programação em MC Programas construídos para um modelo de programação de memória compartilhada precisam de ferramentas que englobem: técnicas para criação e manipulação de threads, mecanismos de sincronização entre as threads, recursos para manipulação de memória compartilhada. Processos vs Threads? Introdução ao OpenMP 4 / 29
5 Técnicas de programação em MC As ferramentas mais comuns para ambientes de memória compartilhada são baseadas em: Threading explícito Diretivas de Compilação (threading implícito) Troca de mensagens Linguagens paralelas Threading explícito: O programador cria explicitamente múltiplas threads dentro de um mesmo processo e divide também explicitamente o trabalho a ser realizado. Posix Threads Win32 Threads Algumas linguagens de alto nível Introdução ao OpenMP 5 / 29
6 Técnicas de programação em MC Diretivas de compilação: O programador utiliza diretivas de compilação, que são inseridas no código seqüencial, para informar ao compilador as regiões que devem ser paralelizadas. OpenMP Troca de mensagens: A comunicação via troca de mensagem também é utilizada como técnica para programação em ambientes de memória compartilhada. MPI Linguagens paralelas: Linguagens de alto nível criadas ou estendidas para trabalhar com esse modelo de programação. HPF - High Performance Fortran Introdução ao OpenMP 6 / 29
7 OpenMP Introdução O que significa OpenMP: Open specifications for Multi Processing via collaborative work between interested parties from the hardware and software industry, goverment and academia. Open + MP = Padrão aberto + Maquinas multiprocessadas O que é o OpenMP: Um modelo de programação em memória compartilhada que nasceu da cooperação de grandes fabricantes de hardware e software (Sun, Intel, Fujitsu, SGI, AMD, HP, IBM, PGI, KAI,...) Definida para ser utilizada em programas C\C++ e Fortran, Introdução ao OpenMP 7 / 29
8 OpenMP Introdução O que é o OpenMP... Desenvolvido e mantido pelo grupo OpenMP ARB (Architecture Review Board), É uma API para programação paralela em arquiteturas multiprocessadas, Permite a criação de programas paralelos com compartilhamento de memória, através da criação automática e otimizada de um conjunto de threads, Introdução ao OpenMP 8 / 29
9 OpenMP Introdução O que é o OpenMP... OpenMP não é uma linguagem de programação, É um padrão que define como os compiladores devem gerar códigos paralelos através de diretivas e funções, Implementação Especificação, O resultado depende do compilador utilizado, Introdução ao OpenMP 9 / 29
10 Cronologia Introdução Fortran versão 1.0, Outubro de 1997 C\C++ versão 1.0, Outubro de 1998 Fortran versão 1.1, Novembro de 1999 Fortran versão 2.0, Novembro de 2000 C\C++ versão 2.0, Março de 2002 C\C++ e Fortran versão 2.5, Maio de 2005 (unificado) C\C++ e Fortran versão 3.0, Maio de 2008 Introdução ao OpenMP 10 / 29
11 Objetivos do OpenMP Ser o standard de programação para arquiteturas de memória compartilhada, Estabelecer um conjunto muito simples e limitado de diretivas de programação, Permitir a paralelização incremental de programas seqüenciais, Conseguir implementações eficientes em problemas de granularidade fina, média e grossa. Introdução ao OpenMP 11 / 29
12 Componentes do OpenMP Introdução ao OpenMP 12 / 29
13 Modelo de programação do OpenMP Paralelismo explícito Multi-thread implícito Introdução ao OpenMP 13 / 29
14 Modelo de programação do OpenMP Paralelismo explícito Multi-thread implícito Paralelismo explícito Cabe ao programador identificar as tarefas para execução em paralelo e definir os pontos de sincronização, Essas operações são feitas utilizando diretivas de compilação embebidas no código do programa. Introdução ao OpenMP 13 / 29
15 Modelo de programação do OpenMP Multi-thread implícito: Um processo é visto como um conjunto de threads que se comunicam entre através da utilização de variáveis compartilhadas, A criação, iniciação e finalização das threads é feita pelo ambiente de execução de ocultando os detalhes do programador, O espaço de endereçamento global é compartilhado por todos os threads, As variáveis podem ser compartilhadas ou privadas (duplicadas) para cada thread, O controle, manuseio e sincronização das variáveis envolvidas nas tarefas paralelas é transparente ao programador. Introdução ao OpenMP 14 / 29
16 Modelo de execução do OpenMP Modelo de execução Fork-Join Todos os programas iniciam sua execução com um processo, o master thread, O master thread executa seqüencialmente até encontrar um construtor paralelo, momento em que cria um grupo de threads, O código delimitado pelo construtor paralelo é executado em paralelo pelo master thread e pelo grupo de threads, Ao completarem a execução paralela o grupo de threads sincroniza uma barreira implícita com o master thread, O grupo de threads termina a sua execução e o master thread continua a executar seqüencialmente até encontrar um novo construtor paralelo. Introdução ao OpenMP 15 / 29
17 Modelo de execução do OpenMP Modelo de execução Fork-Join Introdução ao OpenMP 16 / 29
18 Estrutura de um programa OpenMP Introdução ao OpenMP 17 / 29
19 Compiladores com suporte a OpenMP Compilador Distribuidor Informações XL IBM Proprietário, SO: Windows e Linux SC Sun Microsystems Proprietário, Sun studio compiladores e ferramentas, download gratuito para Linux e Solaris ICC Intel Propietário, SO: Windows, Linux e MacOS gcc (4.3.2) GNU Livre de código aberto, SO: Linux, Windows, Solaris, MacOS Introdução ao OpenMP 18 / 29
20 Vantagens do OpenMP Facilidade de conversão de programas seqüenciais em paralelos, Maneira simples de explorar o paralelismo, Fácil compreensão e uso das diretivas, Minimiza a interferência na estrutura do algoritmo, Compila e executa em ambientes paralelo e seqüencial. Introdução ao OpenMP 19 / 29
21 OpenMP e arquiteturas multicore Arquiteturas multicore, Fraco desempenho das aplicações atuais em arquiteturas multicore, Incremento do número de núcleos, Aplicações eficientes em processadores multicore devem utilizar intensivamente o conceito de threads. Introdução ao OpenMP 20 / 29
22 Conteúdo Introdução 1 Introdução 2 3 Introdução ao OpenMP 21 / 29
23 Diretivas de compilação em OpenMP Diretivas são linhas de código com significado especial para o compilador; #pragma omp, indica ao compilador a presença de uma diretiva de compilação, sinalizando que deverá dar criar código paralelo otimizado para o ambiente OpenMP; diretive, deverá ser uma diretiva válida de OpenMP; clause, representa um conjunto de parâmetros e informações a serem aplicados a essa diretiva, (opcional). Introdução ao OpenMP 22 / 29
24 Diretivas de compilação em OpenMP As diretivas se aplicam a blocos sintáticos, Bloco sintático composto Bloco sintático simples Introdução ao OpenMP 23 / 29
25 Diretivas de compilação em OpenMP Diretivas Clausulas: Definem o comportamento das regiões paralelas e das variáveis aos quais estão associadas. Introdução ao OpenMP 24 / 29
26 Compilação condicional Quando um código que contém diretivas do OpenMP é compilado por um compilador que não suporta o OpenMP este simplesmente ignora as diretivas e compila o programa de forma seqüencial, Entretanto, se o código conter chamadas a funções do Open- MP teremos erros de compilação, Para escrever código que funcione com e sem OpenMP devemos utilizar a compilação condicional. Introdução ao OpenMP 25 / 29
27 Compilação condicional Para termos compilação um código robusto devemos proteger as chamadas a funções do OpenMP com a diretiva #ifdef _OpenMP, A macro _OpenMP esta definida se a biblioteca do OpenMP estiver disponível, Exemplo Introdução ao OpenMP 26 / 29
28 Conteúdo Introdução 1 Introdução 2 3 Introdução ao OpenMP 27 / 29
29 Hello word!!! Introdução Introdução ao OpenMP 28 / 29
30 Atividades Introdução 1 Compile e execute o programa anterior, comente sobre a saída. 2 Modifique a diretiva #pragma omp paralell para #pragma omp paralell num_threads(4), compile e execute novamente, comente o resultado. 3 Visite a página Introdução ao OpenMP 29 / 29
OpenMP: Variáveis de Ambiente
Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de
Leia mais8 Threads. 8.1 Introdução
1 8 Threads 8.1 Introdução Uma thread, também chamada de tarefa, pode ser definida como uma parte ou rotina de um processo em execução que compartilha o mesmo espaço de endereçamento, mas tem seu próprio
Leia maisComputação Heterogênea Programação paralela, clusters e GPUs
Computação Heterogênea Programação paralela, clusters e GPUs Profa. Dra. Denise Stringhini (ICT- Unifesp) Primeiro Encontro do Khronos Chapters Brasil Belo Horizonte, 20/09/2013 Conteúdo Computação heterogênea:
Leia maisCaracterização de desempenho em programas paralelos
Caracterização de desempenho em programas paralelos Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br
Leia maisLCAD. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES.
ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004 LCAD Laboratório de Computação de Alto Desempenho DI/UFES Tópico 20 janeiro 27 janeiro 3 fev 10 fev 17 fev 24 fev 3 março Paradigma de Paralelismo
Leia maisSobre a apresentação (About(
Capítulo 4: Threads Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,
Leia maisSistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com
Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32
Leia maisOpenMP. Slides baseados em tutorial de Tim Mattson da Intel
OpenMP Slides baseados em tutorial de Tim Mattson da Intel O que é OpenMP? Uma especificação para um conjunto de diretivas de compilação, rotinas de biblioteca e variáveis de sistema que podem ser utilizadas
Leia maisSistemas Distribuídos e Paralelos
Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha
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 maisAté o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;
CAPÍTULO VI THREADS 6.1 INTRODUÇÃO Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; O sistema operacional Toth, em 1979, foi o primeiro a implementar
Leia maisControle de granularidade de tarefas em OpenMP
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO MÁRCIO DE OLIVEIRA DA SILVA Controle de granularidade de tarefas em OpenMP Trabalho de Conclusão
Leia maisEstudo Qualitativo e Quantitativo de Linguagens Paralelas para Arquiteturas Multicore
Estudo Qualitativo e Quantitativo de Linguagens Paralelas para Arquiteturas Multicore Título do capítulo Mst. Raffael B. Schemmer André L. Tibola Junior F. Barros Prof. Mst. Julio C. S. Anjos Prof. Dr.
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 maisÉ a associação de mais de um fluxo de execução em um único processo.
Profa. Rita Rodorigo Threads Um processo é uma abstração que reúne uma série de atributos como espaço de endereçamento descritores de arquivos abertos, quotas, etc. Um processo possui ainda uma área de
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 maisProgramação em Paralelo OpenMP
Programação em Paralelo OpenMP N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 1 / 15 Introdução Potencial do GPU vs CPU Cálculo: 367
Leia maisProcessamento Paralelo
Processamento Paralelo Hardware Paralelo Universidade Estadual de Santa Cruz Bacharelado em Ciência da Computação Prof. Esbel Tomás Valero Orellana Portabilidade O principal problema das primeiras maquinas
Leia maisIntrodução à Linguagem Java
Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar
Leia maisIntrodução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia maisComputador Digital Circuitos de um computador (Hardware)
Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Processos e Threads Andreza Leite andreza.leite@univasf.edu.br Plano de Aula 2 Gerenciamento de Processos Threads Aplicações com múltiplas Threads Concorrência e Compartilhamento
Leia maisIntrodução à Arquitetura de Computadores IFES Campus Serra
Os computadores atuais possuem seis ou mais níveis de máquinas conforme podemos observar no quadro abaixo Nível de linguagem orientada para problemas Nível de linguagem de montagem Nível de sistema operacional
Leia maisDesenvolvimento Web TCC-00.226 Turma A-1
Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226
Leia maisDesenvolvimento de Sistemas Tolerantes a Falhas
Confiança de software Desenvolvimento de Sistemas Tolerantes a Falhas Em geral, os usuários de um sistema de software esperam ele seja confiável Para aplicações não-críticas, podem estar dispostos a aceitar
Leia maisFIND ME APLICAÇÃO ANDROID
FIND ME APLICAÇÃO ANDROID Relatório Sistemas Distribuídos - EIC0036-2S 3º Ano do Mestrado Integrado em Engenharia Informática e Computação Elementos do Grupo: Carlos Gouveia 080509148 ei08148@fe.up.pt
Leia maisIntrodução à Sistemas Operacionais. Glauber Magalhães Pires
Introdução à Sistemas Operacionais Glauber Magalhães Pires Agenda O que são sistemas operacionais? Histórico Primeira geração (1945-1955) Segunda geração (1955-1965) Terceira geração (1965-1980) Quarta
Leia maisSymmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados
Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto SMP,
Leia maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisProgramação Concorrente Processos e Threads
Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por
Leia maisSistemas Distribuídos Processos I. Prof. MSc. Hugo Souza
Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,
Leia maisParalelização de Simuladores de Hardware Descritos em SystemC
Paralelização de Simuladores de Hardware Descritos em SystemC 18 de maio de 2011 Roteiro Motivação Introdução à SLDL SystemC O Escalonador SystemC Simulação Paralela baseada em Eventos Discretos Suporte
Leia maisProgramação Concorrente
+ XV Jornada de Cursos CITi Programação Concorrente Aula 1 Benito Fernandes Fernando Castor João Paulo Oliveira Weslley Torres + Suposições básicas Conhecimento básico sobre Programação Orientada a Objetos
Leia maisANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1
ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1 Francisco Berti Da Cruz 2, Cleber Cristiano Sartorio 3, Edson Luiz Padoin 4, Emilio Hoffmann 5. 1 Trabalho
Leia maisIntrodução a Computação
O que é um SO? Introdução a Computação Sistemas Operacionais PII Consiste em: Hardware Programas de Sistema Programas de Aplicativos 1 2 O que é um SO? Hardware não proporciona controle de alto nível disponível
Leia maisSO: Gerenciamento de Processos
SO: Gerenciamento de Processos Adriano J. Holanda http://holanda.xyz 10/8/2015 O que é um processo Um processo é um programa (código objeto armazenado em alguma mídia) em. O que é um processo Um processo
Leia maisSistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza
Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução Prof. MSc. Hugo Souza Começando nossa disciplina sobre os sistemas operacionais modernos iremos abordar inicialmente
Leia mais- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções
1 - Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções Um programa pode possuir determinados processos realizados repetidas vezes ao longo da execução do programa. Estes processos podem se agrupar
Leia maisComputador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.
Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos
Leia maisAdessowiki. Visão Geral do Sistema. Roberto A. Lotufo e Rubens C. Machado. Abril de 2009 UNICAMP / CTI
Adessowiki Visão Geral do Sistema Roberto A. Lotufo e Rubens C. Machado UNICAMP / CTI Abril de 2009 1 Adessowiki Características Literate Programming (Knuth) > Em um ambiente colaborativo É uma wiki que
Leia maisSoftware Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza
Software Básico Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo
Leia maisConstrutores de Sicronização em OpenMP
Construtores de Sicronização em OpenMP Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br
Leia maisArquitetura de Computadores. Introdução aos Sistemas Operacionais
Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4
Leia maisProgramação de Computadores II TCC-00.309 Turma A-1
Material elaborado pelo prof. Leandro A. F. Fernandes com contribuições dos profs. Anselmo A. Montenegro e Marcos Lage Programação de Computadores II TCC-00.309 Turma A-1 Conteúdo Introdução ao Ambiente
Leia maisMarcos Vinicios Marques Professor Cidão. Professor Marcelo Neves
Virtualização Marcos Vinicios Marques Professor Cidão Professor Marcelo Neves Virtualizar??? Executar várias instâncias de um sistema operacional, ou vários sistemas operacionais em instâncias distintas,
Leia maisArquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas
Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas
Leia maisGerenciamento de memória
Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.
Leia maisProgramação de Computadores. Turma CI-180-B. Josiney de Souza. josineys@inf.ufpr.br
Programação de Computadores Turma CI-180-B Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (06/03/15) Como está organizado um computador Computadores antigos Modelo von-neumann Quais suas partes
Leia maisThreads. 8 de janeiro de 2015
1 / 24 Erick Nilsen Pereira de Souza T002 - Sistemas Operacionais e Org. Computadores Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 8 de janeiro de 2015 2 / 24 Agenda Tópicos
Leia maisProgramação de Alto Desempenho - 2. Prof: Carla Osthoff
Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: osthoff@lncc.br 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda
Leia maisImagem retirada de documentações de treinamentos oficiais INTEL
O que é Hyper-Threading (HT)? Hyper-Threading (HT) é uma tecnologia existe nos processadores que visa explorar com mais eficiência o uso da CPU, o grande foco desta tecnologia é evitar ociosidade de processamento
Leia maisOpenMP. Mestrado em Ciência da Computação Introdução ao Processamento Paralelo e Distribuído Prof. Dr. Adenauer Corrêa Yamin Mestranda: Nelsi Warken
OpenMP Mestrado em Ciência da Computação Introdução ao Processamento Paralelo e Distribuído Prof. Dr. Adenauer Corrêa Yamin Mestranda: Nelsi Warken Sumário 1. Introdução 2. História 3. Motivação 4. Objetivos
Leia mais(Aula 15) Threads e Threads em Java
(Aula 15) Threads e Threads em Java Um fluxo computacional. A programa maioria de execução, dos seqüencial programas o qual simples consiste realiza tem uma de essa um certa único tarefa Grande característica:
Leia maisBibliografia. OpenMP. Disponibilidade de OpenMP. Abordagem SPMD. Nicolas Maillard
Bibliografia Nicolas Maillard nicolas@inf.ufrgs.br Instituto de Informática Universidade Federal do Rio Grande do Sul home-page: http://www.openmp.org/presentations Parallel Programming in. R. Chandra
Leia maisMétodos de Sincronização do Kernel
Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupção.
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 01 - Introdução Edirlei Soares de Lima O que é um sistema operacional? Um computador moderno consiste em: Um ou mais processadores; Memória principal;
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos
UFRJ IM - DCC Sistemas Operacionais I Unidade I Introdução 11/02/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Introdução Conceituação de SO Funções Básicas Breve Histórico Tipos de SO Fundamentos
Leia maisProgramação Paralela e Distribuída (DCC/UFRJ)
Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória
Leia maisArquitetura de Computadores II
Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação - DCC/IM Arquitetura de Computadores II Multithreading Prof. Gabriel P. Silva Introdução Muitos dos sistemas operacionais modernos
Leia maisIntrodução aos computadores, à Internet e à World Wide Web. 2005 by Pearson Education do Brasil
1 Introdução aos computadores, à Internet e à World Wide Web OBJETIVOS Neste capítulo, você aprenderá: Conceitos básicos de hardware e software. Conceitos básicos de tecnologia de objeto, como classes,
Leia maisBPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
BPM e SOA Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Como funcionam as organizações? O que ébpm Business Process Management (BPM)
Leia maisUM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1
UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 Eldair F. Dornelles 2, Henrique A. Richter 3, Miquéias F. M. Trennepohl 4, Taís T. Siqueira
Leia maisIntrodução OpenMP. Nielsen Castelo Damasceno
Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto
Leia maisProcessos (Threads,Virtualização e Migração de Código)
Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem
Leia maisUFRJ IM - DCC. Sistemas Operacionais I
UFRJ IM - DCC Sistemas Operacionais I Unidade I 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 ORGANIZAÇÃO DA UNIDADE Conceituação de SO Funções Básicas Breve Histórico Tipos
Leia mais1/26/2009. Baseadas em http://www.voelter.de/services/mdsdtutorial.html. Experiência pessoal/profissional/acadêmica
Baseadas em http://www.voelter.de/services/mdsdtutorial.html Experiência pessoal/profissional/acadêmica 1 Metamodelo UML Meu Metamodelo Meu processo de negócios Meu processo de negócios Stereotypes Perfis
Leia maisUNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores
UNIP - UNIVERSIDADE PAULISTA Arquitetura de computadores ORGANIZAÇÃO DE COMPUTADORES Bibliografia: MONTEIRO, M. A. Introdução à organização de computadores. 4 ed. RJ. LTC 2001. TANEMBAUM, A. S. Organização
Leia maisSistemas Operacionais. Professor Leslier Soares Corrêa
Sistemas Operacionais Professor Leslier Soares Corrêa Objetivos Conhecer o Professor e a matéria. Importância da Matéria no dia a dia. Por que é necessário um sistema operacional O que é um Sistema Operacional
Leia maisSistemas Operacionais. Conceitos de um Sistema Operacional
Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas
Leia maisSISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA
SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA Prof. Ulisses Cotta Cavalca Belo Horizonte/MG 2015 1 SUMÁRIO 1. Histórico do sistema operacional 2. Licença de softwares 3. Aspectos
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem
Leia maisSISTEMAS OPERACIONAIS
1 SISTEMAS OPERACIONAIS Profª Josiane T. Ferri Licenciada em Computação prof.jositf@yahoo.com.br facebook.com/josiferri ESTRUTURA DO SISTEMA OPERACIONAL Embora a definição de níveis de privilégio imponha
Leia maisSISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN
SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura
Leia maisATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas
ATIVIDADE 1 MÁQUINAS VIRTUAIS Existem hoje diversas tecnologias e produtos para virtualização de computadores e ambientes de execução, o que pode gerar uma certa confusão de conceitos. Apesar disso, cada
Leia maisNotas da Aula 4 - Fundamentos de Sistemas Operacionais
Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta
Leia maisAPLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:
Leia mais13/10/11 TIPOS DE UTILITÁRIOS UTILITÁRIOS 0798 INTRODUÇÃO À PROGRAMAÇÃO TIPOS DE UTILITÁRIOS TIPOS DE UTILITÁRIOS
2 OBJETIVOS E COMPETÊNCIAS OBJETIVOS Instalar e configurar utilitários sobre o sistema operativo (SO). UTILITÁRIOS 0798 COMPETÊNCIAS No final do curso os/as formandos/as deverão ser capazes de utilizar
Leia mais26/09/2015. Windows Linux Mac OS/X IBM OS/2 Sun Solaris Google Android. MS-DOS Outros... O QUE É? SISTEMAS OPERACIONAIS
O QUE É? SISTEMAS OPERACIONAIS Um programa que vai gerenciar os recursos do seu computador, memória, processador, agenda de tarefas, segurança das transações, autenticação de usuários. Prof. André Aparecido
Leia maisIntrodução a Sistemas Operacionais Aula 04. Prof. Msc. Ubirajara Junior biraifba@gmail.com
Introdução a Sistemas Operacionais Aula 04 Prof. Msc. Ubirajara Junior biraifba@gmail.com Um computador sem software nada mais é que um conjunto inútil de metal (Tanembaum); É o software que viabiliza
Leia maisSegurança e recuperação Manual do utilizador
Segurança e recuperação Manual do utilizador Copyright 2007-2009 Hewlett-Packard Development Company, L.P. Microsoft é uma marca comercial registada da Microsoft Corporation nos E.U.A. As informações contidas
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT Disciplina: Modelagem a Programação Orientada a Objetos
Leia maisO aplicativo de desktop Novell Filr é compatível com as seguintes versões do sistema operacional Windows:
Readme do aplicativo de desktop Novell Filr Setembro de 2014 Novell 1 Visão geral do produto O aplicativo de desktop Novell Filr permite que você sincronize os seus arquivos do Novell Filr com o sistema
Leia maisESTUDO DE CASO WINDOWS VISTA
ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado
Leia maisPermitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;
Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando
Leia maisEngenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias
Engenharia de Software Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias Sistemas Computacionais Automatiza ou apóia a realização de atividades humanas (processamento da informação)
Leia maisCURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
Leia maisLuís Cláudio OLIVEIRA-LOPES
Curso de Scilab Luís Cláudio OLIVEIRA-LOPES Parte I 29 de Setembro de 2007 Uberlândia, Minas Gerais, Brasil 1 Nada é mais poderoso do que uma idéia cujo tempo chegou Victor Hugo 2 SUMÁRIO Antes de Começar...
Leia maisUniversidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva.
Universidade Federal do Rio de Janeiro Pós-Gradução em Informática Microarquiteturas de Alto Desempenho Multithreading Introdução Muitos dos sistemas operacionais modernos suportam o conceito de threads,
Leia maisLINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL
LINUX Lapro I Profa. Fernanda Denardin Walker - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL Para que o computador funcione e possibilite a execução
Leia maisIntrodução ao OpenMP
Introdução ao OpenMP Threads em CPU multicore Rogério A. Gonçalves 1,2 Alfredo Goldman 2 1 Departamento de Computação (DACOM) Universidade Tecnológica Federal do Paraná (UTFPR) 2 Departamento de Ciência
Leia maisProgramação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho
124 - Encontro Anual de Tecnologia da Informação Programação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho André Luís Stefanello¹, Crístian Cleder Machado1, Dioni da Rosa¹, Maurício
Leia maisBancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info
Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds
Leia maisSistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)
Sistemas Operativos Threads 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Dos Processos para os Threads O conceito de thread foi introduzido na tentativa de
Leia maisAULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
Leia maisMatheus S. Serpa, Vinícius G. Pinto, Philippe O. A. Navaux Contato: INTEL MODERN CODE PARTNER
INTEL MODERN CODE: INTRODUÇÃO À PROGRAMAÇÃO VETORIAL E PARALELA PARA O PROCESSADOR INTEL XEON PHI KNIGHTS LANDING Matheus S. Serpa, Vinícius G. Pinto, Philippe O. A. Navaux Contato: msserpa@inf.ufrgs.br
Leia maisphpcollab Versão 2.4
http://www.php-collab.org APOSTILA phpcollab Versão 2.4 Pós-Graduação em Teste e Garantia da Qualidade de Software 2008/2009 Desenvolvido por: Sandra Teresinha Miorelli 2008 Página de 4 . INTRODUÇÃO Apresentação
Leia maisCONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO)
CONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO) Profa. Vania V. Estrela, Profa. Albany E. Herrmann 1. Programação Programação requer o uso de uma linguagem, cuja sintaxe geralmente
Leia mais