Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013

Tamanho: px
Começar a partir da página:

Download "Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013"

Transcrição

1 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 17

2 CUDA "Compute Unified Device Architecture" Parte 6 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 2 / 17

3 Outline 1 Bibliotecas do CUDA CUFFT CURAND CUBLAS CUSPARSE Thrust NPP CUDA Math Library N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 3 / 17

4 Bibliotecas do CUDA GPU-Accelerated Libraries CUFFT CUDA Fast Fourier Transforms (FFT) Library Documentação toolkit: CUFFT_Library.pdf CURAND Random Number Generator Documentação toolkit: CURAND_Library.pdf CUBLAS Complete BLAS library Documentação toolkit: CUBLAS_Library.pdf CUSPARSE Sparse Matrix library Documentação toolkit: CUSPARSE_Library.pdf Thrust Templated Parallel Algorithms & Data Structures Documentação toolkit: Thrust_Quick_Start_Guide.pdf NPP Thousands of Performance Primitives for Image & Video Processing Documentação toolkit: NPP_Library.pdf CUDA Math Library of high performance math routines Lista em math_functions.h N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 4 / 17

5 Bibliotecas do CUDA: CUFFT CUFFT CUDA Fast Fourier Transforms (FFT) Library Implementação eficiente de FFTs no CUDA Algumas características: Algoritmos baseados em Cooley-Tukey e Bluestein Interface simples simular com FFTW Transformações 1D, 2D e 3D de números reais e complexos Row-major order (C-order) para dados a 2D e 3D Transformações em precisão simples (SP) e precisão dupla (DP) Transformações "in-place" e "out-of-place" Tamanho da transformação 1D até 128 milhões de elementos Execução em "batch" para efectuar múltiplas transformações Execução "streamed asynchronous" Ouptut dos dados não normalizados: IFFT(FFT(A))=len(A)*A CUFFT Em 4 passos simples 1 Alocar espaço na memória do GPU 2 Criar um plano especificando a configuração da transformação tal como o tamanho e tipo (real, complexo, 1D, 2D,...) 3 Executar o plano tantas vezes quanto as requeridas, indicando o ponteiro para os dados criados no GPU no passo 1. 4 Destruir o plano e Libertar a memória N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 5 / 17

6 Bibliotecas do CUDA: CUFFT Exemplo # define NX 256 # define NY 128 c u f f t H a n d l e plan ; cufftcomplex idata, odata ; cudamalloc ( ( void )& idata, sizeof ( cufftcomplex ) NX NY ) ; cudamalloc ( ( void )& odata, sizeof ( cufftcomplex ) NX NY ) ; (... ) / / Create a 2D FFT plan. c u f f t P l a n 2 d (& plan, NX,NY, CUFFT_C2C ) ; / / Use the CUFFT plan to transform the s i g n a l out of place. cufftexecc2c ( plan, idata, odata, CUFFT_FORWARD) ; / / Inverse transform the s i g n a l i n place. / / D i f f e r e n t p o i n t e r s to i n p u t and output arrays i m p l i e s / / out of place t r a n s f o r m a t i o n cufftexecc2c ( plan, odata, odata, CUFFT_INVERSE ) ; (... ) / / Destroy the CUFFT plan. c u f f t D e s t r o y ( plan ) ; cudafree ( i d a t a ), cudafree ( odata ) ; N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 6 / 17

7 Bibliotecas do CUDA: CURAND CURAND Random Number Generator Geradores: XORWOW pseudorandom generator MRG32k3a pseudorandom generator MTGP32 pseudorandom generator 32 and 64 bit SOBOL and Scrambled SOBOL quasirandom generators Algumas características: Host API for generating random numbers in bulk Inline implementation allows use inside GPU functions/kernels Single- and double-precision, uniform, normal and log-normal distributions N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 7 / 17

