O documento discute o uso de clusters gráficos para aplicações gráficas. Ele introduz clusters e explica como eles podem fornecer desempenho superior ao usar múltiplos computadores. Também descreve técnicas como data-lock e sort-first para sincronizar nós em um cluster gráfico e manter a coerência dos dados. Por fim, apresenta a biblioteca LibGlass que fornece APIs para desenvolvimento de aplicações gráficas distribuídas em clusters.
O documento introduz o desenvolvimento de jogos 2D/3D para dispositivos móveis usando Java ME. Discute as vantagens de Java ME, como portabilidade e ferramentas de desenvolvimento, e descreve a plataforma Java ME e o ciclo de vida de um MIDlet. Também aborda os desafios do desenvolvimento de jogos com MIDP/CLDC 1.0 e apresenta a Game API como uma solução que oferece recursos adicionais como suporte a ponto flutuante, som e detecção de múltiplas teclas.
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...PotiLivre Sobrenome
O documento discute fundamentos de processamento digital de imagens, incluindo: 1) o que é uma imagem monocromática matematicamente; 2) exemplos de áreas que utilizam processamento de imagens como radiologia e agricultura; 3) passos fundamentais do processamento de imagens como aquisição, pré-processamento, melhoria e segmentação. O documento também apresenta o software livre GNU Octave como uma ferramenta para processamento de imagens e exemplos práticos de código.
O documento introduz conceitos básicos do OpenGL e GLUT, incluindo:
- OpenGL é uma API para desenvolvimento gráfico em 3D. GLUT é uma biblioteca que facilita a criação de janelas e tratamento de eventos no OpenGL.
- O OpenGL funciona como uma máquina de estados que podem ser ligados ou desligados para controlar aspectos visuais.
- GLUT provê funções para criação de janelas, tratamento de eventos, redraw e loop principal da aplicação.
O documento apresenta dois pesquisadores do LIDET, Ary Fagundes Bressane Neto e Flávio Soares Corrêa da Silva, e fornece informações sobre suas formações acadêmicas e experiências. Também descreve a Universidade de São Paulo, o Departamento de Ciência da Computação e o Laboratório LIDET, incluindo suas atividades de pesquisa e ensino.
O documento discute as características dinâmicas da linguagem Python, destacando que variáveis tem tipos dinâmicos, não necessita de interfaces e tem uma abordagem de "baterias incluídas". Também menciona recursos básicos como strings, números, tuplas, listas e dicionários, além de classes, métodos especiais e leitura de metadados.
Marcelo Nicoletti Franchin, professor da UNESP, comprova: qualquer pessoa é capaz de aprender como controlar os menores motores disponíveis no mercado, inclusive para construir seus próprios robôs durante o evento. Participe e acompanhe de perto o passo a passo deste processo!
O documento discute conceitos de segurança em redes, incluindo propriedades essenciais como confidencialidade, integridade e disponibilidade. Também aborda ameaças comuns como interceptação, modificação e interrupção e exemplos de ataques como sniffing, spoofing e denial of service. Por fim, explica mecanismos de proteção como firewalls e sistemas de detecção de intrusão.
O documento introduz o desenvolvimento de jogos 2D/3D para dispositivos móveis usando Java ME. Discute as vantagens de Java ME, como portabilidade e ferramentas de desenvolvimento, e descreve a plataforma Java ME e o ciclo de vida de um MIDlet. Também aborda os desafios do desenvolvimento de jogos com MIDP/CLDC 1.0 e apresenta a Game API como uma solução que oferece recursos adicionais como suporte a ponto flutuante, som e detecção de múltiplas teclas.
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...PotiLivre Sobrenome
O documento discute fundamentos de processamento digital de imagens, incluindo: 1) o que é uma imagem monocromática matematicamente; 2) exemplos de áreas que utilizam processamento de imagens como radiologia e agricultura; 3) passos fundamentais do processamento de imagens como aquisição, pré-processamento, melhoria e segmentação. O documento também apresenta o software livre GNU Octave como uma ferramenta para processamento de imagens e exemplos práticos de código.
O documento introduz conceitos básicos do OpenGL e GLUT, incluindo:
- OpenGL é uma API para desenvolvimento gráfico em 3D. GLUT é uma biblioteca que facilita a criação de janelas e tratamento de eventos no OpenGL.
- O OpenGL funciona como uma máquina de estados que podem ser ligados ou desligados para controlar aspectos visuais.
- GLUT provê funções para criação de janelas, tratamento de eventos, redraw e loop principal da aplicação.
O documento apresenta dois pesquisadores do LIDET, Ary Fagundes Bressane Neto e Flávio Soares Corrêa da Silva, e fornece informações sobre suas formações acadêmicas e experiências. Também descreve a Universidade de São Paulo, o Departamento de Ciência da Computação e o Laboratório LIDET, incluindo suas atividades de pesquisa e ensino.
O documento discute as características dinâmicas da linguagem Python, destacando que variáveis tem tipos dinâmicos, não necessita de interfaces e tem uma abordagem de "baterias incluídas". Também menciona recursos básicos como strings, números, tuplas, listas e dicionários, além de classes, métodos especiais e leitura de metadados.
Marcelo Nicoletti Franchin, professor da UNESP, comprova: qualquer pessoa é capaz de aprender como controlar os menores motores disponíveis no mercado, inclusive para construir seus próprios robôs durante o evento. Participe e acompanhe de perto o passo a passo deste processo!
O documento discute conceitos de segurança em redes, incluindo propriedades essenciais como confidencialidade, integridade e disponibilidade. Também aborda ameaças comuns como interceptação, modificação e interrupção e exemplos de ataques como sniffing, spoofing e denial of service. Por fim, explica mecanismos de proteção como firewalls e sistemas de detecção de intrusão.
O documento fornece uma introdução ao OpenGL, descrevendo seu histórico desde os anos 1980, arquitetura e pipeline de renderização. Explica como o OpenGL surgiu como um padrão aberto para computação gráfica após padrões proprietários.
Aplicando o poder de uma GPU noSQL Serverpichiliani
O documento discute o uso de processamento gráfico (GPU) no SQL Server. Ele explica o que é uma GPU e como ela pode ser usada para processamento paralelo, mencionando exemplos de aplicações como multiplicação de matrizes. Também descreve como programar no SQL Server usando frameworks como o CUDA.NET para executar código na GPU. Por fim, ressalta que embora o uso de GPU traga grande poder de processamento, requer conhecimento de programação paralela e que o problema seja adequado para esse tipo de solução.
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...André Curvello
O documento propõe acelerar algoritmos de visão computacional em sistemas embarcados utilizando GPUs embarcadas através de OpenGL ES 2.0. O autor desenvolve e avalia o desempenho de aplicações de processamento de imagens em GPU comparando com implementações em CPU utilizando OpenCV. Os resultados demonstram ganhos de desempenho significativos ao executar algoritmos como o filtro de Sobel na GPU.
Paralelização de Algoritmo do Produto EscalarWendel Oliveira
Artigo: https://1drv.ms/b/s!Aq6i6K-GwXx8qVk6h62d5csaNzl9
Este artigo avalia a implementação de uma biblioteca de classes em C++ para algoritmos concorrente e paralelo para realizar o produto escalar, uma operação usada na criação de classificadores lineares para algoritmos de aprendizado de máquina. As classes foram desenvolvidas em linguagem de programação paralela CUDA (Compute Unified Device Architecture), explorando recursos de GPU's, e em linguagem C++ com uma API de programação de memória compartilhada OpenMP, utilizando os recursos das CPU's. Ao final, o artigo discute a redução do custo computacional do produto escalar comparando essas abordagens com a implementação convencional, sequencial, realizada em CPU.
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisIgor José F. Freitas
Este documento resume um trabalho de doutorado sobre a implementação de um simulador eletromagnético em um ambiente de grades computacionais. O trabalho teve como objetivos implementar o middleware UNICORE 6, desenvolver um modelador básico e módulo de pós-processamento, e integrar o simulador SSAR-BR às grades computacionais para simulações distribuídas. Os resultados validaram o simulador desenvolvido por meio de comparações com estudos anteriores.
O que é computação paralela?
Imagine que você precisa realizar um cálculo muito extenso em pouquíssimo tempo. Para realizar tal tarefa, você chama um grupo de amigos e divide esse cálculo em partes, uma para cada amigo. Depois de realizado o cálculo de cada parte, você junta os resultados obtidos para conseguir o resultado final desse calculo extenso.
INFORMÁTICA EM SERIE
Tradicionalmente, o software foi escrito para computação em série: Um problema é dividido em uma série discreta de instruções
As instruções são executadas sequencialmente uma após a outra
Executado em um único processador
Apenas uma instrução pode ser executada a qualquer momento no tempo
No sentido mais simples, a computação paralela é o uso simultâneo de múltiplos recursos computacionais para resolver um problema computacional: Um problema é dividido em partes discretas que podem ser resolvidas simultaneamente.
Cada parte é dividida em uma série de instruções.
As instruções de cada peça executam simultaneamente em diferentes processadores.
Um mecanismo geral de controle / coordenação é empregado
O processo computacional deve ser capaz de:
Ser dividido em peças discretas que podem ser resolvidas simultaneamente;
Executar várias instruções do programa a qualquer momento;
Ser resolvido em menos tempo com vários recursos de computação do que com um único recurso de computação.
Os recursos de computação são tipicamente:
Um único computador com vários processadores / núcleos
Um número arbitrário de tais computadores conectados por uma rede
Praticamente todos os computadores autônomos hoje são paralelos a partir de uma perspectiva de hardware: Várias unidades funcionais (cache L1, cache L2, ramificação, prefetch, decodificação, ponto flutuante, processamento gráfico (GPU), número inteiro, etc.)
Unidades / núcleos de execução múltipla
Múltiplos segmentos de hardware
As redes conectam múltiplos computadores autônomos (nós) para criar conjuntos de computadores paralelos maiores.
A maioria dos grandes computadores paralelos do mundo (supercomputadores) são clusters de hardware produzidos por um punhado de vendedores (principalmente) bem conhecidos
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGustavo Concon
Palestra sobre case apresentado no QConSP 2013, com uma diversidade de produtos da plataforma Google e como endereçamos requisitos tradicionais de Enterprise Apps na plataforma.
O documento discute a implementação de MapReduce em GPUs (Unidades de Processamento Gráfico) para obter melhor desempenho. Ele descreve o framework Mars que mapeia as tarefas de Map e Reduce do MapReduce para threads em GPUs. Os testes com o Mars mostraram melhorias de até 16 vezes no desempenho em comparação com CPUs para alguns algoritmos como contagem de palavras e índice invertido. No entanto, implementar MapReduce em GPUs também apresenta desafios devido à menor memória cache e transferência de dados entre a CPU e GPU.
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...Marcio Machado Pereira
Este documento apresenta uma nova abordagem para detecção e extração de paralelismo em programas Java baseada em transações de software. A proposta encapsula partes do corpo de laços em transações para executá-las em paralelo, garantindo a semântica sequencial através de um modelo de transações ordenadas. Dois linhas de pesquisa são apresentadas: paralelização com suporte de STM e seleção e especulação de arestas críticas nos grafos de dependência para aumentar o paralelismo. Experimentos pretendem medir o ganho de
O documento discute ferramentas de planejamento e controle de versão. Apresenta ferramentas de planejamento como MS Project e OpenProj e discute os modelos centralizado e distribuído de controle de versão, apresentando ferramentas como Git, SVN e Mercurial. Por fim, faz um estudo de caso sobre o uso do Redmine e SVN na Universidade Federal de Sergipe.
Este documento fornece um resumo sobre o framework Qt, incluindo sua história, principais módulos e ferramentas, e novidades futuras. O Qt é um framework multiplataforma em C++ amplamente usado para desenvolvimento de interfaces gráficas e também aplicações não-GUI. Ele oferece suporte a várias plataformas como Windows, Linux, Mac OS e sistemas embarcados.
Mini-curso Programação Paralela e DistribuídaDeivid Martins
O documento apresenta uma introdução à programação paralela e distribuída, discutindo arquiteturas paralelas, programação para sistemas com memória compartilhada usando CPAR e OpenMP, e programação para sistemas distribuídos usando MPI. Ferramentas como CPAR e MPI são apresentadas como meios para desenvolver aplicações paralelas e distribuídas.
O documento descreve a história e as características do sistema operacional de tempo real QNX Neutrino. Desenvolvido inicialmente em 1980, o QNX foi reescrito várias vezes para maior compatibilidade com POSIX e suporte a multiprocessamento. Atualmente é usado extensivamente em automóveis e outros sistemas embarcados, tendo arquitetura de microkernel e suporte a tempo real, comunicação interprocessos, desenvolvimento POSIX e multiplataforma.
1) Muitos aplicativos de software precisarão ser modificados para aproveitar processadores multicore, dividindo tarefas em threads para serem executadas simultaneamente.
2) Há diferentes abordagens para programação multithread como segmentação explícita e métodos dirigidos pelo compilador como OpenMP.
3) Desenvolvedores precisarão testar aplicações multithread para evitar bugs como condições de corrida e otimizar o desempenho aproveitando todos os núcleos da CPU.
Este Slide foi feito para uma palestra sobre Jogos Digitais em Java, mostrando padrões e similaridades existentes em diferentes abientes, como por exemplo (Criando um jogo em Java no Android ou PC).
Este documento descreve um sistema de preservação digital distribuído para armazenar dados de forma segura e a baixo custo. Ele discute a motivação, o serviço proposto baseado em replicação de dados em vários repositórios, a implementação do protótipo e conclusões.
Algoritmos e Estruturas de Dados, edição de 2013/2014Pedro Guerreiro
Slides da cadeira Algoritmos e Estrutura de Dados, edição de 2013/2014, licenciatura em engenharia informática, Universidade do Algarve. Cobre as estruturas de dados básicas (pilhas, filas), Union-Find, algoritmos de ordenação, filas com prioridade, árvores e tabelas de dispersão.
Baseia-se em ideias e código do livro "Algorithms (4th ed.) de Robert Sedgewick e Kevin Wayne. No entanto, todos os programas foram apresentados nos slides foram reescritos usando um estilo de programação Java ligeiramente diferente.
Slides da apresentação feita no HUGSP#6 em 29/01/2020. Apresenta a DSL para definição de sistemas baseados em microserviços e gerador para criar artefatos Terraform para deploy em diferentes plataformas.
O documento discute as vantagens do WordPress como plataforma para desenvolvimento de sites e redes sociais. Inicialmente criado para blogs, o WordPress evoluiu para ser um sistema de gerenciamento de conteúdo (CMS) flexível com milhares de plugins e temas disponíveis que o tornam uma ferramenta poderosa e amigável para criação de sites de todos os portes.
Buracos negros são regiões do espaço-tempo onde a gravidade é tão forte que nada, nem mesmo a luz, pode escapar. Eles se formam quando estrelas massivas colapsam ao final de suas vidas e podem ser detectados quando a matéria que cai neles emite radiação. A fonte Cygnus X-1 é um possível buraco negro detectado por variar e desaparecer periodicamente sua emissão de raios-X.
O documento fornece uma introdução ao OpenGL, descrevendo seu histórico desde os anos 1980, arquitetura e pipeline de renderização. Explica como o OpenGL surgiu como um padrão aberto para computação gráfica após padrões proprietários.
Aplicando o poder de uma GPU noSQL Serverpichiliani
O documento discute o uso de processamento gráfico (GPU) no SQL Server. Ele explica o que é uma GPU e como ela pode ser usada para processamento paralelo, mencionando exemplos de aplicações como multiplicação de matrizes. Também descreve como programar no SQL Server usando frameworks como o CUDA.NET para executar código na GPU. Por fim, ressalta que embora o uso de GPU traga grande poder de processamento, requer conhecimento de programação paralela e que o problema seja adequado para esse tipo de solução.
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...André Curvello
O documento propõe acelerar algoritmos de visão computacional em sistemas embarcados utilizando GPUs embarcadas através de OpenGL ES 2.0. O autor desenvolve e avalia o desempenho de aplicações de processamento de imagens em GPU comparando com implementações em CPU utilizando OpenCV. Os resultados demonstram ganhos de desempenho significativos ao executar algoritmos como o filtro de Sobel na GPU.
Paralelização de Algoritmo do Produto EscalarWendel Oliveira
Artigo: https://1drv.ms/b/s!Aq6i6K-GwXx8qVk6h62d5csaNzl9
Este artigo avalia a implementação de uma biblioteca de classes em C++ para algoritmos concorrente e paralelo para realizar o produto escalar, uma operação usada na criação de classificadores lineares para algoritmos de aprendizado de máquina. As classes foram desenvolvidas em linguagem de programação paralela CUDA (Compute Unified Device Architecture), explorando recursos de GPU's, e em linguagem C++ com uma API de programação de memória compartilhada OpenMP, utilizando os recursos das CPU's. Ao final, o artigo discute a redução do custo computacional do produto escalar comparando essas abordagens com a implementação convencional, sequencial, realizada em CPU.
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisIgor José F. Freitas
Este documento resume um trabalho de doutorado sobre a implementação de um simulador eletromagnético em um ambiente de grades computacionais. O trabalho teve como objetivos implementar o middleware UNICORE 6, desenvolver um modelador básico e módulo de pós-processamento, e integrar o simulador SSAR-BR às grades computacionais para simulações distribuídas. Os resultados validaram o simulador desenvolvido por meio de comparações com estudos anteriores.
O que é computação paralela?
Imagine que você precisa realizar um cálculo muito extenso em pouquíssimo tempo. Para realizar tal tarefa, você chama um grupo de amigos e divide esse cálculo em partes, uma para cada amigo. Depois de realizado o cálculo de cada parte, você junta os resultados obtidos para conseguir o resultado final desse calculo extenso.
INFORMÁTICA EM SERIE
Tradicionalmente, o software foi escrito para computação em série: Um problema é dividido em uma série discreta de instruções
As instruções são executadas sequencialmente uma após a outra
Executado em um único processador
Apenas uma instrução pode ser executada a qualquer momento no tempo
No sentido mais simples, a computação paralela é o uso simultâneo de múltiplos recursos computacionais para resolver um problema computacional: Um problema é dividido em partes discretas que podem ser resolvidas simultaneamente.
Cada parte é dividida em uma série de instruções.
As instruções de cada peça executam simultaneamente em diferentes processadores.
Um mecanismo geral de controle / coordenação é empregado
O processo computacional deve ser capaz de:
Ser dividido em peças discretas que podem ser resolvidas simultaneamente;
Executar várias instruções do programa a qualquer momento;
Ser resolvido em menos tempo com vários recursos de computação do que com um único recurso de computação.
Os recursos de computação são tipicamente:
Um único computador com vários processadores / núcleos
Um número arbitrário de tais computadores conectados por uma rede
Praticamente todos os computadores autônomos hoje são paralelos a partir de uma perspectiva de hardware: Várias unidades funcionais (cache L1, cache L2, ramificação, prefetch, decodificação, ponto flutuante, processamento gráfico (GPU), número inteiro, etc.)
Unidades / núcleos de execução múltipla
Múltiplos segmentos de hardware
As redes conectam múltiplos computadores autônomos (nós) para criar conjuntos de computadores paralelos maiores.
A maioria dos grandes computadores paralelos do mundo (supercomputadores) são clusters de hardware produzidos por um punhado de vendedores (principalmente) bem conhecidos
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGustavo Concon
Palestra sobre case apresentado no QConSP 2013, com uma diversidade de produtos da plataforma Google e como endereçamos requisitos tradicionais de Enterprise Apps na plataforma.
O documento discute a implementação de MapReduce em GPUs (Unidades de Processamento Gráfico) para obter melhor desempenho. Ele descreve o framework Mars que mapeia as tarefas de Map e Reduce do MapReduce para threads em GPUs. Os testes com o Mars mostraram melhorias de até 16 vezes no desempenho em comparação com CPUs para alguns algoritmos como contagem de palavras e índice invertido. No entanto, implementar MapReduce em GPUs também apresenta desafios devido à menor memória cache e transferência de dados entre a CPU e GPU.
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...Marcio Machado Pereira
Este documento apresenta uma nova abordagem para detecção e extração de paralelismo em programas Java baseada em transações de software. A proposta encapsula partes do corpo de laços em transações para executá-las em paralelo, garantindo a semântica sequencial através de um modelo de transações ordenadas. Dois linhas de pesquisa são apresentadas: paralelização com suporte de STM e seleção e especulação de arestas críticas nos grafos de dependência para aumentar o paralelismo. Experimentos pretendem medir o ganho de
O documento discute ferramentas de planejamento e controle de versão. Apresenta ferramentas de planejamento como MS Project e OpenProj e discute os modelos centralizado e distribuído de controle de versão, apresentando ferramentas como Git, SVN e Mercurial. Por fim, faz um estudo de caso sobre o uso do Redmine e SVN na Universidade Federal de Sergipe.
Este documento fornece um resumo sobre o framework Qt, incluindo sua história, principais módulos e ferramentas, e novidades futuras. O Qt é um framework multiplataforma em C++ amplamente usado para desenvolvimento de interfaces gráficas e também aplicações não-GUI. Ele oferece suporte a várias plataformas como Windows, Linux, Mac OS e sistemas embarcados.
Mini-curso Programação Paralela e DistribuídaDeivid Martins
O documento apresenta uma introdução à programação paralela e distribuída, discutindo arquiteturas paralelas, programação para sistemas com memória compartilhada usando CPAR e OpenMP, e programação para sistemas distribuídos usando MPI. Ferramentas como CPAR e MPI são apresentadas como meios para desenvolver aplicações paralelas e distribuídas.
O documento descreve a história e as características do sistema operacional de tempo real QNX Neutrino. Desenvolvido inicialmente em 1980, o QNX foi reescrito várias vezes para maior compatibilidade com POSIX e suporte a multiprocessamento. Atualmente é usado extensivamente em automóveis e outros sistemas embarcados, tendo arquitetura de microkernel e suporte a tempo real, comunicação interprocessos, desenvolvimento POSIX e multiplataforma.
1) Muitos aplicativos de software precisarão ser modificados para aproveitar processadores multicore, dividindo tarefas em threads para serem executadas simultaneamente.
2) Há diferentes abordagens para programação multithread como segmentação explícita e métodos dirigidos pelo compilador como OpenMP.
3) Desenvolvedores precisarão testar aplicações multithread para evitar bugs como condições de corrida e otimizar o desempenho aproveitando todos os núcleos da CPU.
Este Slide foi feito para uma palestra sobre Jogos Digitais em Java, mostrando padrões e similaridades existentes em diferentes abientes, como por exemplo (Criando um jogo em Java no Android ou PC).
Este documento descreve um sistema de preservação digital distribuído para armazenar dados de forma segura e a baixo custo. Ele discute a motivação, o serviço proposto baseado em replicação de dados em vários repositórios, a implementação do protótipo e conclusões.
Algoritmos e Estruturas de Dados, edição de 2013/2014Pedro Guerreiro
Slides da cadeira Algoritmos e Estrutura de Dados, edição de 2013/2014, licenciatura em engenharia informática, Universidade do Algarve. Cobre as estruturas de dados básicas (pilhas, filas), Union-Find, algoritmos de ordenação, filas com prioridade, árvores e tabelas de dispersão.
Baseia-se em ideias e código do livro "Algorithms (4th ed.) de Robert Sedgewick e Kevin Wayne. No entanto, todos os programas foram apresentados nos slides foram reescritos usando um estilo de programação Java ligeiramente diferente.
Slides da apresentação feita no HUGSP#6 em 29/01/2020. Apresenta a DSL para definição de sistemas baseados em microserviços e gerador para criar artefatos Terraform para deploy em diferentes plataformas.
O documento discute as vantagens do WordPress como plataforma para desenvolvimento de sites e redes sociais. Inicialmente criado para blogs, o WordPress evoluiu para ser um sistema de gerenciamento de conteúdo (CMS) flexível com milhares de plugins e temas disponíveis que o tornam uma ferramenta poderosa e amigável para criação de sites de todos os portes.
Buracos negros são regiões do espaço-tempo onde a gravidade é tão forte que nada, nem mesmo a luz, pode escapar. Eles se formam quando estrelas massivas colapsam ao final de suas vidas e podem ser detectados quando a matéria que cai neles emite radiação. A fonte Cygnus X-1 é um possível buraco negro detectado por variar e desaparecer periodicamente sua emissão de raios-X.
O objetivo da palestra é valorizar o esforço dos programadores que criaram os jogos clássicos do Atari 2600. Uma apresentação básica da arquitetura (em particular das limitações de CPU/memória e do chip TIA), montagem e rodagem, em um emulador, de um pequeno experimento, demonstrando a complexidade envolvida na criação de um jogo completo.
Palestrante
Carlos Duarte do Nascimento
Matemático pelo IME/USP e Gerente de Produto no Apontador, faz "artesanato" de software há 20 anos, defendendo plataformas e conteúdo livres.
Uma palestra para explorar o Google App Engine (GAE), uma plataforma de desenvolvimento e hospedagem de aplicações web na nuvem. Aplicativos fáceis de criar, manter e escalar.
Palestrante: Carlos Duarte do Nascimento
Matemático pelo IME/USP e Gerente de Produto no Apontador, faz "artesanato" de software há 20 anos, defendendo plataformas e conteúdo livres.
Quem nunca perdeu um arquivo após deletar algo por engano na máquina fotográfica, computador ou celular? Ou ainda, quem nunca formatou um pendrive ou partição de disco sem querer? Veja como utilizar técnicas de Forense Computacional para recuperar arquivos apagados. Recuperações a partir de dados ainda existentes na memória RAM e demonstrações ao vivo.
Palestrante: João Eriberto Mota Filho
Oficial de Cavalaria do Exército Brasileiro. Gerente de Rede e de Segurança em Rede do Gabinete do Comandante do Exército. Coordenador e professor da pós-graduação em Software Livre na Universidade Católica de Brasília (UCB) e professor da pós-graduação em Perícia Digital (UCB). Autor dos livros Linux & Seus Servidores (2000), Pequenas Redes com Microsoft Windows (2001) e Descobrindo o Linux (2ª edição em 2007).
Com tantas app stores, fabricantes e sistemas operacionais diferentes, em qual deles devemos apostar? Esta provavelmente é a sua maior dúvida se você está pensando em lançar uma start-up, criar jogos ou apps para seus serviços web no mundo mobile. Saiba onde investir e os porquês de cada plataforma. Conheça diferentes SDK cross-platform, apostas em Mobile Web app ou Nativo App.
Palestrante: Igor Costa
Tem 12 anos de experiência no mercado de software. É co-fundador da RIACycle, empresa brasileira dedicada a criar apps para web/mobile e a ensinar uma vasta rede de desenvolvedores. Palestrante assíduo, já particiou de vários eventos como o iMasters Intercon, Campus Party, Just Java, Flash Camp Brasil, Flex for Kids, Flex Mania, Flash Open Source Conference, faculdades, etc.
O documento discute tempestades solares, incluindo explosões solares (flares) e ejeções de massa coronal. Ele explica que essas tempestades solares emitem radiação e partículas energéticas que podem interferir nos sistemas elétricos e de comunicações na Terra e causar danos a satélites e espaçonaves. O documento também discute o ciclo solar de 11 anos e teorias não comprovadas sobre profecias maias relacionadas a tempestades solares.
Este documento discute a busca por planetas além do nosso Sistema Solar. Resume os principais métodos utilizados para detectar planetas extrassolares, incluindo velocidade radial, trânsitos, lente gravitacional e detecção direta. Também descreve alguns dos principais satélites dedicados a essa busca, como CoRoT, Kepler e Gaia.
3 (dos 5) dados incríveis sobre o LHC
[A] Lugar mais frio da galáxia (- 271 oC)
[B] Um dos lugares mais quentes no Universo (10.106.109 oC)
[C] Mais vazio que o espaço exterior
O documento fornece detalhes sobre o Large Hadron Collider (LHC) no CERN, destacando 3 de seus 5 dados mais incríveis: seu sistema de refrigeração criogênica produz as temperaturas mais baixas da galáxia; as colisões de prótons
Este documento fornece instruções para construir uma luneta (telescópio refrator) de baixo custo utilizando lentes e tubos. Explica os conceitos básicos de óptica envolvidos no funcionamento de um refrator e fornece dicas sobre montagem, uso e sites para mais informações sobre astronomia.
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
O documento apresenta uma introdução ao Arduino, um hardware livre para eletrônica e robótica. Apresenta os objetivos do Arduino, como licenciamento de hardware livre, modelos de placas como Arduino Uno e shields. Explica brevemente o funcionamento básico do Arduino com instruções como pinMode, digitalWrite e delay. Demonstra também o controle de um servo motor usando PWM e biblioteca Servo.
Este documento discute a educação inclusiva e o uso da robótica pedagógica para apoiar alunos com deficiência. Em particular, ele explora (1) o desenvolvimento de maquetes táteis sonoras para fornecer informações espaciais para pessoas cegas e (2) o mapeamento tátil sonoro do campus da UNICAMP para facilitar a navegação independente. O documento argumenta que a robótica pedagógica pode promover a autonomia e inclusão de alunos com deficiência.
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
Tecnologias vêm e vão, mas apenas uma permanece ao longo do tempo: o DirectX. Com o novo Windows 8 à vista, não poderia ser diferente e, nesta palestra, iremos explorar esta tecnologia, suas características e recursos, principalmente sob os novos aspectos necessários para a criação de jogos para Windows 8 e a interface Metro.
Palestrante: José Antonio Leal de Farias
CEO da Stairs Game Studio, professor, bacharel em Ciências da Computação pela UFCG, XNA/Directx Microsoft Most Valuable Professional, autor de livros e artigos publicados no Brasil e nos Estados Unidos e programador profissional há mais de uma década.
This document provides an overview and introduction to Linux and open source. It discusses the history and origins of Linux from 1969 with Unix at Bell Labs to Linus Torvalds starting the Linux kernel project in 1991. It describes the key components of an operating system distribution and popular distributions like Red Hat, Debian, and Fedora. The document outlines how Linux has been used for servers, embedded systems, supercomputers, and desktops. It also discusses open source licensing and communities and how to get started with Linux.
Este documento discute a educação inclusiva e o uso da robótica pedagógica para promover a autonomia de pessoas com deficiência. Em particular, ele descreve (1) um projeto de pesquisa que desenvolve maquetes táteis e sonoras para ensinar conceitos geográficos; e (2) um mapa tátil e sonoro da Universidade Estadual de Campinas para guiar pessoas com deficiência visual.
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
O documento descreve as funcionalidades e benefícios do Zabbix para monitoramento de ativos. O Zabbix permite monitorar ativos de forma proativa, detectar falhas antecipadamente e analisar a qualidade dos serviços de baixo custo. Ele é uma solução escalável com interface amigável que usa agentes para coletar métricas de ativos e dispara ações com base em triggers.
O documento apresenta a suíte de software livre Kicad para projeto de circuitos impressos, descrevendo seus principais módulos (Eeschema, Cvpcb, Pcbnew, Gerbview), seu idealizador Jean-Pierre Charras e referências sobre o tema.
Ideias e ferramentas para publicar conteúdo de forma relevante aproveitando os recursos das redes sociais tendo como base o caso do site Vida de Programador.
Palestrante: André Noel
Bacharel em Ciência da Computação pela Universidade Estadual de Maringá é desenvolvedor web desde 2002, mesmo ano em que aderiu ao Linux. Atualmente é membro do Conselho da Comunidade Ubuntu-BR e autor do site Vida de Programador.
O documento discute o tema de Cloud Computing e suas tendências. Aborda o que é Cloud Computing, suas vantagens como economia de infraestrutura e acessibilidade, cenários propícios e impróprios para sua adoção, e tendências como maior segurança e desempenho. Também discute a relação entre Cloud Computing e Virtualização.
2. ● Apresentação
● Por que pensar em Clusters para Aplicações
Gráficas?
● Introdução ao mundo dos Aglomerados
(clusters)
● Aglomerados Gráficos
● Arquitetura de Sincronização (Cliente/Servidor)
● LibGlass (apresentação, plugins, helloworld)
2
3. Quem sou eu?
● Bolsista do CNPq
● Graduando no Instituto Federal (IFSP)
● Coordenador Geral do FliSol - Salto
● Mercado Livre na área de Prevenção a Fraude
● Colaborador de projetos como (Moodle, Debian, libGlass outros)
● Participante – Google Higly Open Contest 2009 à 2011 (Code-In)
● Colaborador com o concurso Google Summer Of Code 2009
Gsoc-br.org (FAQ em português do GSoC)
● Colaborador do projeto Debian GNU/Linux
● Colaborador do projeto - DebianZine.org
● Fiz parte do projeto Hackerteen da 4Linux
● Projeto Educação com Software Livre do MEC (ProINFO Linux 3
Educacional)
10. ● Desde os primórdios da computação gráfica
● O fator desempenho sempre mereceu grande
atenção dos desenvolvedores
● Lado-a-lado com requisitos como realismo
gráfico e ergonomia.
● Geralmente medido em número de quadros
por segundo, o desempenho tem influência
direta na qualidade de uma aplicação.
● Um baixo desempenho pode prejudicar a
usabilidade ou, em casos mais graves, até
mesmo inviabilizar a implementação de uma
boa idéia. 10
11. ● Para atingir o desempenho e qualidade gráfica
desejada, os sistemas de multiprojeção das
aplicações de RV, como os CAVEs e
PowerWall
● São tradicionalmente como núcleo gráfico
sistemas multiprocessados, também
conhecidos por sistemas fortemente
acoplados. De alto custo, o que os limitam a
grandes centros de pesquisas.
● Em contrapartida, o desempenho de
processamento e desempenho gráfico dos
computadores pessoais estão aumentando.
11
● Assim, a substituição dos sistemas
13. Os aglomerados (clusters) de computadores
são um conjunto de computadores, capazes
de compartilhar seus recursos, para um
objetivo comum .
Específicos no caso de AG que possuem
placa de vídeos ou aglomerados de
computadores convencionais (commodity
computer clusters) .
13
16. Os aglomerados utilizados pelas aplicações de RV
possuem hardware projetado específicos, como placas
gráficas.
Cada nó processa apenas os dados referentes à sua
parte de interesse, e então gera a imagem apenas
daquela parte e oferecem para nós de controles
Vantagens de uso de um AG
● Desempenho proporcional ao número de estações
utilizadas
● Podendo executar cálculos de grande complexidade
numérica, transacional e gráfica.
16
19. Data-lock ou sincronismo de dados é responsável
pela coerência dos elementos dinâmicos da cena.
Responsável informações em cada nó do
aglomerado sejam idênticas em cada instante.
Estas informações;
● Posição da câmera virtual,
● A direção que esta tem
● Movimentos da cena
● Qualquer outro atributo dinâmico da cena
19
24. O técnica sort-first realiza a
distribuição dos dados antes
do processamento
geométrico na fila de
processamento gráfica.
Cada nó do sistema é
responsável por processar
uma parte da imagem final
Para serem visualizadas uma
ao lado da outra (tiling).
24
26. A técnica sort-last realiza
a distribuição de pixels
depois da rasterização
(sintetização).
Este método permite uma
subdivisão das tarefas
muito refinada, o que
assegura um melhor
balanceamento de carga
entre os nós.
26
29. Os estímulos do nó Mestre são transmitidos para os nós Escravos do
aglomerado gráfico (arquitetura com replicação).
Quando o usuário gera um estímulo, eg, movimenta o mouse ou
pressiona uma tecla, este estímulo é enviado para todos os nós
Escravos.
Ao recebê-lo, os nós executam as rotinas de tratamento para atualização
dos dados e geração das imagens;
Primitivas de Controle
29
30. Os estímulos são tratados localmente pelo nó Mestre, sendo os
resultados enviados para os nós Escravos, que geram e apresentam as
imagens (arquitetura sem Replicação).
Esta abordagem é geralmente utilizada quando o problema envolve
muitos cálculos que resultam em poucos dados, como em
simuladores de vôos. Assim, o meio de comunicação do aglomerado
gráfico é utilizado apenas para transmitir os resultados dos cálculos
Primitivas Gráficas
30
35. ● Node management
● It manages all the applications Clients
(connection and disconnection) and
communication messages (sending and
receiving)
● Retrieves disconnections
● Future support for peer-to-peer
● All transmitted messages are filtered by the
server in order to reduce redundant updates
35
36. #include "libglass.h"
...
int main(int argc, char **argv) {
// Declarou uma variavel g do tipo Glass (Objetivo de instanciar um nó)
Glass *g;
// Se não receber nenhum parametro instância do tipo Server
if (argc == 1) {
g = new GlassServer(...);
// Senão será uma instância do tipo Cliente
}else {
g = new GlassClient(...);
}
...
//Instância finalizada
delete g;
return 0;
}
show eg. aroundsimple and helloworld
36
38. ● Barrier: when you need to
synchronize everybody (eg.
datalock, swaplock)
● Shared: share your variables
● Alias: same variable, different
values, set remotely (eg. CAVE,
Multiprojection)
38
40. Uso das barreiras de sincronização
eg. Data-Lock, Swap-Lock/Frame-lock
#include "libglass.h"
int main () {
...
// declaração da barreira
Barrier b = Barrier(1);
// sincronização da barreira b
b->sync();
...
return 0;
}
show eg. aroundsimple and helloworld
40
41. Resultados
● Utilizando-se um protocolo unicast TCP, cujo
desempenho é inferior ao de um protocolo
broadcast, como o UDP, ou multicast, como o
XTP resultados suficiente para as aplicações
que requerem sincronizações constantes
● Com 5 nós, foi possível fazer 2400
sincronizações por segundo − o requerido
pelas aplicações varia de 30 a 120
sincronizações por segundo.
41
43. Support types (floats, inteiros, string and others)
#include "libglass.h"
...
int main() {
...
// declaração da variável
Shared<float>*teste=new Shared<float>("teste");
...
// atribuição do valor 1234 para a variável teste
*teste = 1234;
...
// envio da atualização da variável
// compartilhada
teste->sendUpdate();
...
// atualização da variável
teste->getUpdate();
...
// Imprime a variável
printf("%dn",teste->getData());
...
return 0;
}
43
show eg. aroundsimple and helloworld
44. ● Compartilhamento, o crescimento obtido foi
linear, devido às propriedades do protocolo
TCP/IP.
● Próximos gráficos mostrará o tempo de
sincronização de uma variável compartilhada
(Shared) em cada nó 1000 vezes, variando o
número de nós de 1 até 5, e o tamanho das
mensagens de 1 kb até 4096 kb.
44
48. #include "libglass.h"
void frente(int a) // frente
{}
void esquerda(int a)
{glRotated(90, 0, -1, 0);}
void direita(int a) {
{glRotated(90, 0, 1, 0);}
...
int main(int argc, char **argv) {
// declaração e cria uma intância no novo alias
Alias<void (*)(int)> *assoc
assoc = new Alias<void (*)(int)>("frente", frente);
// adição do método no alias
assoc->addAlias((const char *)"frente", frente);
assoc->addAlias((const char *)" esquerda ", esquerda);
assoc->addAlias((const char *)" direita ", direita);
// associação do nó ao método
assoc->associate(firstId+1, " frente ");
assoc->associate(firstId+2, "esquerda");
assoc->associate(firstId+3, "direita");
...
return 0;
}
show eg. aroundsimple and helloworld 48