1) O documento descreve a técnica de Decoupled Software Pipelining (DSWP) para extração automática de threads em programas sem especulação. DSWP quebra loops em partes executadas em núcleos separados para explorar paralelismo de granularidade fina.
2) A comunicação entre núcleos usa uma matriz de sincronização implementada com filas FIFO entre produtores e consumidores.
3) Experimentos mostraram um ganho médio de 9,2% em benchmarks com DSWP, indicando sua potencialidade para exploração de
O objetivo deste trabalho consiste em apresentar
um estudo sobre DSM - Distributed Shared Memory, uma
abstração utilizada para compartilhar dados entre processos em
computadores distintos que não compartilham memória física.
Um sistema de memória compartilhada distribuída oferece a
abstração de um espaço de endereçamento lógico, ao quais os
processos distribuídos acessam com a visão de uma memória
única. Para a apresentação desta abordagem serão apresentados:
definições, conceitos, modelos e algoritmos, utilizando exemplos
sempre que necessário.
O objetivo deste trabalho consiste em apresentar
um estudo sobre DSM - Distributed Shared Memory, uma
abstração utilizada para compartilhar dados entre processos em
computadores distintos que não compartilham memória física.
Um sistema de memória compartilhada distribuída oferece a
abstração de um espaço de endereçamento lógico, ao quais os
processos distribuídos acessam com a visão de uma memória
única. Para a apresentação desta abordagem serão apresentados:
definições, conceitos, modelos e algoritmos, utilizando exemplos
sempre que necessário.
Ficha de Leitura
SILVA, César F. G. Configurando Switches e Rpteadores CISCO. Guia para Certificação CCENT/CCNA. Rio de Janeiro:Brasport, p. 06-10, 2013.
Slides de suporte da aula de Redes de Computadores - Continuar pesquisas nas bibliografias:
TANENBAUM, Andrew S. Redes de Computadores. Editora Campus, 4 Edição. 2003.
COMER, Douglas E. Interligação de Redes com TCP/IP, volume 1. Editora Campus, 5 Edição. 2006.
TORRES, Gabriel. Redes de Computadores Curso Completo. 1 ed. Editora Axcel Books. 2001.
Slides de suporte da aula de Redes de Computadores - Continuar pesquisas nas bibliografias:
TANENBAUM, Andrew S. Redes de Computadores. Editora Campus, 4 Edição. 2003.
COMER, Douglas E. Interligação de Redes com TCP/IP, volume 1. Editora Campus, 5 Edição. 2006.
TORRES, Gabriel. Redes de Computadores Curso Completo. 1 ed. Editora Axcel Books. 2001.
Ficha de Leitura
SILVA, César F. G. Configurando Switches e Rpteadores CISCO. Guia para Certificação CCENT/CCNA. Rio de Janeiro:Brasport, p. 06-10, 2013.
Slides de suporte da aula de Redes de Computadores - Continuar pesquisas nas bibliografias:
TANENBAUM, Andrew S. Redes de Computadores. Editora Campus, 4 Edição. 2003.
COMER, Douglas E. Interligação de Redes com TCP/IP, volume 1. Editora Campus, 5 Edição. 2006.
TORRES, Gabriel. Redes de Computadores Curso Completo. 1 ed. Editora Axcel Books. 2001.
Slides de suporte da aula de Redes de Computadores - Continuar pesquisas nas bibliografias:
TANENBAUM, Andrew S. Redes de Computadores. Editora Campus, 4 Edição. 2003.
COMER, Douglas E. Interligação de Redes com TCP/IP, volume 1. Editora Campus, 5 Edição. 2006.
TORRES, Gabriel. Redes de Computadores Curso Completo. 1 ed. Editora Axcel Books. 2001.
Você sabia que existe hoje em dia uma fruta capaz de
auxiliar na sua dieta que afina a silhueta? Isso mesmo, a
Goji Berry é uma pequena fruta que está fazendo sucesso
no mundo inteiro.
Programa XV Foro Internacional de Turismovisitbenidorm
Benidorm acoge el jueves y el viernes el XV Foro Internacional de Turismo, que en esta ocasión centra su interés en la sostenibilidad de los modelos urbanos, compatibilizada con el desarrollo económico y el crecimiento poblacional.
Esta nueva edición del Foro Internacional de Turismo de Benidorm contará con la presencia de destacados ponentes, entre ellos Gwen Y. Migita, del grupo Caesar’s Entertainment de Las Vegas, Gareth Williams, de Tui UK e Irlanda o Stephen Tate, responsable de Transportes y Medio Ambiente en el Ayuntamiento de Londres, entre otros. A ellos se suman expertos españoles como Vicente Castillo, del departamento de Arquitectura Sostenible de la Universidad de Alicante o Armando Ortuño, profesor de Urbanismo, Ordenación Territorial y Planificación del Transporte, de la misma universidad.
El Foro incluye además una visita guiada a proyectos y recursos emblemáticos desarrollados en Benidorm en los que la sostenibilidad ha jugado un papel fundamental. Será mañana jueves, día 20, de 16 a 18:30 horas, y los responsables de esta visita técnica serán José Luis Camarasa, arquitecto municipal del Ayuntamiento de Benidorm, junto a Moisés Pellicer, técnico en Ecología y Medio Ambiente del Consistorio benidormense. La visita guiada pasará por el mirador de Serra Gelada, la Plaza de la Hispanidad, Mirador de Canfali, Paseo de la Playa de Poniente y Tossal de la Cala.
El XV Foro Internacional de Turismo de Benidorm se desarrollará en el Salón de actos del Ayuntamiento, escenario donde además se entregarán los premios del 4º Concurso de Ideas Pedro Zaragoza, que lleva por lema ‘Benidorm, laboratorio de ideas y ecopropuestas’.
Der ROWAS - entwickelt von führenden Ergonomen - bietet alle Funktionen, die Ihnen die tägliche Sitz-Arbeit erleichtern.Die ergonomisch geformten Polsterelemente lassen sich optimal auf Ihre Proportionen einstellen. Die durchdachten Sitzmechaniken unterstützen dabei Ihren natürlichen Bewegungsablauf.for more information please visit -http://www.wilhelm-schuster.de/
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
Apresentação sobre Microarquitetura, desenvolvida por Lincoln, Lívia, Vinícius e Walter para a aula de Arquitetura e Organização de Computadores, Professor Bessa, Centro de Ensino Superior de Juiz de Fora.
[Hind oopsla00] resumo do artigo "Adaptive Optimization in the Jikes RVM"Marcio Machado Pereira
No artigo, os autores descrevem o projeto e implementação de um mecanismo denominado Adaptive Optimization System – AOS, na máquina virtual Java Jikes RVM (Research Virtual Machine).
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualRafael Reis
Análise do artigo "Medindo e Modelando o Desempenhode Aplicações em umAmbiente Virtual" dos autores F. Benevenuto, C. Fernandes, M. Caldas, V. Almeida.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
1. jul-2011 1
Automatic Thread Extraction with Decoupled Software Pipelining
Guilherme Ottoni Ram Rangan Adam Stoler David I. August
Departments of Computer Science and Electrical Engineering
Princeton University
{ottoni, ram, astoler, august} @ princeton.edu
Resumo realizado por Marcio Machado Pereira – RA 780681
transformações requerem que loops sejam contaveis,
operações exclusivamente em arrays, padrões de acesso de
I. INTRODUÇÃO memória regular, controles de fluxo simples (ou mesmo sem
N o artigo [1], os autores propuseram uma abordagem não-
especulativa para extração automática de threads
chamada Decoupled Software Pipelining (DSWP). DSWP
controle de fluxo), enquanto que DSWP não tem qualquer
dessas restrições.
explora o paralelismo de granularidade mais fina requerendo O mecanismo utilizado para implementar a comunicação
para isto conhecimento da microarquitetura para inter-core foi a matriz de sincronização (synchronization
comunicação inter-core. array). Este mecanismo utiliza duas instruções especiais,
produce e consume que, respectivamente, enviam e recebem
Para um melhor entendimento do leitor, os autores examinam um valor escalar por uma fila FIFO, não bloqueante (a não
o paralelismo obtido pela técnica DOACROSS que é ser nos casos de fila cheia ou vazia) do hardware.
caracterizada pela execução concorrente de partes da iteração
de um loop através de múltiplos cores. As dependências são Os autores investigaram algumas alternativas para o
respeitadas a partir do encaminhamento dos valores de mecanismo synchronization array com o objetivo de reduzir
dependência entre as threads por algum mecanismo de os custos de hardware [2]. Observaram, por exemplo, que as
comunicação (normalmente, memória compartilhada) com filas de comunicação podem ser implementadas através de
sincronização. Como consequencia, o roteamento presente memória compartilhada, por uma pequena penalidade no
entre os cores, estende o caminho crítico do loop por pelo desempenho. Isto não só reduz os custos de hardware, mas
menos a latência média de comunicação multiplicado pelo também facilita a virtualização. Para obter um bom
número de iterações. desempenho através de memória compartilhada, no entanto,
duas alterações de hardware ainda são necessários. Primeiro,
A alternativa apresentada pelo DSWP é que, em vez de as instruções produce e consume são necessários para evitar
colocar cada iteração alternadamente em cada núcleo, DSWP os custos de implementação da sincronização em software.
quebra a iteração do loop colocando a primeira parte, Em segundo lugar, é necessário alterar o protocolo de
responsável por percorrer as estruturas de dados recursivas ou coerência de cache para realizar o encaminhamento das
ligadas, no core 0 e a segunda parte, o corpo do loop, no core linhas de cache (forwarding of cache lines) usadas para
1. Como conseqüência disto, o caminho crítico do ciclo de implementar as filas. Ter uma linha de cache transmitida do
dependências permanece no core 0 e portanto, não estará núcleo produtor, quando esta ficar cheia, elimina-se os stalls
sujeito aos atrasos provocados pela latência de comunicação. para acessar as filas no núcleo consumidor.
DSWP exige que o fluxo de dados entre os núcleos seja
acíclico. Isto implica que as instruções de cada recorrência II. O ALGORITMO DSWP
devem ser agendadas no mesmo núcleo com todas as outras O primeiro passo do algoritmo DSWP é construir o grafo de
instruções da mesma recorrência. Recorrências diferentes são dependências para o loop em questão. Neste grafo, cada
muitas vezes atribuídos a diferentes núcleos na prática, pois, vértice corresponde a uma instrução do loop e as arestas
por definição, as dependências entre eles são acíclicas. representam as dependências entre as instruções:
Claramente, esta exigência pode limitar os loops passíveis de dependências de dados, de controle e de memória, bem como
DSWP. Os autores descrevem a experiência deles em relação as dependências de malha (loop-carried dependence).
à aplicabilidade de DSWP em códigos existentes face a esta Dependências de saída e as anti-dependências podem ser
limitação e concluem que são raros em códigos após ignoradas. O segundo passo é garantir um particionamento
otimizações ILP. Alem disso, o paralelismo DOACROSS acíclico encontrando os componentes fortemente conexos
normalmente é mais restritivo. Em muitos casos, essas (SCCs) e criando um grafo dirigido acíclico a partir deles
(DAGSCC). DSWP requer que todas as instruções contidas no
O trabalho em referência foi apresentado na conferência MICRO'38 realizado mesmo SCC permaneçam na mesma thread.
entre os dias 12 e 16 de novembro de 2005 na cidade de Washington, DC, USA.
O resumo é parte do trabalho de pesquisa de doutorado do Instituto de
Computação da UNICAMP (IC-Unicamp) e foi elaborado por Pereira, M. M. (e- Os autores definem então um particionamento válido P de
mail: mpereira@ic.unicamp.br ). DAGSCC, a sequencia P1, P2, …, Pn de conjunto de vertices
2. jul-2011 2
DAGSCC (i.e. Pis são conjuntos de SCCs) satisfazendo as adicional ao número de sofisticadas técnicas de otimização
sequintes condições: ILP, incluindo Software Pipelining. O conjunto de
1. 1 ≤ n ≤ t, onde t é o número de threads que o benchmarks utilizados incluem aplicações do SPEC-
processador alvo pode executar simultaneamente; CPU2000, do Mediabench e o utilitário 'wc' do Unix. Para
2. Cada vértice em DAGSCC pertence a exatamente uma avaliar os resultados eles usaram o Itanium com 2 núcleos. A
partição em P ; matriz de sincronização tinha um total de 256 filas, cada uma
3. Para cada aresta (u→v) em DAGSCC, com u Є Pi e com 32 elementos. Um speedup de 19,4% foi alcançado em
v Є Pj, temos i ≤ j. importantes benchmarks e uma média de 9,2% foi medida
levando em conta todos os benchmarks, o que mostra,
Após a partição ser feita o algoritmo considera os custos das segundo os autores, que esta técnica é promissora.
instruções produce e consume para verificar se esta partição
é vantajosa ou não. O problema da escolha de uma partição Ainda, de acordo com os autores, outras técnicas de
válida que minimiza o custo total de exeução é um problema paralelização, não especulativas, e de propósito geral existem,
NP-completo. Na prática, são usadas heurísticas para mas normalmente estas técnicas requerem linguagens com
maximizar o balanceamento de carga entre as threads, suporte a “construções paralelas”, ou seja, o programador
computando os cíclos estimados necessários para executar precisa reescrever a aplicação para expor o paralelismo.
todas as instruções em cada SCC.
A divisão do código envolve os seguintes passos: IV. CONCLUSÃO
1. Computa-se o conjunto de blocos básicos relevantes Em adição às promessas iniciais, o artigo mostra que os
(BBs) para cada partição Pi. Este conjunto contempla todos resultados podem ser melhorados através de uma análise de
os BBs do loop original que contém as instruções atribuídas memória mais acurada, heuristicas de particionamento mais
à Pi bem como as instruções que Pi depende para permitir a elaboradas, novas otimizações para reduzir o número de
inserção das instruções produce e consume nos pontos flows, etc. Os autores acreditam que DSWP pode vir a ser um
onde os valores dependentes são definidos no código. Isto habilitador para futuras pesquisas relacionadas a TLP.
preserva as condições onde as dependências ocorrem.
2. Cria-se os BBs para o Pi.
3. Insere as instruções atribuídas à Pi no BB
correspondente, mantendo a ordem original relativa dentro V. REFERENCIAS
do bloco básico; [1] G. Ottoni, R. Rangan, A. Stoler, and D. I. August. Automatic Thread
4. Fixa-se os branch targets. Extraction with Decoupled Software Pipelining. In Proceedings of the 38th
annual IEEE/ACM International Symposium on Microarchitecture (MICRO
38). IEEE Computer Society, Washington, DC, USA, 105-118. 2005
O último passo do algoritmo DSWP é a inserção dos pares de
instruções produce e consume (chamado de flows) para
[2] R. Rangan, N. Vachharajani, A. Stoler, G. Ottoni, D. I. August, and G. Z. N.
garantir a corretude do código transformado. Os flows criados Cai. Support for high-frequency streaming in CMPs. In Proceedings of the 39th
são classificados em 3 categorias: data dependence, control International Symposium on Microarchitecture, pages 259–269, December
dependence e memory/synchronization dependence. Neste 2006.
último não há valor a ser transmitido. O mesmo é usado como
um token para reforçar as restrições de ordenação das
operações.
No DSWP, as filas são reusadas a cada iteração e,
dependendo do caminho executado, o conjunto de filas pode
variar de iteração a iteração. Para garantir a corretude, o
compilador precisa fazer com que os valores de diferentes
iterações sejam entregues corretamente. Para isto, o controle
de fluxo da thread é verificado a cada iteração. Isto requer
alguns controles de dependências adicionais, chamados loop-
iteration control dependence. Para capturar tais
dependências, conceitualmente desenrola-se a primeira
iteração do loop. O algoritmo calcula então as dependências
de controle padrão para a versão desenrolada do código para
uso no código original. O grafo de dependência de controle
resultante usado pelo DSWP é obtido pela coalescência dos
pares correspondentes de nós no grafo de dependência de
controle para o código desenrolado.
III. IMPEMENTAÇÃO E AVALIAÇÃO
Para avaliar o DSWP, os autores implementaram o algoritimo
no back-end do compilador IMPACT como um passo