8 Bibliotecas do CUDA: CURAND CURAND Exemplo: XORWOW pseudorandom generator #include < s t d i o. h> #include < s t d l i b. h> #include <cuda. h> #include <curand_kernel. h> #define CUDA_CALL( x ) do { i f ( ( x )!= cudasuccess ) { \ p r i n t f ( " E r r o r at %s:%d \ n ", FILE, LINE ) ; return EXIT_FAILURE ; } } while ( 0 ) global void setup_kernel ( curandstate state ) ; global void generate_kernel ( curandstate state, unsigned i n t r e s u l t ) ; i n t main ( i n t argc, char argv [ ] ) { unsigned i n t t o t a l = 0; curandstate devstates ; unsigned i n t devresults, hostresults ; / A l l o c a t e space f o r r e s u l t s on host / hostresults = ( unsigned i n t ) c a l l o c (64 64, sizeof ( i n t ) ) ; / A l l o c a t e space f o r r e s u l t s on device / CUDA_CALL( cudamalloc ( ( void )& devresults, sizeof ( unsigned i n t ) ) ) ; / Set r e s u l t s to 0 / CUDA_CALL( cudamemset ( devresults, 0, sizeof ( unsigned i n t ) ) ) ; / Allocate space f o r prng states on device / CUDA_CALL( cudamalloc ( ( void )& devstates, sizeof ( curandstate ) ) ) ; (... ) N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 8 / 17

9 Bibliotecas do CUDA: CURAND CURAND Exemplo: XORWOW pseudorandom generator (... ) / / I n i t i a l i z e generator f o r every thread setup_kernel <<<64, 64>>>( devstates ) ; / Generate and use pseudo random / generate_kernel <<<64, 64>>>( devstates, devresults ) ; / Copy device memory to host / CUDA_CALL( cudamemcpy ( hostresults, devresults, sizeof ( unsigned i n t ), \ cudamemcpydevicetohost ) ) ; / Show r e s u l t / for ( i n t i = 0; i < 64 64; i ++) t o t a l += hostresults [ i ] ; p r i n t f ( " F r a c t i o n with low b i t set was %10.13 f \ n ", ( f l o a t ) t o t a l / (64.0 f 64.0 f f 50.0 f ) ) ; } / Cleanup / CUDA_CALL( cudafree ( devstates ) ) ; CUDA_CALL( cudafree ( devresults ) ) ; f r e e ( hostresults ) ; return EXIT_SUCCESS ; N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 9 / 17

10 Bibliotecas do CUDA: CURAND CURAND Exemplo: XORWOW pseudorandom generator global void setup_kernel ( curandstate state ) { i n t i d = threadidx. x + b l o ckidx. x blockdim. x ; / Each thread gets same seed, a d i f f e r e n t sequence number, no o f f s e t / c u r a n d _ i n i t (1234, id, 0, &s t a t e [ i d ] ) ; } global void generate_kernel ( curandstate state, unsigned i n t r e s u l t ) { i n t i d = threadidx. x + b l o ckidx. x blockdim. x ; i n t count = 0; unsigned i n t x ; / Copy s t a t e to l o c a l memory f o r e f f i c i e n c y / curandstate l o c a l S t a t e = s t a t e [ i d ] ; / Generate pseudo random unsigned i n t s / for ( i n t n = 0; n < 10000; n++) { x = curand (& l o c a l S t a t e ) ; / Check i f low b i t set / i f ( x & 1) { count ++; } } / Copy s t a t e back to g l o b a l memory / s t a t e [ i d ] = l o c a l S t a t e ; / Store r e s u l t s / r e s u l t [ i d ] += count ; } N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 10 / 17

11 Bibliotecas do CUDA: CUBLAS CUBLAS Complete BLAS library CUDA "Basic Linear Algebra Subprograms" Implementação standard do BLAS em CUDA Simples de usar: Criar matrizes e vectores na memória do GPU Preenche-los com os dados Chamar uma sequência de funções CUBLA Carregar os resultados do GPU para o host Column-major storage and 1-based indexing Para máxima compatibilidade com aplicações Fortran N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 11 / 17

12 Bibliotecas do CUDA: CUBLAS CUBLAS Exemplo de estrutura do código 1 Inicialização do CUBLAS: cublasinit() 2 Alocar memória e dados no CPU 3 Alocar memória no GPU: cublasalloc(...) 4 Copiar do CPU para o GPU: cublassetvector(...) 5 Operar no GPU: cublassgemm(...) 6 Verificar erro no CUBLAS: cublasgeterror() 7 Copiar do GPU para o CPU: cublasgetvector(...) 8 Verificar resultados 9 Libertar memória no GPU: cublasfree(...) 10 Desligar o CUBLAS : cublasshutdown() N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 12 / 17

13 Bibliotecas do CUDA: CUSPARSE Library CUSPARSE Sparse Matrix library New library for sparse basic linear algebra Conversion routines for dense, COO, CSR and CSC formats Optimized sparse matrix-vector multiplication Building block for sparse linear solvers N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 13 / 17

