Programação Paralela Avançada. N. Maillard - M. Cera
|
|
- Theodoro de Sintra Carneiro
- 6 Há anos
- Visualizações:
Transcrição
1 Programação Paralela Avançada N. Maillard - M. Cera
2 Programação Paralela Avançada Introdução Geral 2
3 Programação Paralela é crítica 3
4 Programação Paralela é difícil Em nível conceitual + em nível técnico. 4
5 Não sub-estimar os usuários. Somos Especialistas e o Mundo precisa de Nós... Será? Vejam o caso do famoso físico que precisa acelerar seu código... Ou ele compra um PC 4-cores, usa OpenMP, e pronto. Ou ele tem R$ 1 M, compra um Cluster+ TODO O SUPORTE... E ele pagará o necessário para que funcione. MORAL: nos 2 casos, a paralelização simples JÁ terá sido feita. 5
6 Comparação com linguagem natural Aprender a escrever programas paralelos se compara com aprender uma linguagem estrangeira. Trabalha-se as técnicas básicas (sons, palavras simples...) Depois se trabalha o complicado (registros de língua...) Por fim, consegue-se atacar conceitos (poemas, literatura...) 6
7 Objetivo destes cursos Técnicas básicas (MPI e OpenMP) ver o cursos do Profs. Rebonnatto. Nós vamos apresentar técnicas avançadas Relacioná-las com conceitos de programação paralela. Relacioná-las com aplicações. 7
8 4 partes sobre MPI 1) Comunicações não-bloqueantes Conceito: efetuar comunicações durante os cálculos 2) Comunicadores Conceito: namespaces para comunicações globais 3) Tipos de dados do usuário Conceito: abstração dos dados 4) Spawn Conceito: paralelismo de tarefas 8
9 OpenMP Revisão de OMP básico A diretiva schedule() - Conceito: balanceamento de carga e localidade. OMP avançado (OpenMP 3.0) Conceito: paralelismo de tarefas. OMP + MPI Conceito: programação paralela híbrida Demonstrações 9
10 Comunicações não-bloqueantes 10
11 Conceito O conceito atrás da técnica é a cobertura (overlap) comunicações / cálculos Vejam Correios vs. Telefone: O telefonema necessita sincronização dos dois lados (Send/Recv normal) Enquanto uma carta está encaminhada, pode-se fazer outras coisas. 11
12 Send/Recv normal com MPI void main() { int p, r, tag = 103; MPI_Status stat; double val ; MPI_Init(&argc, &argv) ; MPI_Comm_rank(MPI_COMM_WORLD, &r); if (r==0) { printf("processor 0 sends a message to 1\n"); val = 3.14 ; MPI_Send(&val, 1, MPI_DOUBLE, 1, tag, MPI_COMM_WORLD); else { printf("processor 1 receives a message from 0\n"); MPI_Recv(&val, 1, MPI_DOUBLE, 0, tag, MPI_COMM_WORLD, &stat); printf( I received the value: %.2lf\n", valor); MPI_Finalize() ; 12
13 Send vs Isend, Recv vs. IRecv MPI_Recv(&x,...) é bloqueante. Quando se executa a próxima instrução, x já tem o valor correto MPI_Send(&x,...) é não-bloqueante Porém, x é bufferizado, e por isso a próxima instrução pode alterar x sem problema. Obs.: Send é não-bloqueante... Até estourar o buffer interno! Variações não-bloqueantes: MPI_Irecv() e MPI_Isend() Mesmos argumentos como Recv/Send, com um extra de tipo MPI_Request. O MPI_Request possibilita testar a finalização de comunicações não-bloqueantes. Existe também versões explicitamente bufferizadas do Send/Recv: MPI_Bsend(). 13
14 Testar e esperar por com. não bloqueantes MPI_Test(MPI_Request* req, int* flag, MPI_Status* stat) Seta flag a 0 ou 1, em função do termino da com nãobloqueante descrita por req. Deve-se testar flag depois... 'status' tem a mesma semântica como no Recv. Informa remetente e tag da mensagem. MPI_Wait(MPI_Request* req, MPI_Status* stat) Bloqueia até a comunicação não-bloqueante tenha terminado. MPI_Irecv seguido de MPI_Wait == MPI_Recv. 14
15 Testar e esperar por com. não bloqueantes Prática (muito) comum: sobreposição computação / comunicação Dispara uma comunicação não-bloqueante (e.g recv), (em um laço) executa todo o que se pode fazer sem ter recebido os dados, testando a recepção. Se o laço acabar, bloquea com Wait. Serve quando se pode executar um laço que leva tempo enquanto a comunicação inicial anda. 15
16 Irecv, Test e Wait em laços MPI_Request req; MPI_Status status; int flag; MPI_Irecv(&dado, /* vários parâmetros */, &req); while (! okay) { /* poderia ser qualquer outro tipo de laço */ MPI_Test(req, &chegou, &status); if (chegou) { /* faça o que deve fazer com 'dado' */ /* Faça qualquer outra coisa até 'okay' passar a valer 'true' */ /* Agora se precisa de 'dados' para valer MPI_Wait(req, &status); /* Bloqueia aqui! */ /* faça o que deve fazer com 'dado' */ 16
17 Desafio: como otimizar um mestre/escravo? Idéia 1: o mestre manda uma tarefa para um escravo e espera seu retorno. É uma forma original de escrever com MPI um programa sequencial... Idéia 2: o mestre manda uma tarefa para um escravo e espera o retorno de qualquer um deles. Já melhora muito... Usa o 'status' de MPI_Recv. Idéia 3: o mestre manda uma tarefa para cada escravo. Enquanto um retorno está vindo, ele processa tarefas também. Aí sim se obtém 100% do paralelismo! Obs: os escravos podem fazer a mesma coisa! 17
18 Time for a break MPI_Bcast( Intervalo - MERENDA! ); MPI_Wait( todo o mundo voltar ); 18
19 Comunicadores 19
20 Conceito: namespace Precisa-se: Evitar conflitos entre os nomes (de processos ou de mensagens), Particionar as comunicações entre os processos, Possibilitar comunicações coletivas entre sub-conjuntos de processos. Exemplo: s: pode-se mandar mails de pessoa-a-pessoa, ou entre grupo de pessoas, e pessoas podem pertencer a mais de um grupo. Como fazer isso no MPI? Como efetuar um Broadcast entre apenas parte dos processos que executam? 20
21 Processos MPI - grupos e comunicadores Cada processo tem um par (rank, grupo de processos) Comunicador é uma estrutura que define um grupo e um contexto Contexto = universo de comunicação MPI_Init MPI_COMM_WORLD Como faço para facilitar a programação de aplicações onde nem todos os processos precisam interagir? MPI_COMM_WORLD
22 Intracomunicadores e Intercomunicadores Intracomunicador mensagens dentro de um mesmo grupo local MPI_COMM_WORLD é um intracomunicador Intercomunicador mensagens entre um grupo local e remoto intercom intracom intracom2 2 22
23 Intracomunicadores e Intercomunicadores Comunicação local MPI_Send(&i, 1, MPI_INT, 2, tag, intracom1); MPI_Recv(&i, 1, MPI_INT, 0, tag, intracom1, &st); intercom intracom intracom2 2 23
24 Intracomunicadores e Intercomunicadores Comunicação local MPI_Send(&i, 1, MPI_INT, 2, tag, intracom1); MPI_Recv(&i, 1, MPI_INT, 0, tag, intracom1, &st); Comunicação entre grupo local e remoto MPI_Send(&j, 1, MPI_INT, 0, tag, intercom); MPI_Recv(&j, 1, MPI_INT, 0, tag, intercom, &st); intercom intracom intracom2 2 24
25 Manipulação de comunicadores MPI_COMM_SELF [0,3] Uso do MPI_Comm_split: particionamento de comunicadores Demonstração: código fonte + execução Manipulação de comunicadores MPI_Comm_split, MPI_Intercomm_create, MPI_Intercomm_merge Demonstração: código fonte + execução 25
26 Tipos de Dados do Usuário 26
27 Conceito: Estrutura de Dados Imaginem paralelizar com MPI o GoogleMaps necessita mandar (via rede) mapas, fotos, etc... Como mandar tais dados com o MPI? 27
28 Datatypes do MPI Os MPI Datatypes básicos para as comunicações são MPI_INT, MPI_FLOAT, MPI_CHAR, MPI_DOUBLE... Mais qualquer Linguagem de Programação sequencial provê tipos abstratos compostos (structs, union), ponteiros, etc... Como comunicar tipos de dados abstratos? Pode-se usar o método naive : 1) memcpy() toda a estrutura de dados num buffer de Bytes, 2) recupera seu tamanho e 3) manda-o como MPI_CHAR. Pouco elegante, e nem um pouco portável. Obs: no MPI, receber uma mensagem implica em conhecer seu tamanho. 28
29 1a solução mais elegante: MPI_Pack() Usa o MPI para empacotar os dados: MPI_Pack(void* inbuf, int count, MPI_Datatype dtype, void* outbuf, int outcount, int* position, MPI_Comm comm) Empacota os dados em inbuf (= count itens de tipo básico dtype ), retorna outbuf e atualiza position para outras chamadas a MPI_Pack(). Manda o buffer com tipo básico MPI_PACK: MPI_Send( outbuf, MPI_Pack_size( outbuf ), MPI_PACK,... ) Usa MPI_Unpack(... ) depois do MPI_Recv para desempacotar o buffer. 29
30 2a solução mais elegante Descreve ao MPI como serializar sua estrutura de dados. Efetua um commit para criar um novo MPI Data_type personalizado, Usa o Data_type como se fosse um Datatype MPI básico, nas mensagens. Exemplo: mandar uma struct de 2 campos: Usa-se MPI_Type_create_struct(2, VetorTam, VetorDesloc, VetorTipo, MPI_Datatype* meu_tipo), VetorTam: vetor de 2 entradas para indicar o número de entradas em cada campo, VetorDesloc: vetor de 2 entradas para indicar o endereço inicial de cada campo, VetorTipo: vetor de 2 entradas para indicar o tipo (básico) de cada campo, meu_tipo: novo Datatype retornado. Mais MPI_type_commit(). 30
31 Datatypes: vantagens e inconvenientes Pros: Evita a duplicação de cópias dos dados para mandá-los, Aumenta a portabilidade do código, Funciona bem para tipos compostos. Contras: Trabalhoso!!! Comparar com mecanismos de serialização automática de C# ou Java... Não resolve o caso de ponteiros. 31
32 Fim do 1o. encontro Nicolas Maillard: Márcia C. Cera: 32
33 Resumo da Obra 33
34 Lembrando as técnicas já apresentadas Comunicações não bloqueantes Sobreposição comunicações/cálculos Comunicadores Definindo namespaces para comunicação Tipos de dados do usuário Abstração dos dados (estruturas de dados) Aplicações reais mesclam essas técnicas para prover um melhor desempenho e utilização das arquiteturas paralelas 34
35 Criação Dinâmica de Processos 35
36 Processos dinâmicos Em tempo de execução, um processo pode lançar a criação de outro Modelo de execução dinâmico Processos podem ser criados conforme a demanda da aplicação Norma MPI-2: Modelo SPMD MPMD Possibilita a implementação de novas classes de aplicações Maleáveis: capazes de se adaptar a dinamicidade de recursos Evolutivas: capazes de se adaptar a irregularidade de sua carga de trabalho Paralelismo de Tarefas (Task Parallelism) 36
37 Processos dinâmicos Cada processo possui seu intracomunicador O processo que dispara a criação é chamado de pai O processo(s) criado(s) é(são) o(s) filho(s) Comunicação entre pai e filhos acontece através de um intercomunicador Do lado do pai: MPI_Comm_spawn Do lado do(s) filho(s): MPI_Comm_get_parent
38 Criando processos dinâmicos int MPI_Comm_spawn( char *command, --> nome do binário do novo processo char *argv[], --> argumentos para o novo processo int maxprocs, --> número de processos a serem criados MPI_Info info, --> informações para runtime system int root, --> identificador do processo pai MPI_Comm comm, --> intracomunicador do processo pai MPI_Comm *intercomm, --> intercomunicador: pai e filho int array_of_errcodes[] --> vetor de erros ) Demonstração: pai-filho com troca de mensagens 38
39 Exemplificando Cálculo do i-ésimo elemento da sequência de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13, 21,...) Um elemento é a soma de seus 2 antecessores Algoritmo Sequencial: int fib (int n){ if (n < 2) return n; else{ int x, y; x = fib (n - 1); y = fib (n 2); return (x + y); Ex: 4-ésimo elemento: fib(4)= fib(3)= fib(2)= + + +fib(1)=1 fib(0)=0 fib(1)=1 fib(2)= + fib(1) fib(0) Demonstração: Fibonacci com processos dinâmicos 39
40 Exemplificando fib(4) fib(3) fib(2) fib(1) fib(2) fib(1) fib(1) fib(0) Ex: 4-ésimo elemento: fib(4)= fib(3)= fib(2)= + + +fib(1)=1 fib(0)=0 fib(1)=1 fib(2)= + fib(1) fib(0) fib(0) 40
41 Exemplificando fib(4) fib(3) fib(2) 1 fib(2) fib(1) fib(1) fib(0) Ex: 4-ésimo elemento: fib(4)= fib(3)= fib(2)= + + +fib(1)=1 fib(0)=0 fib(1)=1 fib(2)= + fib(1) fib(0) 0 41
42 Exemplificando fib(4) fib(3) 1 fib(2) Ex: 4-ésimo elemento: fib(4)= fib(3)= fib(2)= + + +fib(1)=1 fib(0)=0 fib(1)=1 fib(2)= + fib(1) fib(0) 42
43 Exemplificando fib(4) 2 1 Ex: 4-ésimo elemento: fib(4)= fib(3)= fib(2)= + + +fib(1)=1 fib(0)=0 fib(1)=1 fib(2)= + fib(1) fib(0) 43
44 Exemplificando 3 Ex: 4-ésimo elemento: fib(4)= fib(3)= fib(2)= + + +fib(1)=1 fib(0)=0 fib(1)=1 fib(2)= + fib(1) fib(0) 44
45 Estabelecendo Comunicação Comunicações seguindo a relação Cliente/Servidor 45
46 Concluindo apresentação do MPI MPI é o padrão para programação com troca de mensagens É largamente utilizado no desenvolvimento de aplicações de Alto Desempenho O padrão prevê diversas técnicas avançadas objetivando ganhos de desempenho, dentre elas nós apresentamos nesse curso: Comunicações não-bloqueantes Manipulação de Comunicadores Definição de Tipos de Dados Criação dinâmica de processos Desenvolver programas MPI eficientes não é uma tarefa trivial; Ela está diretamente relacionada ao conhecimento e domínio de técnicas e conceitos do MPI 46
47 Memória Compartilhada - OpenMP 47
48 Noções Básicas de OpenMP OpenMP Open Multi-processing Consórcio de fabricantes: Intel, IBM, Sum,... Suportada em compiladores: Intel, gcc,... É um padrão que define A forma como os cálculos serão distribuídos entre A forma como os dados serão replicados ou compartilhados As sincronizações Programação baseada em pragmas e rotinas providas pela biblioteca OpenMP Número de threads: OMP_NUM_THREADS ou omp_set_num_threads(int n) Demonstração: Olá mundo e como estruturar um programa OpenMP 48
49 Noções Básicas de OpenMP Distribuição dos cálculos e dos dados Cláusula shared(x, y,...) : acesso compartilhado entre as threads Cláusula private(x, y,...): cria réplicas das variáveis para cada fluxo variáveis locais de um bloco parallel são automaticamente privadas Demonstrações: entendendo variáveis compartilhadas e privadas 49
50 Noções Básicas de OpenMP Distribuição dos cálculos Sections Exemplo: Considere um programa que calcula operações sobre as N entradas de um vetor dados[10000] #pragma omp sections { #pragma omp section { Compute(0, N, dados) #pragma omp section { Compute(1, N, dados) #pragma omp section { Compute(2, N, dados) #pragma omp section { Compute(3, N, dados) Compute(int index, int N, int dados) { Int start, end, i; Start = index * N/4 + 1; End = (index + 1) * N/4; // efetua cálculos sobre suas N/4 // entradas do vetor dados 50
51 Paralelismo de Laços # pragma omp parallel for for (i = 0; i < n; i++){ c[i] = a[i] + b[i]; Fluxo Mestre Região Sequencial F O R K J O I N Região Paralela Demonstração: exemplo de paralelismo de laços Restrições de acesso: int fator = 0.5 #pragma omp parallel for private( fator ) for (i = 0; i < N; i++){ c[i] = fator * a[i]; #pragma omp parallel for private( j ) for (i = 0; i < N; i++){ for(j = 0; j < N; j++){ c[i] = a[i] + b[j]; *firstprivate, lastprivate 51
52 Paralelismo de Laços Por exemplo: N = 14 iterações P = 3 threads 52
53 Paralelismo de Laços Thread Thread Thread 2 Divisão das iterações em blocos + localidade Iterações com carga irregular 53
54 Paralelismo de Laços Thread Thread Thread 2 Alocação cíclica Round Robin + - Balanceamento de carga Perdeu-se a localidade 54
55 Paralelismo de Laços Thread Thread 1 Thread 2 Alocação por blocos cíclicos + Meio termo entre Balanceamento de carga e Localidade 55
56 Paralelismo de Laços Thread Thread 1 Thread 2 Alocação por blocos cíclicos! Tamanho dos Blocos 56
57 Paralelismo de Laços Distribuição das iterações do laço - schedule(tipo[, chunk]): static: chunk com valor estático pré-determinado dynamic: chunk depende da quantidade restante de iterações guided: mescla dos anteriores A forma como a distribuição das iterações serão distribuídas influencia diretamente na granularidade do trabalho das threads Iterações com tempos diferentes Bloco maior == melhor localidade espacial; Bloco menor == melhor balanceamento de carga. 57
58 Intervalo Nos vemos às 16 horas para o encerramento deste minicurso: OpenMP Avançado Paralelização de um laço while Paralelismo de tarefas no OpenMP 3.0 Mesclando OpenMP e MPI visando clusters multi-core Considerações finais 58
59 OMP Avançado 59
60 Paralelizar um while () int main() { int tid, i; { tid = omp_get_thread_num(); i = next_indice(); while (i!= -1) { calculo(tid,i); i = next_indice(); int indice=0; int next_indice() { int res; { if (indice == N) res = -1; else res = ++indice; return(res); Como paralelizar este laço while com OpenMP? 60
61 Paralelizar um while () int main() { int tid, i; #pragma omp parallel private(tid,i) { tid = omp_get_thread_num(); i = next_indice(); while (i!= -1) { calculo(tid,i); i = next_indice(); int indice=0; int next_indice() { int res; { if (indice == N) res = -1; else res = ++indice; return(res); Como paralelizar este laço while com OpenMP? 61
62 Paralelizar um while () int main() { int tid, i; #pragma omp parallel private(tid,i) { tid = omp_get_thread_num(); i = next_indice(); while (i!= -1) { calculo(tid,i); i = next_indice(); int indice=0; int next_indice() { int res; { if (indice == N) res = -1; else res = ++indice; return(res); PROBLEMA de acesso concorrente a next_indice() 62
63 Paralelizar um while () int main() { int tid, i; #pragma omp parallel private(tid,i) { tid = omp_get_thread_num(); i = next_indice(); while (i!= -1) { calculo(tid,i); i = next_indice(); int indice=0; int next_indice() { int res; #pragma omp critical { if (indice == N) res = -1; else res = ++indice; return(res); PROBLEMA resolvido. 63
64 OpenMP 3.0 OpenMP 3 introduz uma nova forma de paralelização: o paralelismo de tarefas ver Spawn com MPI. Apropriado para algoritmos recursivos. Uma tarefa OpenMP é definida pelo pragma #pragma omp task Pode-se sincronizar as tarefas com um #pragma omp taskwait int fib ( int n ) { int x,y; if ( n < 2 ) return n; x = fib(n-1); y = fib(n-2); return x+y; int fib ( int n ) { int x,y; if ( n < 2 ) return n; #pragma omp task shared(x) x = fib(n-1); #pragma omp task shared(y) y = fib(n-2); #pragma omp taskwait return x+y; 64
65 De novo o while(), com OpenMP3 Construção típica do while() com uma pilha... No caso, usa-se uma pilha para varrer uma árvore binária em profundidade. stack_t pilha = init_pilha(); node_t node, root = init_tree(); push(pilha, root); while (! is_empty(pilha) ) { node = pop(pilha); if (is_leaf(node)) compute(node); else { push(pilha, node->right); push(pilha, node->left); 65
66 De novo o while(), com OpenMP3 Construção típica do while() com uma pilha... No caso, usa-se uma pilha para varrer uma árvore binária em profundidade. stack_t pilha = init_pilha(); node_t node, root = init_tree(); push(pilha, root); while (! is_empty(pilha) ) { node = pop(pilha); if (is_leaf(node)) #pragma omp task compute(node); else { push(pilha, node->right); push(pilha, node->left); 66
67 De novo o while(), com OpenMP3 Construção típica do while() com uma pilha... No caso, usa-se uma pilha para varrer uma árvore binária em profundidade. stack_t pilha = init_pilha(); node_t node, root = init_tree(); push(pilha, root); while (! is_empty(pilha) ) { node = pop(pilha); if (is_leaf(node)) #pragma omp task compute(node); else { push(pilha, node->right); push(pilha, node->left); Cuidado!!! Funciona se compute não introduz efeito colateral. Não se garante mais a ordem de cálculos sobre os nós. 67
68 OpenMP + MPI 68
69 Programação Híbrida Fazer o que para um cluster de multicores? Usar o MPI e disparar um processo por core? Opção interessante MPI como API de programação paralela? Usar um OpenMP que emule uma memória compartilhada? (see Intel). Fator 10x a pagar... Usar MPI junto com OpenMP? É técnico... 69
70 Um exemplo: decomposição de domínios Simula-se um fenômeno físico num dominío espacial (2D, 3D). A paralelização implica no recorte em subdomínios. A simulação itera (no tempo) a resolução de sistemas de equações para cada domínio, Há troca de informações a respeito das bordas. 70
71 Exemplo: HOMB Resolve uma equação de Laplace. Domínio 2D Uso de: Paralelismo MPI entre os domínios (com Irecv/Isend...) Paralelismo OpenMP no cálculo interno a cada domínio. O cálculo envolve 2 laços aninhados. Observar o uso de critical para calcular a norma. 71
72 Conclusão Geral 72
73 O que vimos? Message Passing Interface uso avançado. Programas reais usam dados complexos, precisam de dinamicidade / balanceamento de carga, executam com 10K processos, etc. OpenMP do paralelismo de laços a paralelismo de tarefas. Programação recursiva, granularidade fina. Usar os dois juntos para arquiteturas híbridas Shared + Distributed memory. 73
74 What's wrong? O grande problema é o nível de tecnicidade necessitado! Leva tempo, Leva a bugs, Difícil de portar... Comparar com programação sequencial! C vs. Java... 74
75 Precisa-se de avanços em programação parelela Precisa-se de abstrações maiores para: Que o programador não deva pensar na arquitetura, Que o programador possa definir facilmente o grau máximo de paralelismo, Que o middleware de execução mapeia facilmente as (pequenas) tarefas nas unidades de execução providas pelo hardware. Existem ferramentas recentes, ou de pesquisa, indo neste rumo Intel TBB, por exemplo. Para memória distribuída, ainda tem pouca coisa. O aumento de cores, e a necessidade de Rede-On-Chip, vai levar a dever atacar este problema nos anos que vêm. 75
76 Márcia Cristina Cera, Nicolas Maillard {mccera, Adaptive Programming of Parallel, Grupo de Processamento Paralelo e Distribuído Hybrid Architectures UFRGS
Programaçã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 maisArquitecturas 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 maisParte da Tarefa. Parte da Tarefa. Parte da Tarefa SEND RECEIVE SEND RECEIVE
Produto Escalar com MPI-2 (C++) Aula Sistemas Distribuídos Prof. Dr. Marcelo Facio Palin profpalin@gmail.com 1 1 O que é Paralelismo? Conceitos Paralelismo é uma técnica usada em tarefas grandes e complexas
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 maisRoteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens
Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos
Leia maisArquitetura de Computadores Sistemas Operacionais II
Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa
Leia maisLógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto
Lógica de Programação Profas. Simone Campos Camargo e Janete Ferreira Biazotto O curso Técnico em Informática É o profissional que desenvolve e opera sistemas, aplicações, interfaces gráficas; monta estruturas
Leia maisUNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais
UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06 Disciplina: Linguagem de Programação C Profª Viviane Todt Diverio Funções, variáveis, parâmetros formais
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 à orientação a objetos
Universidade Federal de Juiz de Fora PET Elétrica Introdução à orientação a objetos Tutor: Francisco José Gomes Aluno: João Tito Almeida Vianna 18/05/2013 1 Programação Estruturada x Orientação a objetos
Leia maisConteúdo programático
Introdução à Linguagem C Conteúdo programático Introdução à Linguagem C Estrutura de Programas Variáveis, Constantes Operadores, Entrada e Saída de Dados Estruturas de Desvio Estrutura de Múltipla Escolha
Leia maisFundamentos de Programação. Diagrama de blocos
Fundamentos de Programação Diagrama de blocos Prof. M.Sc.: João Paulo Q. dos Santos E-mail: joao.queiroz@ifrn.edu.br Página: http://docente.ifrn.edu.br/joaoqueiroz/ O processo de desenvolvimento (programação),
Leia maisSobre o Visual C++ 2010
O Visual Studio é um pacote de programas da Microsoft para desenvolvimento de software, suportando diversas linguagens como C#, C++, C, Java, Visual Basic, etc. Nesta série de tutoriais vou focar apenas
Leia maisPara entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:
Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos
Leia maisSimulado de Linguagem de Programação Java
Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as
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 maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Introdução Slide 1 Nielsen C. Damasceno Introdução Tanenbaum (2007) definiu que um sistema distribuído é aquele que se apresenta aos seus usuários como um sistema centralizado, mas
Leia maisTópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza
Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados Prof. Hugo Souza Após vermos uma breve contextualização sobre esquemas para bases dados e aprendermos
Leia maisInformática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/06/06 1
Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/06/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisMétodo de ordenação - objetivos:
Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São
Leia maisJava RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
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 maisAlgoritmos APRENDENDO A PROGRAMAR COM C#
Algoritmos APRENDENDO A PROGRAMAR COM C# Alô Mundo AULA 01 Conhecendo o ambiente O objetivo principal desse programa não é mostrar a mensagem Alo Mundo. O objetivo é apresentar o ambiente de desenvolvimento
Leia maisSistemas Distribuídos Capítulo 4 - Aula 5
Sistemas Distribuídos Capítulo 4 - Aula 5 Aula Passada Clusters de Servidores Migração de Código Comunicação (Cap. 4) Aula de hoje Chamada de Procedimento Remoto - RPC Fundamentos 1 Chamada de Procedimento
Leia maisMANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS
MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS Está disponível a partir da versão 2014.73 do XD Rest/Pos/Disco um novo formato no instalador em ambientes Microsoft Windows. O instalador passa a
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 maisÁrvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão
Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está
Leia maisIntrodução à Programação de Computadores Parte I
Introdução à Programação de Computadores Parte I Prof. Dr. Edson Pimentel Centro de Matemática, Computação e Cognição Objetivos Compreender os componentes básicos de um programa... Objetivos Bacharelado
Leia maisSistemas Distribuídos
Comunicação em Grupo Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 10.4 pág. 304-311 2 Comunicação em Grupo Suponha que se deseja um serviço de arquivos único
Leia maisOs passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.
Acordo Financeiro Produto : RM - Totvs Gestão Financeira 12.1.1 Processo : Acordo Financeiro Subprocesso : Template de Acordo Controle de Alçada Negociação Online Data da publicação : 29 / 10 / 2012 Os
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 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 maisCriando scanner para dectar BackupExec vulneráveis ao exploit do Metasploit. Inj3cti0n P4ck3t
Criando scanner para dectar BackupExec vulneráveis ao exploit do Metasploit Inj3cti0n P4ck3t São Paulo 2010 Author: Inj3cti0n P4ck3t Date: 18/10/10 Nome do Artigo: Criando scanner para dectar BackupExec
Leia maisProgramação de Computadores I. Linguagem C Função
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisMicroprocessadores. Memórias
s António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Arquitectura de Microcomputador Modelo de Von Neumann Barramento de Endereços µprocessador Entrada/Saída Barramento
Leia maisLISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays
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 maisINF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 9 Tipos Abstratos de Dados (c) Dept. Informática - PUC-Rio 1 Tópicos Módulos e compilação em separado Tipo abstrato de dados Exemplo 1: TAD Ponto Exemplo 2: TAD Círculo Exemplo 3:
Leia maisComandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios
Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios O Método Intuitivo de elaboração de circuitos: As técnicas de elaboração de circuitos eletropneumáticos fazem parte
Leia maisGuia operação site www.atu.com.br
Guia operação site www.atu.com.br OBS: as telas no site bem como no sistema de gestão poderão sofrer alguma alteração, com base nos exemplos ilustrativos deste manual. 1. Objetivo Este guia tem como objetivo
Leia maisAlgoritmos e Programação II
Algoritmos e Programação II Agenda Desenvolver Software Objetos Classes Estudo de algumas Classes da API Estudo de algumas Classes da API Pacotes Criando nossa primeira classe Desenvolver SOFTWARE GAP
Leia maisRedes de Computadores
Nível de rede Inst tituto de Info ormátic ca - UF FRGS Redes de Computadores Nível de rede Aula 6 Aplicação Apresentação Sessão Transporte Rede Enlace Físico Protocolo nível de aplicação Protocolo nível
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 2 Princípios de Programação Prof. Belarmino Linguagem de Computadores Internamente os computadores usam instruções e armazenam os dados no formato numérico binário
Leia maisENGENHARIA DE SOFTWARE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática : ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Um conjunto estruturado
Leia maisM3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações
M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações Prof. Fernando Augusto Teixeira 1 Agenda da Disciplina Certificado Digital e suas aplicações Segurança Criptografia Simétrica Criptografia
Leia maisDepartamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota
P1 22/09/2010 Matrícula: Turma: Questão 1) (3,5 pontos) O Índice de Desenvolvimento Humano (IDH) é uma medida do bemestar de uma população. Engloba três dimensões: educação (E), longevidade (L) e a riqueza
Leia maisConceitos básicos sobre computadores
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Conceitos básicos sobre computadores Prof. Vanderlei Bonato: vbonato@icmc.usp.br Sumário O que é um computador e onde podemos encontrá-los? Divisão:
Leia maisApontamento técnico No. 5, Fevereiro de 2014 Como pedir apoio através do Ajuda Online do CAICC
Apontamento técnico No. 5, Fevereiro de 2014 Como pedir apoio através do Ajuda Online do CAICC Sumário Enquadramento... 1 1. Introdução... 1 1º Passo: Como aceder o Ajuda Online?... 2 2º Passo: Página
Leia maisProgramação em Memória Compartilhada com OpenMP
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
Leia maisEngenharia de Software II
Engenharia de Software II Aula 26 http://www.ic.uff.br/~bianca/engsoft2/ Aula 26-21/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software
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 maisInteligência Artificial
Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?
Leia maisConceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações
Leia maisSistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores
Sistemas Operacionais Sincronização: Semáforos Problema dos Leitores/Escritores Autoria Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina:
Leia maisHardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização
Hardware: Componentes Básicos Arquitetura dos Computadores Dispositivos de Entrada Processamento Dispositivos de Saída Armazenamento Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Sistema de
Leia maisConceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1
Conceito Básicos de Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1 Autoria Autor C. Geyer Local Instituto de Informática UFRGS disciplina : Programação
Leia maisSistemas Distribuídos
Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Introdução Comunicação em Sistemas Distribuídos Introdução: Comunicação em Sistemas Distribuídos
Leia maisExperiência 04: Comandos para testes e identificação do computador na rede.
( ) Prova ( ) Prova Semestral ( ) Exercícios ( ) Prova Modular ( ) Segunda Chamada ( ) Exame Final ( ) Prática de Laboratório ( ) Aproveitamento Extraordinário de Estudos Nota: Disciplina: Turma: Aluno
Leia maisIntrodução ao. Script. Baltazar Tavares (Psycho Mantys) https://psychomantys.wordpress.com https://about.me/psycho_mantys
Introdução ao Script Baltazar Tavares (Psycho Mantys) https://psychomantys.wordpress.com https://about.me/psycho_mantys O que é Bash Script? O que é Bash + Script? O que é Bash? O que é Bash? Ele é um
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 1 Motivação e Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet
Leia maisCRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access
CRIAÇÃO DE TABELAS NO ACCESS Criação de Tabelas no Access Sumário Conceitos / Autores chave... 3 1. Introdução... 4 2. Criação de um Banco de Dados... 4 3. Criação de Tabelas... 6 4. Vinculação de tabelas...
Leia maisScheduling and Task Allocation ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING Hesham El-Rewini 2005 Capítulo 10 Autor...: Antonio Edson Ceccon Professor..: Prof. Heitor Silvério Lopes Apresentação
Leia maistipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA SUL-RIO- GRANDENSE CAMPUS SAPUCAIA DO SUL PROFESSOR: RICARDO LUIS DOS SANTOS EXERCÍCIO DE REVISÃO E FIXAÇÃO DE CONTEÚDO - ARRAYS 1. Criar um vetor A
Leia maisDK105 GROVE. Temperatura e Umidade. Radiuino
DK105 GROVE Temperatura e Umidade Radiuino O presente projeto visa mostrar uma básica aplicação com o Kit DK 105 Grove. Utilizamos um sensor de umidade e temperatura Grove juntamente ao nó sensor para
Leia maisCurso C: Ponteiros e Arrays
Universidade de Brasília Departamento de Ciência da Computação Curso C: Ponteiros e Arrays Prof. Ricardo Pezzuol Jacobi rjacobi@cic.unb.br Ponteiros um ponteiro Ž uma vari vel que contžm o endere o um
Leia maisAlgoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I Variáveis Indexadas Pedro O.S. Vaz de Melo Por que índices são importantes? Como uma loja de sapatos artesanais deve guardar os seus produtos? 1 2 3 4 Tamanhos entre
Leia maisOrganização de Computadores 1
Organização de Computadores 1 3.1 CPU: Unidade de Processamento Central Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Unidade de Processamento Central (CPU): Memória Principal Unidade de Processamento
Leia maisO que é um banco de dados? Banco de Dados. Banco de dados
COLÉGIO EST. JOÃO MANOEL MONDRONE - ENS. FUNDAMENTAL, MÉDIO, PROFISSIONAL E NORMAL Rua Mato Grosso n.2233 - Fone/Fax (045) 3264-1749-3264-1507 Banco de Dados O que é um banco de dados? Um conjunto de informações
Leia maisBC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória
BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória Prof. Jesús P. Mena-Chalco 1Q-2016 1 Cloud9 Crie uma conta no c9.io Apenas é requerido criar uma área (máquina
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 maisMetodologias de PETI. Prof. Marlon Marcon
Metodologias de PETI Prof. Marlon Marcon PETI O PETI é composto de: Planejamento Estratégico da organização, que combina os objetivos e recursos da organização com seus mercados em processo de transformação
Leia maisBC-0505 Processamento da Informação
BC-0505 Processamento da Informação 0.Declarar Variáveis/ Atributos (Armazenar Dados) 1.Entrada de Dados (Obter dados = Leitura) double raio = 0; double area = 0; double PI = 3.14159; 2.Processamento (=
Leia maisMANUAL HAE - WEB MANUAL WEB HAE
MANUAL HAE - WEB MANUAL WEB HAE PROJETO HAE - WEB www.cpscetec.com.br/hae *NÃO DEVERÃO ser lançados os projetos de Coordenação de Curso, Responsável por Laboratório, Coordenação de Projetos Responsável
Leia maisdjango-pagseguro Documentation
django-pagseguro Documentation Release 1.4.2 Fábio Cerqueira February 11, 2015 Contents 1 Tutorial django-pagseguro 3 1.1 Instalação................................................. 3 1.2 Configurando
Leia maisMDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)
MDS II Aula 04 Concepção Requisitos Diagrama de Casos de Uso (Use Cases) 55 DIAGRAMA DE CASOS DE USO BENEFÍCIOS DOS CASOS DE USO ILUSTRAR POR QUE O SISTEMA É NECESSÁRIO OS REQUISITOS DO SISTEMA SÃO COLOCADOS
Leia maisSISTEMA CAÇA-TALENTOS MANUAL DE OPERAÇÃO PERFIL SECRETARIA
SISTEMA CAÇA-TALENTOS MANUAL DE OPERAÇÃO PERFIL SECRETARIA O Sistema Caça-Talentos tem o objetivo de aprimorar o negócio e fornecer um controle informatizado dos processos de captação dos alunos. Ele possui
Leia maisRegistro de Retenções Tributárias e Pagamentos
SISTEMA DE GESTÃO DE PRESTAÇÃO DE CONTAS (SiGPC) CONTAS ONLINE Registro de Retenções Tributárias e Pagamentos Atualização: 20/12/2012 A necessidade de registrar despesas em que há retenção tributária é
Leia maisManual de Programação TED1000 versão TC100 Ethernet
Manual de Programação TED1000 versão TC100 Ethernet Indice: Configurações iniciais...2 Configuração de IP...2 Teclas especiais...2 Cabo de rede...2 Programação...3 Abrindo a comunicação (abreip)...3 Enviando
Leia maisProgramação Orientada a Objetos. Professor Leonardo Cabral - Larback
Programação Orientada a Objetos Professor Leonardo Cabral - Larback Programação Orientada a Objetos O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay (http://pt.wikipedia.org/wiki/alan_kay),
Leia maisPromoção Comunicação
Promoção Comunicação 1 Propaganda, Promoção de Vendas e Publicidade 2 3 Mix de Comunicação de Marketing ou Mix de Promoção Consiste em uma composição de instrumentos de comunicação como propaganda, venda
Leia maisProgramação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009
Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome
Leia maisBanco de Dados I. Prof. Edson Thizon ethizon@bol.com.br
Banco de Dados I Prof. Edson Thizon ethizon@bol.com.br Conceitos Dados Fatos conhecidos que podem ser registrados e que possuem significado implícito Banco de dados (BD) Conjunto de dados interrelacionados
Leia maisArquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003
Arquitetura de Aplicações J2EE Jorge Fernandes Outubro de 2003 J2EE O que é Como se organiza Como funciona Elementos Arquitetura Típica Componentes de Software Reuso é um processo Publicar interfaces Distribuir
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 maisÁREA DO PROFESSOR (TUTOR)
ÁREA DO PROFESSOR (TUTOR) O MOODLE (Modular Object Oriented Dynamic Learning Environment) é um Ambiente Virtual de Ensino-Aprendizagem (AVEA) de código aberto, livre e gratuito que se mantém em desenvolvimento
Leia maisTutorial de utilização do Sistema de Abertura de Chamado Sumário
Tutorial de utilização do Sistema de Abertura de Chamado Sumário 1. Processo de atendimento...2 1.1. Porque abrir um chamado...2 1.2. Entendendo o processo de atendimento...2 1.3. Acessando o sistema...3
Leia maisBanco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010
Alcides Pamplona Linguagem de Programação CESBD 2010 Parte 2 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Controle de Transação Mapeamento Objeto-Relacional
Leia maisESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti
ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...
Leia maisSISTEMA OPERACIONAL - ANDROID
Manual do Usuário SISTEMA OPERACIONAL - ANDROID 1 1 Índice 1 Índice... 2 2 Introdução Protegido... 3 3 Instalação do APLICATIVO DOS PAIS... 4 3.1 Local de instalação do Filho Protegido... 5 3.2 Tela de
Leia maisaplicação arquivo Condições Gerais de Utilização
aplicação arquivo Condições Gerais de Utilização Manual das condições gerais que regulam a utilização dos serviços disponibilizados pela aplicação Arquivo, plataforma de gestão de informação, do Municipio
Leia maisUNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS
ESTUDO DE CASO I Uma das operações oferecidas pelos sistemas bancários para seus clientes é a emissão de extratos da conta corrente ou do cartão de crédito. Esses relatórios permitem que o cliente possa
Leia maisOrganização e Arquitetura de Computadores. Ivan Saraiva Silva
Organização e Arquitetura de Computadores Hierarquia de Memória Ivan Saraiva Silva Hierarquia de Memória A Organização de Memória em um computador é feita de forma hierárquica Registradores, Cache Memória
Leia maisTrabalhando com Mala Direta e Etiquetas de Endereçamento no BrOffice/LibreOffice
Departamento de Tecnologia da Informação Divisão de Relacionamento e Gestão do Conhecimento Trabalhando com Mala Direta e Etiquetas de Endereçamento no BrOffice/LibreOffice Criação de Etiquetas passo a
Leia mais