14 Bibliotecas do CUDA: Thrust Library Thrust Templated Parallel Algorithms & Data Structures A template library for CUDA Mimics the C++ STL Containers Manage memory on host and device: thrust :: host_vector<t>, thrust :device_vector<t> Help avoid common errors Iterators Know where data lives Define ranges: d_vec.begin() Algorithms Elementwise operations for_each, transform, gather, scatter,... Reductions reduce, inner_product, reduce_by_key,... Prefix-Sums inclusive_scan, inclusive_scan_by_key,... Sorting sort, stable_sort, sort_by_key,... Algorithms act on ranges and support general types and operators N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 14 / 17

15 Bibliotecas do CUDA: Thrust Library Thrust Example #include < t h r u s t / host_vector. h> #include < t h r u s t / device_vector. h> #include < t h r u s t / s o r t. h> #include < c s t d l i b. h> i n t main ( void ) { / / generate 32M random numbers on the host t h r u s t : : host_vector <int > h_vec (32 << 2 0 ) ; t h r u s t : : generate ( h_vec. begin ( ), h_vec. end ( ), rand ) ; / / t r a n s f e r data to the device t h r u s t : : device_vector <int > d_vec = h_vec ; / / s o r t data on the device (846M keys per sec on GeForce GTX 480) t h r u s t : : s o r t ( d_vec. begin ( ), d_vec. end ( ) ) ; / / t r a n s f e r data back to host t h r u s t : : copy ( d_vec. begin ( ), d_vec. end ( ), h_vec. begin ( ) ) ; } return 0; N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 15 / 17

16 Bibliotecas do CUDA: NPP Library NVIDIA Performance Primitives NPP NVIDIA Performance Primitives Up to 40x speedups C library of functions (primitives) Arithmetic, Logic, Conversions, Filters, well optimized Statistics, etc. low level API: easy integration Majority of into primitives existing code 5x to 10x faster than algorithmic analogous building routines blocks in Intel IPP actual operations execute on CUDA GPUs 1,000+ new image primitives in 4.1 Approximately 350 image processing functions Approximately 100 signal processing functions Image Processing Primitives Data exchange & initialization Set, Convert, CopyConstBorder, Copy, Transpose, SwapChannels Arithmetic & Logical Ops Add, Sub, Mul, Div, AbsDiff Threshold & Compare Ops Threshold, Compare Color Conversion RGB To YCbCr (& vice versa), ColorTwist, LUT_Linear Filter Functions * NPP 4.1, NVIDIA C2050 (Fermi) * IPP 6.1, Dual Socket Core i7 2.67GHz FilterBox, Row, Column, Max, Min, Dilate, Erode, SumWindowColumn/Row Geometry Transforms Resize, Mirror, WarpAffine/Back/Quad, WarpPerspective/Back/Quad Statistics Mean, StdDev, NormDiff, MinMax, Histogram, SqrIntegral, RectStdDev Segmentation Graph Cut N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 16 / 17

17 Bibliotecas do CUDA: CUDA Math Library CUDA Math Library Suporta precisão simples e dupla Básico: +, *, /, 1/, sqrt, FMA (all IEEE-754 accurate for float, double, all rounding modes) Exponentials: exp, exp2, log, log2, log10,... Trigonometry: sin, cos, tan, asin, acos, atan2, sinh, cosh, asinh, acosh,... Special functions: lgamma, tgamma, erf, erfc Utility: fmod, remquo, modf, trunc, round, ceil, floor, fabs,... Extras: rsqrt, rcbrt, exp10, sinpi, sincos, cospi, erfinv, erfcinv,... Bessel functions: j0, j1, jn, y0, y1, yn Scaled complementary error function: erfcx Average and rounded average: uhadd, {u}rhadd N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 17 / 17

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 11 CUDA Parte 2 N. Cardoso & P. Bicudo Programação em

Leia mais

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 12 CUDA Parte 3 N. Cardoso & P. Bicudo Programação em

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 23 CUDA "Compute Unified Device Architecture" Parte 2

Leia mais

Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU

Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU Francisco Ribacionka e Ettore Enrico (STI ) USP/STI/InterNuvem internuvem@usp.br Março -2016 Processamento de Alto Desempenho

Leia mais

Arquitetura e Programação de GPU. Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973

Arquitetura e Programação de GPU. Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973 Arquitetura e Programação de GPU Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973 Agenda Primeiras Placas de Vídeo Primeira GPU Arquitetura da GPU NVIDIA Arquitetura

Leia mais

Transparent application acceleration by intelligent scheduling of shared library calls on heterogeneous systems September 9, 2013

Transparent application acceleration by intelligent scheduling of shared library calls on heterogeneous systems September 9, 2013 Transparent application acceleration by intelligent scheduling of shared library calls on heterogeneous systems João Colaço, Adrian Matoga, Aleksandar Ilic, Nuno Roma, Pedro Tomás, Ricardo Chaves adrian.matoga@inesc-id.pt

Leia mais

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Paula Prata João Muranho Instituto de Telecomunicações Departamento de Informática Universidade da Beira Interior Instituto

Leia mais

Princípios de programação em Linguagem C++

Princípios de programação em Linguagem C++ Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Princípios de programação em Linguagem C++ 1 Introdução A Linguagem C++ é uma extensão da linguagem

Leia mais

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 19 CUDA "Compute Unified Device Architecture" Parte 1

Leia mais

Placa de vídeo em CUDA

Placa de vídeo em CUDA Placa de vídeo em CUDA Matheus Costa Leone de Souza Krystian Aparacido Resumo Quando você tem um cálculo que possa ser grande demais para você realizar a mão, a primeira solução que lhe vem a cabeça é

Leia mais

Mar 13, 2009 Roteiro Entrada & Saída Contêineres Algoritmos Exemplos Leitura simples #include // cin, cout, endl int a; float b; cin >> a >> b; if (cin) cout

Leia mais

Introdução a CUDA. Esteban Walter Gonzalez Clua. Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center START

Introdução a CUDA. Esteban Walter Gonzalez Clua. Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center START Introdução a CUDA START Esteban Walter Gonzalez Clua Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center 1536 cores Dynamic Parallelism Hyper - Q Pipeline

Leia mais

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA Luis Henrique Alves Lourenço Grupo de Visão, Robótica e Imagens Universidade Federal do Paraná 7 de abril de 2011 Sumário 1 Introdução

Leia mais

GPU-based Heterogeneous Systems [PCs (CPU + GPU) = Heterogeneous Systems]

GPU-based Heterogeneous Systems [PCs (CPU + GPU) = Heterogeneous Systems] GPU-based Heterogeneous Systems [PCs (CPU + GPU) = Heterogeneous Systems] Leonel Sousa and Lídia Kuan and Aleksandar Ili! General Outline GPU-based Heterogeneous Systems CHPS: Collaborative-execution-environment

Leia mais

O COMPUTADOR. Introdução à Computação

O COMPUTADOR. Introdução à Computação O COMPUTADOR Introdução à Computação Sumário O Hardware O Software Linguagens de Programação Histórico da Linguagem C Componentes Básicos do Computador O HARDWARE: O equipamento propriamente dito. Inclui:

Leia mais

Programação de Computadores I

Programação de Computadores I Programação de Computadores I Biblioteca sqrt() / pow() / floor / ceil() Gil Eduardo de Andrade Introdução #include A biblioteca contém várias funções para efetuar cálculos matemáticos;

Leia mais

Programação com Posix Threads

Programação com Posix Threads 9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.

Leia mais

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Curso de C Procedimentos e Funções 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Funções Roteiro: Funções Declaração e chamada Funções importantes Exemplos de funções Variáveis Globais,

Leia mais

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres Número de horas do programa: 60 horas Número de horas Semanal: 4 Horas Número

Leia mais

Linguagem 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 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 mais

Programando em C++ Histórico da Linguagem C

Programando 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 mais

Course Review for Midterm Exam 1. Cpt S 223 Fall 2010

Course Review for Midterm Exam 1. Cpt S 223 Fall 2010 Course Review for Midterm Exam 1 Cpt S 223 Fall 2010 1 Midterm Exam 1 When: Friday (10/15) 10:10-11am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides &

Leia mais

PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1

PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1 PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1 DUTRA, Evandro Rogério Fruhling 2 ; VARINI, Andre Luis 2 ; CANAL, Ana Paula 2 1 Trabalho de Iniciação Científica _UNIFRA 2 Ciência

Leia mais

Processamento de Sinal através do GPU

Processamento de Sinal através do GPU Processamento de Sinal através do GPU Relatório Final do Projecto Informático n.º 15/ 2007-8, ei15888 Relatório final submetido para avaliação parcial da unidade curricular de Projecto Informático, do

Leia mais

Aula 10 - Streams (Parte I)

Aula 10 - Streams (Parte I) Disciplina de TICs 1 - Introdução a Programação em GPGPU Aula 10 - Streams (Parte I) Introdução Até então foi visto como engenho de processamento paralelo massivo de dados nas GPUs pode aumentar assombrosamente

Leia mais

Programação em Paralelo OpenMP

Programaçã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 mais

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 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 mais

Programação Estruturada I

Programaçã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 mais

Fabrício Gomes Vilasbôas

Fabrício Gomes Vilasbôas Fabrício Gomes Vilasbôas Apresentação Placas Arquitetura Toolkit e Ferramentas de Debug Pensando em CUDA Programação CUDA Python Programação PyCUDA 1) Grids( padrão Globus) 2) Clusters ( padrão MPI) 3)

Leia mais

Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center

Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center Aplicações em CUDA Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center Roteiro l Introdução l Eventos l Aspectos históricos l Operações atômicas l Introdução sobre

Leia mais

Apresentação MATLAB Simulink & Toolboxes

Apresentação MATLAB Simulink & Toolboxes Apresentação MATLAB Simulink & Toolboxes Tel: (011)816-3144 / Fax:(011)816-7864 Email: info.vendas@opencadd.com.br 24.08.1999. Programa da Apresentação MATLAB 5.3: conceitos Toolboxes Symbolic Math Toolbox;

Leia mais

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Slides_Java_1 !$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code. Slides_Java_1!"#$!" $ % & $ Sistemas Informáticos I, 2005/2006 ( Java source code Compile javac Java bytecode Run java Output:!"#) %& Name of program. Must be the same as name of file.!"#$!"$ % & $ Where

Leia mais

Tipo de Dados em Linguagem C

Tipo de Dados em Linguagem C Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa

Leia mais

Introdução à Programação Aula 2 Introdução à linguagem Python

Introdução à Programação Aula 2 Introdução à linguagem Python Introdução à Programação Aula 2 Introdução à linguagem Python Pedro Vasconcelos DCC/FCUP 2015 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 1 / 24 Nesta

Leia mais

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEFINIDOS PELO USUÁRIO Prof. Protásio DEE UFPB 1 Estruturas É uma coleção de variáveis que são referenciadas sob um único nome. Uma estrutura fornece

Leia mais

Manual de Docência para a Disciplina de Análise Matemática II

Manual de Docência para a Disciplina de Análise Matemática II Universidade Fernando Pessoa Faculdade de Ciência e Tecnologia Manual de Docência para a Disciplina de Análise Matemática II Número de horas do programa: 90 horas Número de horas semanal: 6 horas Número

Leia mais

Edison Gustavo Muenz. Estudo e implementação de um algoritmo de processamento de imagens com técnicas GPGPU

Edison Gustavo Muenz. Estudo e implementação de um algoritmo de processamento de imagens com técnicas GPGPU Edison Gustavo Muenz Estudo e implementação de um algoritmo de processamento de imagens com técnicas GPGPU Florianópolis SC Agosto / 2008 Edison Gustavo Muenz Estudo e implementação de um algoritmo de

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

Leia mais

TESTE DE PERFORMANCE DO BANCO DE DADOS SQLITE

TESTE DE PERFORMANCE DO BANCO DE DADOS SQLITE TESTE DE PERFORMANCE DO BANCO DE DADOS SQLITE Rodrigo Luiz Pereira Lara 1, Aedra Marciana Virgílio 2, Leacir Nogueira Bastos 3, Brauliro Gonçalves Leal 4 RESUMO: Foi feita uma avaliação de performance

Leia mais

Algoritmos e Técnicas de

Algoritmos 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 mais

Aula 8- Standard Template Library. Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider

Aula 8- Standard Template Library. Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider Aula 8- Standard Template Library Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider STL Motivação... int int_array = 5; char **vetor = new char*[int_array]; for(int

Leia mais

CODIFICADORES / DECODIFICADORES

CODIFICADORES / DECODIFICADORES CODIFICADORES / DECODIFICADORES Uma grande parte dos sistemas digitais trabalha com os níveis lógicos (bits) representando informações que são codificadas em bits. Exemplo: computador trabalha com informações

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

2. Constantes e Variáveis

2. Constantes e Variáveis 2. Constantes e Variáveis Neste capitulo veremos como os dados constantes e variáveis são manipulados pela linguagem C. O que são constantes inteiras, reais, caracteres e strings. Quais são as regras de

Leia mais

ACOS ASIN CEIL. Código:

ACOS ASIN CEIL. Código: Este método tem a função de retornar o valor absoluto de um número. Isto significa que o valor será sempre positivo. Caso seja utilizado um valor negativo à este método. Ele será retornado como positivo.

Leia mais

Sistema de Entrada/Saída

Sistema de Entrada/Saída Conteúdo Ficheiros (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos 2006-2007 2 Descritores de ficheiros Descritores

Leia mais

Breve Introdução à Programação em MATLAB

Breve Introdução à Programação em MATLAB Breve Introdução à Programação em MATLAB Aulas Práticas de Aprendizagem Automática Ano Lectivo 2006/2007 Susana Nascimento Joaquim F. Silva Departamento de Informática snt@di.fct.unl.pt jfs@di.fct.unl.pt

Leia mais

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão. 14 3.2 Projeto da Unidade de Controle (VHDL) 3.2.1 Diagrama ASM (Algorithmic State Machine) ASM é um fluxograma através do qual se representa a seqüência de ações que a unidade de controle de um sistema

Leia mais

Programação em C++: Introdução

Programação em C++: Introdução Programação em C++: Introdução J. Barbosa J. Tavares Visualização Científica Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo

Leia mais

Introdução ao CUDA. Material elaborado por Davi Conte.

Introdução ao CUDA. Material elaborado por Davi Conte. Introdução ao CUDA Material elaborado por Davi Conte. O objetivo deste material é que o aluno possa iniciar seus conhecimentos em programação paralela, entendendo a diferença da execução de forma sequencial

Leia mais

Análise de desempenho e eficiência energética de aceleradores NVIDIA Kepler

Análise de desempenho e eficiência energética de aceleradores NVIDIA Kepler Análise de desempenho e eficiência energética de aceleradores NVIDIA Kepler Emilio Hoffmann, Bruno M. Muenchen, Taís T. Siqueira, Edson L. Padoin e Philippe O. A. Navaux Universidade Regional do Noroeste

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2016 Linguagem de Programação C 2 1 Linguagem de Programação C Os programas em C consistem em

Leia mais

Hitachi Unified Storage. Família HUS 100. Henrique Leite! henrique.leite@hds.com! Tuesday, 4 de September de 12! Solutions Consultant!

Hitachi Unified Storage. Família HUS 100. Henrique Leite! henrique.leite@hds.com! Tuesday, 4 de September de 12! Solutions Consultant! Hitachi Unified Storage Família HUS 100 Henrique Leite! Solutions Consultant! henrique.leite@hds.com! Tuesday, 4 de September de 12! 1 Hitachi Data Systems 2011. All rights reserved. AGENDA Direção do

Leia mais

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos:

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos: EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA SEC Turma C - 2012 / 2013 Notas sobre o MySQL: 1) A indicação mysql> é o prompt do sistema. 2) Uma instrução, no prompt do MySQL, deve terminar sempre com ponto

Leia mais

Waldemar Celes. 25 de Agosto de 2014

Waldemar Celes. 25 de Agosto de 2014 Introdução a CUDA INF2062 Tópicos em Simulação e Visualização Waldemar Celes celes@inf.puc-rio.br Tecgraf, DI/PUC-Rio 25 de Agosto de 2014 W. Celes Introdução a CUDA 1 GPGPU Programação de propósito geral

Leia mais

Introdução ao STATA vs. 9 (Banco de Dados)

Introdução ao STATA vs. 9 (Banco de Dados) Universidade Federal do Rio de Janeiro Faculdade de Medicina Departamento de Medicina Preventiva Núcleo de Estudos de Saúde Coletiva Disciplina: Estatística em Epidemiologia II Introdução ao STATA vs.

Leia mais

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

Conceitos Básicos sobre Programação Prática

Conceitos Básicos sobre Programação Prática Conceitos Básicos sobre Programação Prática Programa de computador conjunto de instruções e informação necessários ao alcance de um objectivo instruções + dados normalmente, guardados em ficheiros (em

Leia mais

Introdução à Programação

Introdução à Programação Aula Teórica 5: ciclos e funções Getchar e putchar Escrever e ler caracteres A função getchar da biblioteca stdio.h permite de receber exatamente um (1) carácter da o "teclado"ou stdin Definição: int getchar(void)

Leia mais

É a associação de mais de um fluxo de execução em um único processo.

É 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 mais

PARALELIZAÇÃO DE CÁLCULOS NUMÉRICOS DE REAÇÕES NUCLEARES DE PRÉ-EQUILÍBRIO

PARALELIZAÇÃO DE CÁLCULOS NUMÉRICOS DE REAÇÕES NUCLEARES DE PRÉ-EQUILÍBRIO Anais do 14 O Encontro de Iniciação Científica e Pós-Graduação do ITA XIV ENCITA / 2008 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 20 a 23 2008. PARALELIZAÇÃO DE CÁLCULOS

Leia mais

Collaborative Execution Environment for Heterogeneous Parallel Systems CHPS*

Collaborative Execution Environment for Heterogeneous Parallel Systems CHPS* Collaborative Execution Environment for Heterogeneous Parallel Systems CHPS* Aleksandar Ilić and Leonel Sousa *In 12th Workshop on Advances in Parallel and Distributed Computational Models (APDCM/IPDPS

Leia mais

Física Computacional 15 Templates

Física Computacional 15 Templates Física Computacional 15 Templates 1. Templates de classes 2. Templates de Funções 3-12-2009 Física Computacional - MEFT 2009/10 P. Bicudo, P. Martins & M. Cardoso 1 Já vimos que através da herança e de

Leia mais

Guia de Consulta Rápida C++ STL. Joel Saade. Novatec Editora

Guia de Consulta Rápida C++ STL. Joel Saade. Novatec Editora Guia de Consulta Rápida C++ STL Joel Saade Novatec Editora Guia de Consulta Rápida C++ STL de Joel Saade Copyright 2006 da Novatec Editora Ltda. Todos os direitos reservados. É proibida a reprodução desta

Leia mais

Estrutura de um programa em linguagem C

Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Exemplo de um programa em linguagem C Directivas de Pré-Processamento #include Declarações Globais Declarações

Leia mais

Comparação de eficiência entre OpenCL e CUDA

Comparação de eficiência entre OpenCL e CUDA Aluno: Thiago de Gouveia Nunes Orientador: Prof. Marcel P. Jackowski GPGPU O que é GPGPU? É programação de propósito geral em GPUs. =D GPGPU Existem 2 linguagens populares no mercado para GPGPU, o CUDA

Leia mais

Algoritmos e Programação

Algoritmos 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 mais

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

ITENS 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 mais

Sistemas de Operação (2018/2019) Ficha 2

Sistemas de Operação (2018/2019) Ficha 2 Sistemas de Operação (2018/2019) Ficha 2 Q1. Recorde a definição de número complexo z C. Um número complexo z tem a forma a + bi, onde a, b R. Os valores a e b representam, respectivamente, as partes real

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Funções Classes de armazenamento

Leia mais

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions

Leia mais

COMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0

COMPUTAÇÃ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 mais

Eng. Thársis T. P. Souza

Eng. Thársis T. P. Souza Introdução à Computação de Alto Desempenho Utilizando GPU Seminário de Programação em GPGPU Eng. Thársis T. P. Souza t.souza@usp.br Instituto de Matemática e Estatística - Universidade de São Paulo Introdução

Leia mais

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA. Representação de Dados Tipos de dados: Caracteres (letras, números n e símbolos). s Lógicos. Inteiros. Ponto flutuante: Notações decimais: BCD. A declaração de uma variável vel define o seu tipo. O tipo

Leia mais

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis Sistemas e Sinais Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo Automação e

Leia mais

Treinamento PostgreSQL - Aula 03

Treinamento PostgreSQL - Aula 03 Treinamento PostgreSQL - Aula 03 Eduardo Ferreira dos Santos SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com 29 de Maio de 2013 Eduardo Ferreira dos Santos

Leia mais

MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos

MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos Aula 1: Introdução à programação paralela e ao ambiente de programação CUDA Profs.: Daniel Alfaro e Silvana Rossetto

Leia mais

Introdução sobre Scilab

Introdução sobre Scilab Ivanovitch Medeiros Dantas da Silva Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação DCA0399 - Métodos Computacionais para Engenharia Civil Natal, 14 de

Leia mais

Circuitos/Sistemas Integrados Digitais (CID/SID)

Circuitos/Sistemas Integrados Digitais (CID/SID) Circuitos/Sistemas Integrados Digitais (CID/SID) Ano Lectivo 2002/03 1 a Trabalho de Laboratório Paulo Flores, Horácio Neto 1 Objectivos Pretende-se com este trabalho de laboratório introduzir e familiarizar

Leia mais

CEFET-RS Curso de Eletrônica

CEFET-RS Curso de Eletrônica CEFET-RS Curso de Eletrônica 3.1 - Memória DRAM Profs. Roberta Nobre & Sandro Silva robertacnobre@gmail.com e sandro@cefetrs.tche.br Estrutura básica da DRAM LSB CAS Decodificador de Colunas Endereço Real

Leia mais

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I ESTUDO DE CASO I Um sistema de gestão patrimonial permite relacionar todos os bens de uma organização a fim de garantir sua integridade patrimonial. Esse tipo de sistema tem como finalidade automatizar

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à Multithreading. Introdução à Multithreading: execução concorrente de tarefas. Exemplos usando a biblioteca C Run-time library. Prof.

Leia mais

Algoritmo e Técnica de Programação - Linguagem C

Algoritmo 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 mais

==> typedef int m_channel_t Channel datatype Um canal é um número e identifica um tipo de mailbox (tal como um número de porta faz).

==> typedef int m_channel_t Channel datatype Um canal é um número e identifica um tipo de mailbox (tal como um número de porta faz). Documentação das principais funções fornecidas pela API MSG da ferramenta de simulaçao SimGrid. Essa documentação foi criada seguindo o estudo e análise das funções utilizadas na modelagem da XtremWeb,

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 3 Tipos de dados Funções, Operadores e Expressões Vectores Matrizes Utilização de funções com vectores e matrizes D.E.M. Área Científica

Leia mais

História. Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega.

História. Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega. 1 1. Overview 2 História Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega. Matz procurava por uma linguagem de script orientada a objetos. A primeira versão estável de Ruby (1.2) foi

Leia mais

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo André J. Bianchi 21/10/2013 1 / 33 1 Introdução 2 Metodologia 3 Arduino 4 GPU 5 Android 6 Conclusão

Leia mais

INTRODUÇÃO AO CUDA UTILIZANDO MÉTODOS NUMÉRICOS

INTRODUÇÃO AO CUDA UTILIZANDO MÉTODOS NUMÉRICOS CENTRO UNIVERSITÁRIO VILA VELHA CURSO DE CIÊNCIA DA COMPUTAÇÃO Kassiane de Almeida Pretti Rocha Luciano José Varejão Fassarella Filho INTRODUÇÃO AO CUDA UTILIZANDO MÉTODOS NUMÉRICOS VILA VELHA 2010 Kassiane

Leia mais

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00 Fundamentos da Programação 32 A. Conceito Variáveis contém dados: VIII. VARIÁVEIS de entrada que o computador precisa manipular; de saída que o computador precisa imprimir; e temporários, utilizados de

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Conversão de tipos. Alocação dinâmica de memória. Recursão. Aula 16 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação

Leia mais

Introdução a Computação

Introduçã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 mais

Manual do Usuário - JIDOSHA

Manual do Usuário - JIDOSHA Manual do Usuário - JIDOSHA Biblioteca de Software para Reconhecimento Automático de Placas Veiculares Versão 1.5.18 Última atualização: 2015/07 1 Visão Geral 1.1 Condições Gerais 1.2 Licença de software

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Física Computacional 3 mem. estática e dinâmica

Física Computacional 3 mem. estática e dinâmica Física Computacional 3 mem. estática e dinâmica 1. Revisão de arrays 2. Revisão de ponteiros e ponteiros para ponteiros 3. Ponteiros para funções 4. Préprocessador: headers 5. Mais à frente: estruturas

Leia mais

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios David Déharbe 1 1 Objetivos da aula Complementar os conhecimentos sobre a construção de expressões Novos tipos para valores

Leia mais

Resumo 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. 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 mais

Computação II Orientação a Objetos

Computaçã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 mais

Programação Paralela em GPU

Programação Paralela em GPU Programação Paralela em GPU Conceitos e paradigmas Rogério Perino de O. Neves Universidade Federal do ABC rogerio.neves@ufabc.edu.br Roteiro Informações gerais Conceitos de computação paralela Por que

Leia mais