Estudo de caso: quanto maior a quantidade de núcleos em um processador melhor é o seu processamento?

Um processador multitarefa é um processador que aparentemente pode fazer várias tarefas ao mesmo tempo, porque funcionalmente ele dedica pequenas frações da UCP (Unidade Central de Processamento) a cada uma das tarefas, seja cálculo, seja apresentar uma informação na tela, mandar um documento para a impressão, salvar um arquivo no SSD, etc.

Se o processador for rápido, essas pequenas interrupções passam despercebidas e dá a impressão de que o processador está realizando várias coisas ao mesmo tempo, quando na verdade está fazendo apenas uma coisa de cada vez e as demais estão paradas.

Mas se o processador possui vários “cores” ou “núcleos”, é como se você realmente tivesse vários processadores diferentes dentro do computador, por exemplo, um processador dedicado a calcular, outro para atualizar a tela, outro para escrever, etc.

Você realmente ganhará velocidade porque agora se a multitarefa é real, ao mesmo tempo o processador dedicará tempo para resolver vários problemas diferentes. Por exemplo, um núcleo é dedicado a escrever no Word, outro está em segundo plano e atende às solicitações da impressora, outro está baixando e-mails. Obviamente, se você tiver dois núcleos, poderá realizar várias tarefas mais rapidamente do que se tiver apenas um. Porém, esse processamento têm um limite, que são as diferentes tarefas que ele possui em execução, não adianta possuir 12 núcleos se você iniciar apenas quatro tarefas diferentes.

No entanto, existem linguagens de programação capazes de quebrar processos iterativos em diferentes threads e enviar cada um para um núcleo diferente do processador. Por exemplo, você está calculando uma fatura para muitos produtos, que foram comprados com valores diferentes e que se aplicam impostos diferentes.

Se você tiver uma programação adequada, essa fatura irá calcular cada linha em um núcleo diferente, para então somar os valores parciais e calcular o total da fatura. Se você tiver a possibilidade de calcular vários threads de uma só vez, você terminará mais cedo, quanto mais threads você puder lidar de uma só vez, melhor. Mas se você tiver muitos núcleos, chegará um momento em que você não poderá tirar proveito de todos eles, porque você não tem threads suficientes para alimentar tantos núcleos.

Neste exemplo, pode-se verificar que a velocidade real de um programa depende dos “núcleos” que ele possui, mas a partir de certo ponto não importa quantos núcleos você possua, o que realmente importa é a velocidade da sequência de cálculos lineares mais complexos que você possui.

Em um servidor de rede que tenha muitos acessos à Internet, será útil ter o maior número possível de “núcleos”, pois cada núcleo tratará da consulta feita por um usuário, mas por outro lado, esse mesmo processador será excessivo para um indivíduo e não vai tirar vantagem disso.

Se o número de consultas disparar, não haverá um computador com “núcleos” suficientes no mercado, então recorre-se a fazer os processadores que funcionem em “cluster”, ou seja, cada processador com os seus devidos núcleos” passará a trabalhar em paralelo, dentro do que se chama de “cluster”, (conjunto, grupo ou acumulação), com outros processadores com os seus respectivos “núcleos”.

Diante do estudo de caso exposto, responda a atividade proposta! Cole os resultados no comentário.

Fonte: Pixels.

123 comentários em “Estudo de caso: quanto maior a quantidade de núcleos em um processador melhor é o seu processamento?

  1. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD? 

    R.: MIMD, pois cada abelha operária está realizando uma tarefa independente das outras,fazendo a coleta em locais diferentes. 

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os. 

    R.: Multicomputadores e Multiprocessadores são sistemas de computação paralela, mas diferem em sua arquitetura e na forma como processam tarefas. 

    Multiprocessadores são sistemas que possuem múltiplos processadores (CPUs) trabalhando juntos em um único computador. Cada processador tem sua própria memória cache, mas compartilha a mesma memória principal. Isso significa que cada processador pode acessar a memória principal e executar tarefas independentemente, mas também pode compartilhar dados com outros processadores para acelerar o processamento. 

    Já os Multicomputadores são sistemas compostos por vários computadores independentes (nós) conectados por uma rede de comunicação. Cada nó tem seu próprio processador e memória, e pode executar tarefas independentemente. A comunicação entre os nós é feita através da rede, e cada nó pode compartilhar dados com outros nós para acelerar o processamento. 

    Um exemplo de Multiprocessador é o IBM Power System E980, que possui até 192 núcleos de processamento e 16 TB de memória. Já um exemplo de Multicomputador é o sistema distribuído do Google, que consiste em milhares de servidores interconectados para executar tarefas como indexação da web e processamento de dados. 

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir: 

    R.: A parte em destaque se refere as possibilidades da implementação de memória compartilhada nos multiprocessadores,sendo elas. 

    NUMA (Non-uniform Memory Access),Onde todos os processadores têm acesso a toda memória. 

    CC-NUMA (Cache Coherent Non-Uniform Memory Access), Solução de compromisso entre as arquiteturas NUMA e COMA. Cada nó processador possui uma cache local para reduzir o tráfego na rede de interconexão. 

    COMA (Cache-Only Memory Access), Assemelham-se a uma arquitetura NUMA, onde cada nó de processamento possui uma parte da memória global. 

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir: 

    R.: MPP é projetado para trabalhar em paralelo e executar tarefas em larga escala, com nós individuais que têm sua própria memória e usam um barramento de comunicação para sincronizar o trabalho entre eles. O COW é formado por vários computadores individuais conectados em rede para executar tarefas distribuídas, geralmente usados em aplicativos de negócios ou científicos que exigem um grande número de CPUs. O COW pode ser escalável e relativamente barato, mas a coordenação e a sincronização do trabalho entre os nós individuais podem ser desafios significativos em termos de desempenho e complexidade. 

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante? 

    R.: ocorrerá uma condição de corrida (race condition) no barramento, onde os sinais de solicitação e resposta podem colidir, causando um conflito. Isso pode levar a erros de leitura ou gravação de dados, bem como atrasos no acesso à memória global. Para evitar esses problemas, os sistemas multiprocessados geralmente usam protocolos de controle de coerência de cache e arbitragem de barramento para garantir que apenas um processador tenha acesso ao barramento e à memória global em um determinado momento. 

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta. 
    R.: A quantidade de núcleos em um processador não é o único fator determinante para o desempenho e processamento geral de um sistema. Embora seja verdade que um processador com mais núcleos tem a capacidade de executar mais tarefas simultaneamente, isso não garante automaticamente um melhor desempenho em todas as situações 

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente? 

    R.: Atualmente, o processador com a maior quantidade de núcleos é o AMD Ryzen Threadripper 3990X, que possui 64 núcleos. 

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.” 

    R.: Um cluster é um conjunto de computadores interconectados que trabalham juntos localmente, enquanto a Cloud Computing envolve o acesso a recursos computacionais sob demanda por meio da Internet, fornecidos por provedores de serviços em nuvem. 

    Cluster é uma opção mais adequada quando há necessidade de alta capacidade de processamento para uma tarefa específica, enquanto o cloud computing é uma opção mais adequada para projetos que precisam de recursos computacionais elásticos, escaláveis e sob demanda, sem a necessidade de investimento em hardware próprio. 

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta. 

    R.: Os dois tipos de servidores são de processamento fortemente acoplado devido à interdependência significativa entre eles para executar tarefas complexas e lidar com cargas de trabalho intensivas. 

    Curtir

  2. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Seria um sistema SIMD, onde a “single instruction (SI)” seria a tarefa de coletar o néctar de rosas e os multiprocessadores são as abelhas trabalhando em uma única tarefa.

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Multiprocessadores são um conjunto de dois ou mais processadores que compartilham a mesma memória RAM para a execução de tarefas, já os multicomputadores são um conjunto de computadores independentes que realizam a mesma tarefa se comunicando na rede.

    Multiprocessadores tem memória compartilhada, onde os processadores acessam diretamente a mesma memória. Multicomputadores tem a memória distribuída, onde cada máquina tem sua própria.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    UMA (Uniform Memory Access): Arquitetura onde todos os processadores tem o mesmo tempo de acesso a memória principal, assim existe uma memória principal única e uniforme que é acessada por todos os processadores, essa arquitetura é mais simples para programar pois todos os processadores tem o mesmo acesso à memória e é bom para poucos processadores em um só sistema.

    NUMA (Non-Uniform Memory Access): Diferente da UMA, cada processador tem uma parte da memória local, mas pode acessar as memórias de outros processadores, formando um espaço de memória compartilhado. Seu tempo de acesso não é uniforme, já que é mais rápido acessar a memória local que a de outro processador. É um sistema mais escalável que a UMA, porém tem alta complexidade na programação e gerência da memória.

    COMA (Cache-Only Memory Access): Essa arquitetura não tem uma memória fixa compartilhada, mas caches distribuídos entre os processadores, os dados são movidos de forma dinâmica para os caches. São muito eficientes para sistemas que precisam trabalhar com acesso de dados repetidos, mas são muito complexos de implementar.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    MPP (Massively Parallel Processing): sistema composto por centenas ou milhares de processadores interconectados, projetados para realizar computação de alto desempenho. Cada nó é projetado para desempenho paralelo e é um sistema muito estável que permite milhares de nós trabalhando em paralelo, é usado em supercomputadores por conta de seu alto desempenho, mas são muito caros para manter e comprar.

    COW (Cluster of Workstations): Cluster de computadores comuns conectados em rede para trabalhar em conjunto, cada nó é uma máquina comum como PC’s ou servidores padrão. É um sistema estável mas lento, por ser limitado pela rede, por ter um custo muito mais baixo, é aplicado em projetos de baixo orçamento.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Quando três processadores tentam acessar a memória global ao mesmo tempo em um sistema com barramento compartilhado, apenas um processador consegue o acesso ao barramento, enquanto os outros dois aguardam,o  desempenho geral diminui devido à contenção e protocolos de arbitragem garantem o funcionamento correto, mas o acesso simultâneo pode ser um gargalo para a escalabilidade do sistema.

    Se o número de processadores e a frequência de contenção forem altos, o sistema pode precisar de soluções mais avançadas, como arquiteturas NUMA, barramentos hierárquicos, ou interconexões específicas.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Depende da aplicação, acredito que para uso pessoal, uma quantidade intermediária de núcleos já é o suficiente se cada processador for forte, já que em um uso básico, você não irá aproveitar do desempenho total de um número grande de cores.

    Agora quando é voltado para servidores, multitarefas e aplicações específicas,acredito que quanto mais núcleos, melhor vai ser o resultado.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    É o AMD EPYC 9654, com 96 núcleos e 192 threads, esse processador é feito para ser usado em servidores.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Depende de uma série de fatores como custo, manutenção, estabilidade e velocidade, então variando o orçamento e a aplicação, cada um pode ser ideal para certa área.

    clusters: Para uso intenso e contínuo em ambientes controlados, com alta demanda de largura de banda e baixa latência.

    cloud computing: Para escalabilidade, flexibilidade, e quando o orçamento inicial é limitado ou a carga de trabalho varia significativamente.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Servidores do Google: São sistemas fracamente acoplados, pois consistem em uma infraestrutura distribuída globalmente, com milhares de servidores que processam dados de forma independente, compartilhando informações apenas ocasionalmente. Essa arquitetura é projetada para escalabilidade, resiliência e tolerância a falhas, características essenciais para lidar com a enorme quantidade de dados da web.

    Servidores da NASA: São sistemas fortemente acoplados, geralmente constituídos por supercomputadores ou clusters de alto desempenho. Eles utilizam interconexões de alta velocidade e dependem de comunicação intensa entre os processadores para realizar cálculos complexos e processar imagens em alta resolução. Essa configuração é ideal para aplicações que requerem grande precisão e processamento centralizado em tempo real.

    Curtir

  3. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    O sistema mencionado acima seria o sistema SIMD (Single Instruction, Multiple Data), porque todas as abelhas operárias estão executando a mesma instrução ao mesmo tempo mas em locais diferentes.

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Ambas são arquiteturas de computação paralela. Onde os multicomputadores são baseados em vários computadores independentes conectados por uma rede de comunicação e os multiprocessadores são diversos processadores que dividem uma memória principal. O sistema de memória dos multicomputadores consiste em cada computador possuir uma memória local, separada das demais. A comunicação entre os computadores necessita de troca de mensagens através da rede. Já a memória dos multiprocessadores, é baseada no compartilhamento da memória principal.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    UMA (Uniform Memory Access – Acesso à Memória Uniforme): Cada CPU tem o mesmo tempo de acesso a todos os módulos de memória.

    Essa propriedade de uniformidade não é válida para os multiprocessadores NUMA e COMA.

    COMA (Cache Only Memory Access – Acesso Somente à Memória Cache): Os caches têm muito mais capacidade que uma cache tradicional. Essa arquitetura tem suporte de hardware para a replicação efetiva do mesmo bloco de cache em múltiplos nós, o que reduz tempo global para pegar informações.

    NUMA (NonUniform Memory Access – Acesso Não-Uniforme à Memória): Possui Memória Distribuída, espaço de endereçamento único, memória implementada com múltiplos módulos associados à cada processador, comunicação processador-memórias não locais através da infraestrutura de comunicação e tempo de acesso à memória local < tempo de acesso às demais.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    MPP (Massively Parallel Processors). Possui como características: Multicomputadores massivamente paralelos, múltiplas memórias locais, nós se comunicam por troca de mensagens, interconectados por rede de alta velocidade, boa escalabilidade (muitos processadores) e programação mais complexa.

    COW (Cluster of Workstations). Possui como características: redes de estações dedicadas ao processamento paralelo, interconectadas por redes padrão ou de baixa latência, máquina otimizada para operações paralelas e as principais otimizações são feitas no software.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Irá acontecer um conflito de barramento, podendo acarretar alguns problemas e atrasos no processo.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    A quantidade de núcleos não necessariamente é o único ponto que deve ser analisado para determinar um bom processamento. Devem ser analisados outros quesitos como: frequência de clock, cachê, arquitetura, dentre outros pontos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    O processador com maior número de núcleos atualmente é o AMD EPYC 9654, com 96 núcleos e 192 threads, baseado na arquitetura Zen 4

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    O Cluster deve ser utilizado para situações que envolvem um trabalho mais pesado, se há ocorrência de baixa latência dentre outras. Comumente em empresas que atendem alta demanda em sites e que usam torres de servidores. Cloud Computing quando é necessário realizar trabalhos variáveis e/ou imprevisíveis, economia do espaço, centralização de informação, trabalho remoto etc. É ideal para empresas com sedes ao redor do mundo ou em diferentes ambientes de trabalho, abrangendo locais remotos.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplados, fracamente acoplados? Justifique a sua resposta.

    Google – Utiliza um sistema bem distribuído e fortemente acoplado já que é possível coordenar e processar muitos dados e processos da web. 

    Nasa – Os servidores de processamento de imagens podem ser classificados como Fortemente Acoplado, nesse caso vários servidores trabalham em conjunto. Também são utilizados servidores fracamente acoplados para tarefas que não necessitam tanta coordenação entre os servidores.

    Curtir

  4. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Esse seria um cenário de sistema SIMD, pois após a instrução as abelhas operárias segue a mesma função

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os

    Multicomputadores são sistemas compostos por vários computadores independentes, conectados por uma rede, e utilizam memória distribuída, onde cada nó tem sua própria memória local, sendo a comunicação realizada por troca de mensagens. Já os multiprocessadores são sistemas com múltiplos processadores trabalhando em um único computador, compartilhando uma memória comum que pode ser acessada por todos os processadores. Nos multicomputadores, um exemplo seria um cluster de servidores como o Beowulf, enquanto nos multiprocessadores, um exemplo seria um computador com processadores multicore, como o Intel Xeon. A principal diferença está na arquitetura de memória: distribuída nos multicomputadores, implicando maior independência, e compartilhada nos multiprocessadores, permitindo comunicação mais rápida entre os processadores.

    .

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    As classificações de multiprocessadores são:

    UMA (Uniform Memory Access): Todos os processadores têm acesso uniforme à memória principal, com o mesmo tempo de acesso. É simples de programar e ideal para sistemas com poucos processadores.

    NUMA (Non-Uniform Memory Access): Cada processador possui memória local, mas pode acessar a memória de outros. O tempo de acesso varia conforme a localização, sendo mais rápido para a memória local. É mais escalável, porém mais complexo de gerenciar.

    COMA (Cache-Only Memory Access): Não há memória fixa compartilhada, apenas caches distribuídos entre os processadores, com dados movidos dinamicamente. É eficiente para acessos repetidos, mas altamente complexo de implementar.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    As classificações de multicomputadores são:

    MPP (Massively Parallel Processing): Sistema com centenas ou milhares de processadores interconectados, projetados para computação de alto desempenho. Cada nó é otimizado para execução paralela e estabilidade, sendo amplamente usado em supercomputadores devido ao desempenho superior. No entanto, seu custo de aquisição e manutenção é muito elevado.
    COW (Cluster of Workstations): Cluster formado por computadores comuns, como PCs ou servidores padrão, conectados em rede para operar em conjunto. É estável, mas tem desempenho limitado pela velocidade da rede. Com baixo custo, é ideal para projetos de menor orçamento, apesar de ser mais lento que os sistemas MPP.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Em um multiprocessador com barramento compartilhado, se três processadores tentarem acessar a memória global ao mesmo tempo, apenas um conseguirá acesso imediato ao barramento, enquanto os outros dois terão que aguardar. Isso ocorre porque o barramento é um recurso compartilhado e não suporta acessos simultâneos. Essa contenção reduz o desempenho geral do sistema, pois os processadores ficam ociosos enquanto esperam.

    Para mitigar esses gargalos, protocolos de arbitragem são usados para coordenar o acesso, garantindo o funcionamento correto. No entanto, se o número de processadores e a frequência de contenção forem elevados, soluções mais avançadas, como arquiteturas NUMA ou interconexões específicas, podem ser necessárias para melhorar a escalabilidade.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Sim mas isso depende muito de como é otimizado os programas para uso de mais núcleos, exemplo se o computador estiver rodando software otimizado para isso será melhor do que computadores que possuem menos núcleos, no entanto não é isso que acontece geralmente, então um computador para uso diário não precisa de muitos núcleos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    AMD Ryzen Threadripper Pro 5995WX com 64 núcleos e 128 Threads.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Clusters são recomendados para tarefas contínuas que exigem alto desempenho dedicado, controle total sobre o hardware, e segurança local, como simulações científicas ou processamento em organizações com infraestrutura própria. Já o cloud computing é ideal para cargas de trabalho temporárias ou variáveis, com escalabilidade dinâmica, baixo custo inicial e manutenção simplificada, sendo vantajoso para startups ou projetos de análise de dados com colaboração distribuída. A escolha depende das demandas específicas de custo, controle e flexibilidade.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Os servidores de pesquisa do Google e os servidores de processamento de imagens da NASA são exemplos de sistemas de processamento fracamente acoplado. No Google, o processamento de dados é distribuído entre múltiplos servidores que funcionam de maneira independente, processando partes do índice e das consultas de busca. De forma similar, a NASA usa sistemas distribuídos para processar grandes volumes de dados de imagens, com cada servidor processando diferentes porções de uma imagem. Embora haja troca de informações entre os servidores, eles podem operar de forma independente, com mínima dependência entre os nós, caracterizando um sistema fracamente acoplado.

    Curtir

  5. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    R: Esse é um sistema MIMD (Multiple Instruction, Multiple Data). Isso ocorre porque cada abelha (análoga a um núcleo do processador) tem a liberdade de executar suas próprias instruções de forma independente, mesmo que todas estejam trabalhando em um objetivo comum (coletar néctar de rosas). Cada abelha pode decidir qual flor buscar e como proceder, executando tarefas diferentes em paralelo, assim como um sistema MIMD executa instruções diferentes em núcleos distintos para dados diferentes.

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    R: Multicomputadores

    São sistemas compostos por vários computadores independentes, conectados por uma rede de comunicação.

    Cada computador tem sua própria memória, seu processador e sistema operacional.

    O foco está em dividir tarefas entre computadores distintos, comunicando-se via mensagens.

    Exemplos: Google Cloud: Cada servidor na nuvem funciona como um computador independente, mas juntos compõem um sistema distribuído.

    Sistema de memória:

    Distribuído: Cada computador possui sua própria memória local. Não há memória compartilhada direta entre os nós. A comunicação entre os computadores ocorre por meio de troca de mensagens ou protocolos de rede.

    Multiprocessadores

    São sistemas em que vários processadores compartilham o mesmo sistema de memória e trabalham em conjunto dentro de um único computador.

    Eles são projetados para melhorar o desempenho de tarefas em paralelo.

    Exemplos: Processadores com múltiplos núcleos em desktops ou laptops (por exemplo, Intel Core i7 com 8 núcleos).

    Sistema de memória:

    Compartilhado: Todos os processadores acessam a mesma memória central. Isso permite troca de informações rápida, mas também pode causar contenção de memória dependendo do número de processadores.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    1. UMA (Uniform Memory Access)

    Definição: No modelo UMA, o tempo de acesso à memória é uniforme para todos os processadores. A memória é compartilhada entre os processadores e acessada por meio de um barramento comum ou interconexão centralizada.

    Funcionamento:

    Todos os processadores têm acesso equitativo e simétrico à memória principal.

    Ideal para sistemas com poucos processadores, já que um barramento centralizado pode se tornar um gargalo em sistemas muito grandes.

    2. COMA (Cache-Only Memory Access)

    Definição: Neste modelo, não existe uma memória principal centralizada. Cada processador possui uma memória cache local, e os dados são dinamicamente migrados entre os caches dos processadores conforme necessário.

    Funcionamento:

    Os processadores acessam diretamente as memórias cache locais, o que reduz latências e melhora o desempenho em sistemas paralelos.

    Funciona bem para aplicações em que a localidade de dados é alta.

    Desafios: Requer mecanismos sofisticados para manter a coerência dos dados entre os caches.

    3. NUMA (Non-Uniform Memory Access)

    Definição: No modelo NUMA, o tempo de acesso à memória não é uniforme. A memória é fisicamente distribuída entre os processadores, mas logicamente compartilhada.

    Funcionamento:

    Cada processador possui uma memória local com tempo de acesso mais rápido.

    Processadores podem acessar a memória de outros processadores, porém com latência maior.

    Resolve gargalos presentes no UMA, permitindo escalabilidade em sistemas com muitos processadores.

    Subdivisões:

    CC-NUMA (Cache Coherent NUMA): Garante coerência de cache.

    NC-NUMA (Non-Coherent NUMA): Não garante coerência de cache, deixando isso a cargo do software.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    1. MPP (Massively Parallel Processing)

    Definição:O MPP é um sistema composto por muitos computadores independentes, chamados nós de processamento, que trabalham em paralelo para resolver um problema único.

    Funcionamento:

    Cada nó possui seu próprio processador e memória local.

    A comunicação entre os nós ocorre por meio de uma rede de interconexão de alta velocidade.

    Utilizado para processamento massivo de tarefas divididas em subtarefas menores, executadas em paralelo.

    2. COW (Cluster of Workstations)

    Definição:O COW consiste em um conjunto de computadores comuns ou estações de trabalho, interligados em rede, funcionando como um cluster para processamento paralelo.

    Funcionamento:

    Cada computador no cluster funciona de forma independente, mas todos colaboram para resolver um problema.

    A comunicação entre os computadores é feita por meio de protocolos de rede padrão como TCP/IP.

    É uma solução mais econômica em comparação ao MPP, pois utiliza hardware disponível no mercado (off-the-shelf).

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    R: Quando três processadores tentam acessar a memória global simultaneamente em um sistema de barramento compartilhado, ocorre uma competição pelo barramento, uma vez que ele é um recurso único e limitado. O barramento só pode atender a uma solicitação por vez.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    R: Nem sempre um maior número de núcleos significa melhor processamento. Isso depende de fatores como tipo de aplicação, otimização do software e capacidade do sistema operacional.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    R: Atualmente, o processador com o maior número de núcleos é o AMD EPYC 9754, que possui 128 núcleos e 256 threads.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    R: Cluster: Vale a pena quando se tem necessidade de controle total sobre os recursos, baixa latência e processamento de alto desempenho em uma rede local.

    Exemplo: Simulações científicas, render farms, análise meteorológica.

    Cloud Computing: Ideal quando é necessário flexibilidade, escalabilidade e custo variável, sem necessidade de infraestrutura local.

    Exemplo: Startups, serviços como streaming (Netflix) ou análise de dados em tempo real (Google Cloud).

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    R: Google → Fracamente acoplado (clusters distribuídos, onde cada servidor funciona de forma independente e troca informações por meio de passagem de mensagens).

    NASA → Fortemente acoplado (supercomputadores com processamento paralelo e memória compartilhada, o foco está em alto desempenho com baixa latência na comunicação entre os processadores).

    Curtir

  6. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    R: Provido que a informação partiu de apenas uma instrução e ela gerou diversas tarefas este sistema é SIMD (instrução única e múltiplos dados).

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    R: Multicomputadores são sistemas distribuídos compostos por múltiplos computadores independentes, cada um com sua própria memória e processador, que se comunicam por meio de uma rede, compartilhando tarefas e dados. Em contraste, multiprocessadores são sistemas nos quais vários processadores compartilham uma única memória física, permitindo maior interação entre as CPUs e acesso mais rápido aos dados compartilhados. Um exemplo de multicomputador é um cluster de servidores em um data center, enquanto um exemplo de multiprocessador é uma máquina com várias CPUs compartilhando a mesma RAM, como servidores em um sistema de banco de dados em memória.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    R: UMA (Uniform Memory Access) é uma categoria de multiprocessadores em que todos os processadores têm acesso à memória com a mesma velocidade, proporcionando uma distribuição equitativa dos recursos, o que simplifica o gerenciamento, mas pode limitar a escalabilidade.NUMA (Non-Uniform Memory Access) é uma categoria de multiprocessadores em que a velocidade de acesso à memória varia, dependendo da proximidade física dos processadores à memória compartilhada, permitindo escalabilidade, mas requer um gerenciamento mais complexo.COMA (Cache-Only Memory Architecture) é uma categoria de multiprocessadores que se baseia na distribuição da memória em caches, favorecendo um compartilhamento flexível e eficiente, embora a coesão e consistência dos dados possam ser desafiadoras de gerenciar devido à complexidade das conexões de cache.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    R: MPP (Massively Parallel Processing) é uma classificação de multicomputadores em que muitos processadores independentes trabalham em paralelo para resolver tarefas computacionais complexas. Cada processador possui sua própria memória e sistema operacional, e a comunicação entre os processadores é realizada por meio de uma rede de alta velocidade. Essa abordagem é adequada para cargas de trabalho intensivas, como simulações científicas e análises de dados em larga escala.COW (Cluster of Workstations) é uma categoria de multicomputadores em que um grupo de computadores pessoais ou estações de trabalho é interconectado para compartilhar recursos de forma eficiente. Cada estação de trabalho é usada como um nó no cluster e mantém sua memória e sistema operacional. Os COWs são frequentemente usados em ambientes de computação distribuída, como aplicativos da web e processamento de carga de trabalho variável, oferecendo flexibilidade e custos mais baixos em comparação com servidores dedicados.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    R: Em um multiprocessador com barramento compartilhado, quando três processadores tentam acessar a memória global exatamente no mesmo instante, ocorre uma situação de contenção no barramento. Como o barramento é um recurso compartilhado, apenas um processador pode acessá-lo de cada vez, resultando em atrasos significativos para os processadores que não conseguem acessar a memória imediatamente. Esse conflito pode levar a um gargalo de desempenho, prejudicando a eficiência do sistema, e os processadores devem aguardar sua vez para acessar a memória, o que pode aumentar a latência das operações de leitura e escrita. É importante destacar que, em sistemas desse tipo, a contenção no barramento é um dos desafios a serem gerenciados para otimizar o desempenho global.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    R: A quantidade de núcleos em um processador não é o único fator determinante para o desempenho. A eficácia do processamento depende do equilíbrio entre a carga de trabalho e a capacidade de paralelismo do software. Ter mais núcleos é benéfico para tarefas que podem ser divididas em múltiplas threads, como renderização 3D, simulações científicas ou servidores de alto tráfego. No entanto, para tarefas de software que não podem ser facilmente paralelizadas, ter mais núcleos pode não proporcionar ganhos significativos de desempenho. Portanto, o valor real da quantidade de núcleos depende do uso específico e da otimização do software para aproveitar o paralelismo, tornando a relação entre núcleos e desempenho um equilíbrio importante a ser considerado.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    R: Atualmente o processador com maior quantidade de núcleos é o AMD Ryzen Threadripper 3990X, que possui 64 núcleos e 128 threads.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    R: Clusters são adequados para cargas de trabalho que exigem alto desempenho e processamento intensivo, como simulações científicas, análises de big data ou renderização de imagens, pois distribuem a carga entre vários nós para acelerar o processamento. Por outro lado, a computação em nuvem é ideal para cenários em que a escalabilidade, a flexibilidade e a disponibilidade são prioridades, sendo útil para aplicativos da web, armazenamento de dados, recuperação de desastres e cargas de trabalho variáveis, onde os recursos podem ser alocados e dimensionados de acordo com as necessidades, sem a necessidade de investimento em hardware físico. A escolha entre cluster e computação em nuvem depende das características específicas e dos requisitos de sua carga de trabalho.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    R: Os servidores de pesquisa do Google podem ser considerados fracamente acoplados, uma vez que os servidores processam consultas de pesquisa de forma independente, com pouca coordenação direta entre eles. Isso permite escalabilidade e rápida recuperação de informações em uma vasta rede de servidores distribuídos. Por outro lado, os servidores de processamento de imagens da NASA podem variar em sua classificação. Se estiverem altamente interconectados e coordenados para tarefas de processamento intensivo, podem ser considerados fortemente acoplados.

    Curtir

  7. Matheus Felipe Bortoleto Rodrigues 2267454

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    R: Esse é um sistema SIMD (Single Instruction, Multiple Data), pois todas as abelhas realizam a mesma tarefa (colher néctar de rosas) simultaneamente, mas em dados diferentes (rosas distintas).

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    • R: Multicomputadores: São sistemas compostos por múltiplos computadores independentes conectados por uma rede. Cada computador possui seu próprio processador, memória e sistema operacional.

    – Memória: Cada computador tem memória distribuída e privada, ou seja, não é compartilhada entre os nós do sistema. A comunicação ocorre via mensagens.

    – Exemplo: Um cluster de servidores usados para processamento em larga escala, como o sistema Hadoop para big data.

    Multiprocessadores: São sistemas que possuem dois ou mais processadores compartilhando o mesmo barramento e, frequentemente, a mesma memória física. Trabalham juntos em um único sistema operacional.

    – Memória: Utilizam memória compartilhada, acessada por todos os processadores. A comunicação entre os processadores ocorre por meio dessa memória compartilhada.

    – Exemplo: Computadores com processadores multicore, como CPUs modernas usadas em desktops e servidores.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    • R: – UMA (Uniform Memory Access)

    Arquitetura em que todos os processadores possuem o mesmo tempo de acesso à memória principal. Há uma única memória principal uniforme, compartilhada entre os processadores. Essa configuração é mais simples de programar, já que todos os processadores têm acesso igual à memória, sendo adequada para sistemas com poucos processadores.

    • – NUMA (Non-Uniform Memory Access)

    Nessa arquitetura, cada processador possui uma memória local, mas pode acessar as memórias de outros processadores, formando um espaço de memória compartilhado. O tempo de acesso varia, sendo mais rápido para a memória local do que para a de outros processadores. É mais escalável que a UMA, mas apresenta maior complexidade na programação e no gerenciamento da memória.

    • – COMA (Cache-Only Memory Access)

    Arquitetura onde não existe uma memória compartilhada fixa. Em vez disso, os processadores utilizam caches distribuídos para armazenar os dados, que são movimentados dinamicamente entre os caches. Essa abordagem é altamente eficiente para sistemas que acessam repetidamente os mesmos dados, mas é extremamente complexa de implementar.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    • R:
      • MPP (Massively Parallel Processors)

    Arquitetura composta por multicomputadores altamente paralelos, com cada nó possuindo sua própria memória local. A comunicação entre os nós ocorre por meio de troca de mensagens e eles são interligados por uma rede de alta velocidade. Apresenta excelente escalabilidade, sendo capaz de suportar muitos processadores, mas a programação é mais complexa.

    • – COW (Cluster of Workstations)

    Configuração baseada em clusters de estações de trabalho dedicadas ao processamento paralelo. As estações são conectadas por redes padrão ou de baixa latência e otimizadas para executar operações paralelas. As principais otimizações do sistema são realizadas no software, tornando-o eficiente para aplicações paralelas.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    R:Nem sempre. A quantidade de núcleos maior geralmente melhora o desempenho em tarefas que podem ser paralelizadas (processos que podem ser divididos entre vários núcleos). Porém, o ganho não é linear, devido às limitações como:

    – Overhead de comunicação entre os núcleos.

    – Tarefas que não são paralelizáveis, regidas pela Lei de Amdahl.

    – Capacidade do software de utilizar múltiplos núcleos de forma eficiente.

    Assim, mais núcleos são melhores apenas para aplicações específicas, como edição de vídeo, simulações científicas e servidores de alta carga.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    R: O processador com maior quantidade de núcleos atualmente é o AMD Instinct MI300A, com mais de 146 bilhões de transistores e centenas de núcleos destinados a workloads de computação de alta performance. Ele é voltado para supercomputação. Outro exemplo é o Epyc 9654 da AMD, com 96 núcleos físicos.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    R:  Cluster:

    – Ideal para tarefas de alta performance e baixa latência, como simulações científicas, modelagens complexas, processamento de dados em tempo real ou renderização 3D.

    – Utilizado quando há necessidade de controle total do hardware e do software.

    Cloud Computing:

    – Melhor para demandas escaláveis e flexíveis, como hospedagem de sites, análise de big data, aplicações baseadas em IA e armazenamento.

    – Usado quando é necessário reduzir custos com infraestrutura ou lidar com demandas variáveis.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    R: Google (Servidores de Pesquisa): Fracamente acoplado.Os servidores do Google trabalham em um ambiente de cluster com processamento paralelo distribuído, conectados por redes de alta velocidade. A arquitetura é projetada para lidar com grandes volumes de dados em sistemas distribuídos, o que caracteriza acoplamento fraco.

    NASA (Processamento de Imagens): Fortemente acoplado.
    Para o processamento de imagens, como renderização e simulações científicas, a NASA utiliza supercomputadores com arquitetura fortemente acoplada, onde os processadores compartilham memória e trabalham de forma sincronizada para obter alta performance e precisão em cálculos intensivos.

    Curtir

  8. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    O exemplo apresentado representa um sistema MIMD

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Multicomputadores: São sistemas formados por computadores independentes conectados em rede, cada um com sua memória própria.

    Multiprocessadores: São sistemas com múltiplos processadores compartilhando uma única memória principal.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    Multiprocessadores Simétricos (SMP):

    • Todos os processadores compartilham a mesma memória e têm acesso igual ao sistema operacional.

    Multiprocessadores Assimétricos:

    • Apenas um processador é responsável pelo controle do sistema, e os demais executam tarefas atribuídas.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    Fortemente acoplados: Possuem comunicação mais rápida e direta entre os sistemas. Exemplo: clusters HPC (High-Performance Computing).

    Fracamente acoplados: Comunicação mais lenta via rede. Exemplo: sistemas distribuídos.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Se três processadores tentarem acessar a memória global ao mesmo tempo em um sistema de barramento compartilhado, apenas um processador conseguirá o acesso por vez, o que pode causar um gargalo no desempenho.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Não necessariamente. Processadores com mais núcleos são úteis para tarefas altamente paralelizáveis, como processamento de vídeos ou simulações científicas. Porém, para aplicações sequenciais, adicionar mais núcleos não melhora o desempenho, pois o gargalo é a execução linear.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    Atualmente, o processador AMD EPYC 9654 possui 96 núcleos

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    • Clusters: São indicados quando há demanda por alta performance computacional e controle completo do ambiente, como simulações científicas.
    • Cloud computing: Adequado para escalabilidade e custos variáveis, como servidores de aplicativos.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Servidores do Google: Fracamente acoplados. São sistemas distribuídos usados para busca e armazenamento de dados com comunicação via rede.

    Servidores da NASA: Fortemente acoplados. Usam supercomputadores para simulações científicas, exigindo comunicação direta e rápida entre os nós.

    Curtir

    1. Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    RESP: Na história que você mencionou, a abelha-rainha convoca suas operárias para realizar a mesma tarefa, ou seja, colher néctar das rosas. Isso caracteriza um sistema SIMD (Single Instruction, Multiple Data), onde todas as abelhas seguem a mesma instrução de forma simultânea, mas em diferentes locais. Ou seja, elas estão fazendo a mesma ação, mas em lugares diferentes ao mesmo tempo.

    1. Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    RESP: Tanto os multicomputadores quanto os multiprocessadores são tipos de sistemas de computação paralela, mas com diferenças importantes.

    Os multicomputadores são formados por vários computadores independentes que se comunicam entre si através de uma rede. Cada computador tem sua própria memória local, e a comunicação entre eles é feita por troca de mensagens pela rede.

    Por outro lado, os multiprocessadores compartilham uma única memória principal. Ou seja, vários processadores trabalham juntos, acessando a mesma memória para realizar o processamento das tarefas.

    Esses dois sistemas têm abordagens diferentes para gerenciar a memória, com os multicomputadores utilizando memória local separada e os multiprocessadores compartilhando a mesma memória centralizada.

    1. Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    RESP:

    UMA (Uniform Memory Access): Em UMA, todos os processadores têm acesso igual e com o mesmo tempo de latência a todos os módulos de memória. Isso significa que qualquer CPU pode acessar qualquer parte da memória com o mesmo tempo de resposta, pois a memória é compartilhada de forma uniforme entre os processadores.

    COMA (Cache Only Memory Access): Na arquitetura COMA, o acesso à memória é feito apenas através de caches, que são muito maiores do que as caches tradicionais. Cada processador tem sua própria cache, e o sistema suporta a replicação dos mesmos blocos de cache em diferentes nós. Isso reduz o tempo de acesso, pois os dados são encontrados localmente nas caches, sem a necessidade de acessar a memória principal.

    NUMA (Non-Uniform Memory Access): Em NUMA, cada processador tem sua própria memória local associada. O sistema utiliza um espaço de endereçamento único, mas o tempo de acesso à memória local é mais rápido do que o acesso à memória de outros processadores. A comunicação entre processadores e suas memórias não locais ocorre por meio de uma infraestrutura de comunicação, o que cria um acesso não uniforme à memória.

    1. Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    RESP:

    MPP (Massively Parallel Processors): Este tipo de arquitetura é composto por multicomputadores massivamente paralelos, com várias memórias locais. Os nós (unidades de processamento) se comunicam por troca de mensagens, sendo interconectados por redes de alta velocidade. A principal vantagem do MPP é a boa escalabilidade, ou seja, pode-se adicionar facilmente muitos processadores. No entanto, a programação é mais complexa devido à grande quantidade de processadores e à necessidade de coordenação entre eles.

    COW (Cluster of Workstations): O COW é composto por redes de estações de trabalho dedicadas ao processamento paralelo. Essas estações são interconectadas por redes padrão ou de baixa latência. Cada estação de trabalho é otimizada para operações paralelas, mas as principais otimizações são feitas no nível do software. A comunicação entre as estações de trabalho é uma das chaves para o bom desempenho dessa arquitetura.

    1. Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    RESP: Se três processadores tentarem acessar a memória global ao mesmo tempo, haverá um conflito de barramento. Isso pode gerar problemas, como atrasos no processo, pois o barramento não consegue lidar com múltiplos acessos simultâneos, causando uma espera para que cada processador possa acessar a memória.

    1. – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    RESP: Não é apenas a quantidade de núcleos que define a qualidade do processamento. Embora mais núcleos possam melhorar a capacidade de paralelismo de um processador, outros fatores também são cruciais. A frequência de clock, a quantidade de cache, a arquitetura e o design do processador também têm grande influência no desempenho geral. Então, a quantidade de núcleos é importante, mas deve ser analisada junto com outros aspectos.

    1. Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    RESP: Atualmente, o AMD EPYC 9004 é o processador com a maior quantidade de núcleos, oferecendo até 96 núcleos. Esse modelo também quebrou mais de 300 recordes de desempenho, o que demonstra sua grande capacidade de processamento.

    1. Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    RESP: Cluster: É ideal quando o trabalho exige alto desempenho e baixa latência, como em empresas que lidam com uma grande quantidade de dados e alta demanda. Empresas que usam servidores físicos dedicados em locais específicos podem se beneficiar de clusters.

    Cloud Computing: É mais vantajoso quando se precisa de escabilidade, flexibilidade e economia de espaço. É ideal para empresas que necessitam de acesso remoto, centralização de dados ou que possuem operações em múltiplas localidades ao redor do mundo.

    1. Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    RESP: Google: Utiliza servidores fortemente acoplados, pois eles trabalham juntos de forma coordenada para processar grandes volumes de dados da web rapidamente.

    NASA: Os servidores de processamento de imagens da NASA podem ser classificados como fortemente acoplados, pois precisam de coordenação para lidar com imagens complexas. No entanto, eles também podem usar servidores fracamente acoplados para tarefas menos complexas, que não exigem tanta sincronização entre os servidores.

    Curtir

  9. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Sistema SIMD, pois todas as abelhas recebem a mesma instrução da abelha-rainha e executam a mesma tarefa de forma simultânea. Assim como em um sistema SIMD, há uma única instrução sendo seguida por várias unidades realizando a mesma operação em paralelo.

    2 – Diferencie Multicomputadores de Multiprocessadores. Expliqueo sistema de memória de cada um e exemplifique-os.

    Multicomputadores são sistemas formados por vários computadores independentes conectados em rede, onde cada um tem sua própria memória. Eles trocam informações por meio de mensagens e funcionam de maneira distribuída. Já os multiprocessadores são sistemas com vários processadores dentro de um único computador, que compartilham uma memória central comum. Nos multicomputadores, cada nó funciona de forma mais isolada, enquanto nos multiprocessadores os processadores acessam diretamente a mesma área de memória. Um exemplo de multicomputador seria um cluster de servidores, e um exemplo de multiprocessador seria um computador com processador multicore, como os da linha Intel Xeon.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    No modelo UMA, todos os processadores acessam a memória no mesmo tempo, ou seja, o tempo de acesso é igual para todos. No modelo NUMA, cada processador tem uma memória local, mas também pode acessar as memórias dos outros, e o tempo de acesso varia dependendo da distância entre o processador e a memória. No modelo COMA, não há uma memória principal fixa, os dados ficam apenas em caches distribuídos entre os processadores, e são movidos conforme a necessidade. Cada um desses modelos tem vantagens e desvantagens em termos de desempenho e complexidade.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    Um sistema MPP é composto por muitos processadores interligados, preparados para executar tarefas em paralelo com alto desempenho, geralmente utilizados em supercomputadores. Já o COW, que é um cluster de estações de trabalho, usa computadores comuns conectados em rede para dividir o trabalho. Apesar de ser mais barato, seu desempenho depende muito da qualidade da rede entre os computadores.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Quando três processadores tentam acessar a memória global ao mesmo tempo em um sistema com barramento compartilhado, apenas um deles consegue o acesso imediato, e os outros dois precisam esperar. Isso acontece porque o barramento é um recurso único, e não pode ser utilizado por todos ao mesmo tempo. Esse tipo de contenção pode diminuir o desempenho do sistema, pois os processadores ficam parados esperando sua vez. Para evitar esse problema, existem métodos de controle que organizam o acesso ao barramento, e em sistemas mais avançados, pode-se usar arquiteturas que reduzem ou eliminam esse gargalo.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Ter mais núcleos em um processador pode melhorar o desempenho, mas isso depende se o software foi feito para usar vários núcleos. Se o programa não for otimizado para isso, o ganho pode ser pequeno. Para tarefas simples do dia a dia, como navegação na internet ou uso de editores de texto, muitos núcleos não fazem tanta diferença. Já em tarefas pesadas, como edição de vídeo, renderização ou simulações científicas, mais núcleos podem ser muito vantajosos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    O processador com maior número de núcleos atualmente é o AMD Ryzen Threadripper Pro 5995WX, que possui 64 núcleos e 128 threads.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Usar um cluster é uma boa opção quando há necessidade de alto desempenho contínuo, controle total sobre o hardware e segurança local, como em pesquisas científicas e grandes empresas com infraestrutura própria. Já o uso da computação em nuvem vale mais a pena quando a carga de trabalho varia muito, ou quando o projeto é temporário, pois permite escalar os recursos conforme a necessidade e evita gastos com equipamentos e manutenção. É muito útil para empresas menores ou projetos que precisam ser acessados de vários lugares.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Os servidores de pesquisa do Google e os servidores de processamento de imagens da NASA são exemplos de sistemas fracamente acoplados. Isso significa que cada servidor trabalha de forma relativamente independente, processando partes diferentes de uma grande tarefa. Mesmo que haja comunicação entre eles, não dependem fortemente uns dos outros para funcionar, o que caracteriza esse tipo de sistema. Esse modelo permite maior flexibilidade e escalabilidade, ideal para lidar com grandes volumes de dados.

    Curtir

  10. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Sistema SIMD, pois todas as abelhas recebem a mesma instrução da abelha-rainha e executam a mesma tarefa de forma simultânea. Assim como em um sistema SIMD, há uma única instrução sendo seguida por várias unidades realizando a mesma operação em paralelo.

    2 – Diferencie Multicomputadores de Multiprocessadores. Expliqueo sistema de memória de cada um e exemplifique-os.

    Multicomputadores são sistemas formados por vários computadores independentes conectados em rede, onde cada um tem sua própria memória. Eles trocam informações por meio de mensagens e funcionam de maneira distribuída. Já os multiprocessadores são sistemas com vários processadores dentro de um único computador, que compartilham uma memória central comum. Nos multicomputadores, cada nó funciona de forma mais isolada, enquanto nos multiprocessadores os processadores acessam diretamente a mesma área de memória. Um exemplo de multicomputador seria um cluster de servidores, e um exemplo de multiprocessador seria um computador com processador multicore, como os da linha Intel Xeon.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    No modelo UMA, todos os processadores acessam a memória no mesmo tempo, ou seja, o tempo de acesso é igual para todos. No modelo NUMA, cada processador tem uma memória local, mas também pode acessar as memórias dos outros, e o tempo de acesso varia dependendo da distância entre o processador e a memória. No modelo COMA, não há uma memória principal fixa, os dados ficam apenas em caches distribuídos entre os processadores, e são movidos conforme a necessidade. Cada um desses modelos tem vantagens e desvantagens em termos de desempenho e complexidade.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    Um sistema MPP é composto por muitos processadores interligados, preparados para executar tarefas em paralelo com alto desempenho, geralmente utilizados em supercomputadores. Já o COW, que é um cluster de estações de trabalho, usa computadores comuns conectados em rede para dividir o trabalho. Apesar de ser mais barato, seu desempenho depende muito da qualidade da rede entre os computadores.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Quando três processadores tentam acessar a memória global ao mesmo tempo em um sistema com barramento compartilhado, apenas um deles consegue o acesso imediato, e os outros dois precisam esperar. Isso acontece porque o barramento é um recurso único, e não pode ser utilizado por todos ao mesmo tempo. Esse tipo de contenção pode diminuir o desempenho do sistema, pois os processadores ficam parados esperando sua vez. Para evitar esse problema, existem métodos de controle que organizam o acesso ao barramento, e em sistemas mais avançados, pode-se usar arquiteturas que reduzem ou eliminam esse gargalo.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Ter mais núcleos em um processador pode melhorar o desempenho, mas isso depende se o software foi feito para usar vários núcleos. Se o programa não for otimizado para isso, o ganho pode ser pequeno. Para tarefas simples do dia a dia, como navegação na internet ou uso de editores de texto, muitos núcleos não fazem tanta diferença. Já em tarefas pesadas, como edição de vídeo, renderização ou simulações científicas, mais núcleos podem ser muito vantajosos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    O processador com maior número de núcleos atualmente é o AMD Ryzen Threadripper Pro 5995WX, que possui 64 núcleos e 128 threads.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Usar um cluster é uma boa opção quando há necessidade de alto desempenho contínuo, controle total sobre o hardware e segurança local, como em pesquisas científicas e grandes empresas com infraestrutura própria. Já o uso da computação em nuvem vale mais a pena quando a carga de trabalho varia muito, ou quando o projeto é temporário, pois permite escalar os recursos conforme a necessidade e evita gastos com equipamentos e manutenção. É muito útil para empresas menores ou projetos que precisam ser acessados de vários lugares.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Os servidores de pesquisa do Google e os servidores de processamento de imagens da NASA são exemplos de sistemas fracamente acoplados. Isso significa que cada servidor trabalha de forma relativamente independente, processando partes diferentes de uma grande tarefa. Mesmo que haja comunicação entre eles, não dependem fortemente uns dos outros para funcionar, o que caracteriza esse tipo de sistema. Esse modelo permite maior flexibilidade e escalabilidade, ideal para lidar com grandes volumes de dados.

    Curtir

  11. Aluno: bernardo de assis munhoz ______________________________________________________________________________

    Estudo de caso: quanto maior a quantidade de núcleos em um processador melhor é o seu processamento?

    Um processador multitarefa é um processador que aparentemente pode fazer várias tarefas ao mesmo tempo, porque funcionalmente ele dedica pequenas frações da UCP (processador central) a cada uma das tarefas, seja cálculo, seja apresentar uma informação na tela, mandar um documento para a impressão, salvar um arquivo no SSD, etc.

    Se o processador for rápido, essas pequenas interrupções passam despercebidas e dá a impressão de que o processador está realizando várias coisas ao mesmo tempo, quando na verdade está fazendo apenas uma coisa de cada vez e as demais estão na fila de pronto, aguardando a execução.

    Mas se o processador possui vários “cores” ou núcleos, é como se você realmente tivesse vários processadores diferentes dentro do computador, por exemplo, um dedicado a calcular, outro para atualizar a tela, outro para escrever, etc.

    Você realmente ganhará velocidade porque agora se a multitarefa é real, ao mesmo tempo o processador dedica tempo para resolver vários problemas diferentes. Por exemplo, um núcleo é dedicado a escrever no Word, outro está em segundo plano e atende às solicitações da impressora, outro está baixando e-mails. Obviamente, se você tiver dois núcleos, poderá realizar várias tarefas mais rapidamente do que se tiver apenas um. Porém, este em particular tem um limite, que são as diferentes tarefas que ele tem em execução, não adianta possuir “12 núcleos”, se você iniciar apenas quatro tarefas diferentes.

    No entanto, existem linguagens de programação capazes de quebrar processos iterativos em diferentes “threads” e enviar cada um para um núcleo diferente do processador. Por exemplo, você está calculando uma fatura para muitos produtos que foram comprados em valores diferentes e que aplicam impostos diferentes.

    Se você tiver uma programação adequada, essa fatura irá calcular cada linha em um núcleo diferente, para então somar os valores parciais e calcular o total da fatura. Se você tiver a possibilidade de calcular vários “threads” de uma só vez, você terminará mais cedo, quanto mais threads você puder lidar de uma só vez, melhor. Mas se você tiver muitos núcleos, chegará um momento em que você não poderá tirar proveito de todos eles, porque você não tem “threads” suficientes para alimentar tantos núcleos.

    Neste exemplo, pode-se verificar que a velocidade real de um programa depende dos “núcleos” que a máquina possui, mas a partir de certo ponto não importa quantos núcleos você possua, o que realmente importa é a velocidade da sequência de cálculos lineares mais complexos que a máquina possui.

    Em um servidor de rede que tenha muitos acessos à Internet, será útil ter o maior número possível de “núcleos”, pois cada núcleo tratará da consulta feita por um usuário, mas por outro lado, esse mesmo processador será excessivo para um indivíduo e não vai tirar vantagem disso.

    Se o número de consultas disparar, não haverá um computador com “núcleos” suficientes no mercado, então recorre-se a fazer os processadores a funcionarem em “cluster”, ou seja, cada processador com os seus devidos núcleos” passa a trabalhar em paralelo, dentro do que se chama de “cluster”, (conjunto, grupo ou acumulação), com outros processadores com os seus respectivos “núcleos”.

    Diante do estudo de caso apresentado, responda:

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    R: SIMD, pois uma única instrução, que no caso é colher o néctar, é aplicada em multiplos dados, no caso rosas / diferentes lugares.

    2 – Diferencie Multicomputadores de Multiprocessadores. Expliqueo sistema de memória de cada um e exemplifique-os.

    R: Multicomputadores são várias máquinas independentes, cada uma com sua memória, conectadas via rede e trabalhando em paralelo. Já Multiprocessadores, são vários processadores compartilhando a mesma memoria principal, trabalhando junto no mesmo sistema fisico

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    R: NUMA – todos o processadores tem acesso a toda memorias

    CC – NUMA – Cada nó processador possui uma cache local para reduzir o tráfego na rede de interconexão. 

    COMA – cada nó de processamento possui uma parte da memória global. 

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    R: O MPP (Massively Parallel Processing) é formado por vários nós, cada um com sua própria memória, que trabalham juntos usando um barramento rápido para sincronizar as tarefas. Ele é feito para rodar muitas tarefas ao mesmo tempo e em larga escala, sendo ideal para trabalhos pesados como simulações científicas e processamento de grandes dados.

    Já o COW (Cluster of Workstations) é um grupo de computadores comuns ligados em rede para dividir o trabalho entre eles. É uma solução mais barata e escalável, usada em áreas como negócios e ciência, mas pode enfrentar dificuldades na hora de coordenar e sincronizar as tarefas, o que pode afetar o desempenho.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    R: Apenas um de cada vez ira poder acessar a memória, uma vez que o barramento é um recurso exclusivo para a comunicação entre processadores e memórias. Os demais processadores terão de esperar sua vez, estando bloqueados ate que o barramento esteja disponível novamente .

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    R: Sim, porém depende da forma como software utiliza esses núcleos, se o software for sequencial, e não estiver habilitado para trabalhar com vários núcleos, a existência de múltiplos núcleos tera pouca eficiência.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    R: AMD EPYC 9654

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    R: Cluster:

    – simulações cientificas

    – calculos complexos

    -processamentio paralelo intensivo

    cloud computing.

    -Aplicações web e serviços online

    -Backup

    -Armazenamento de dados

    -Startups

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    R: Sistemas fracamente acoplados, pois são compostos por vários computadores independentes, contendo sua própria memória principal local, se comunicando por meio de uma rede.

    REFERÊNCIA

    TANENBAUM, Andrew S.; ZUCCHI, Wagner Luiz. Organização estruturada de computadores. Pearson Prentice Hall, 2009.

    Curtir

  12. Alex Thurran Gianzantti

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    A situação descrita é um sistema SIMD (Single Instruction, Multiple Data), pois todas as abelhas (unidades de execução) estão realizando a mesma tarefa (coletar néctar de rosas), mas em dados diferentes (rosas distintas).

    2 – Diferencie Multicomputadores de Multiprocessadores. Expliqueo sistema de memória de cada um e exemplifique-os.

    Multicomputadores são sistemas compostos por vários computadores independentes, conectados via rede, cada um com sua própria memória local. Exemplo: um cluster de Pcs. Multiprocessadores, por outro lado, possuem vários processadores compartilhando o mesmo sistema de memória. Exemplo: um servidor com múltiplos CPUs que acessam a mesma RAM.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    As classificações de Multiprocessadores podem ser:

    • Fortemente acoplados: compartilham a mesma memória principal, comunicação rápida.
    • Memória Compartilhada Uniforme (UMA): acesso igual à memória.
    • Memória Compartilhada Não Uniforme (NUMA): acesso à memória varia conforme a localização do processador.
    • Grade (Grid): sistemas interconectados com alta coordenação.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    As classificações de Multicomputadores são:

    • Fracamente acoplados: cada computador tem sua memória privada, comunicação via rede.
    • Cluster: vários computadores trabalham juntos como se fossem um só.
    • Grade (Grid Computing): recursos de computação distribuídos e heterogêneos conectados.
    • Sistema de passagem de mensagens: a comunicação ocorre por troca de mensagens entre nós.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Se três processadores acessarem a memória global simultaneamente em um sistema com barramento compartilhado, ocorre contenção de barramento. Isso causa atraso, pois o barramento é um recurso único e os acessos precisam ser serializados, ou seja, um processador de cada vez consegue usar o barramento.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Não necessariamente. Mais núcleos podem melhorar o desempenho se houver tarefas suficientes para distribuí-los (ex: aplicações multithread). Mas acima de certo ponto, o ganho diminui por falta de paralelismo suficiente ou gargalos como memória compartilhada, I/O, etc.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    Atualmente (2025), um dos processadores com maior número de núcleos é o Epyc 9754 da AMD, com 128 núcleos e 256 threads. Em supercomputação, chips como os da Fugaku (ARM-based) usam milhares de núcleos em arquitetura personalizada.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Cluster: ideal para tarefas locais, científicas ou empresariais com grande necessidade de processamento, mas controle total da infraestrutura (ex: simulações meteorológicas).Cloud computing: melhor para escalabilidade, custos flexíveis, e acesso remoto – ótimo para startups, sistemas de IA, sites, análise de big data.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    • Servidores do Google: se enquadram em sistemas fracamente acoplados, pois usam vastos clusters de servidores independentes que se comunicam por rede.
    • Servidores da NASA (ex: processamento de imagens): podem usar tanto sistemas fortemente acoplados (para alto desempenho e sincronização) quanto fracamente acoplados, dependendo da tarefa. Supercomputadores da NASA costumam ter arquitetura híbrida.

    Curtir

  13. Aluno:Otávio Gustavo da Silva

    Diante do estudo de caso apresentado, responda:

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    SIMD (Single Instruction, Multiple Data). Todas as abelhas fazem a mesma tarefa (coletar néctar), apenas com dados diferentes (flores diferentes).

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Multiprocessadores: Um único computador com vários processadores (CPUs) compartilhando uma memória principal. Exemplo: servidores com dois processadores Xeon.

    Multicomputadores: Vários computadores independentes interligados por uma rede, cada um com sua memória própria. Exemplo: cluster de servidores.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    UMA (Uniform Memory Access)

    Todos os processadores acessam a mesma memória com o mesmo tempo de acesso.Exemplo: um servidor simples com dois processadores conectados à mesma RAM.

    NUMA (Non-Uniform Memory Access)

    Cada processador tem sua própria memória, mas pode acessar a memória dos outros, só que o acesso é mais lento quando vai na memória de outro.

    Útil para escalar o número de processadores

    COMA (Cache-Only Memory Architecture)

    Dados são realocados dinamicamente nos caches.

    Não existe uma memória principal fixa. A memória é distribuída como caches nos processadores.

    4 –Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    MPP (Massively Parallel Processor)

    • Vários processadores trabalhando em paralelo, cada um com sua própria memória.
    • É como um supercomputador: muitos processadores executando partes de um problema enorme.

    COW (Cluster of Workstations)

    • Vários computadores comuns (workstations) interligados em rede, trabalhando juntos como se fossem um só sistema.
    • Cada um tem sua memória, processador e sistema operacional.
    • Exemplo: laboratório de informática com vários PCs usados como um supercomputador.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Conflito no barramento: os processadores vão “competir” o acesso à memória, ocorrendo espera/atraso para alguns deles, diminuindo o desempenho.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    As vezes. Mais núcleos ajudam, mas depende do tipo de tarefa. Em processamento de imagens é comum utilizar mais núcleos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    O processador com o maior número de núcleos é o AMD EPYC 9754, com 128 núcleos e 256 threads, de acordo com a AMD.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    • Cluster: Quando você precisa de alto desempenho e controle sobre os servidores (por exemplo, em pesquisa científica ou renderização de filmes).
    • Cloud: Quando precisa de escalabilidade rápida, pagar conforme o uso, sem investir em hardware (exemplo: aplicativos web, backup, análise de dados).

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    • Google: Fracamente acoplado (muitos servidores independentes processando consultas em paralelo).
    • NASA (imagens): Fortemente acoplado (processamento de imagens geralmente requer acesso compartilhado a grandes bancos de dados).

    Curtir

  14. Aluna: Elidia

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Trata-se de um sistema MIMD (Múltiplas Instruções, Múltiplos Dados), pois cada abelha, agindo como um núcleo de processador, pode executar suas próprias instruções de maneira autônoma, embora todas colaborem para um objetivo compartilhado (coletar néctar de rosas). Assim como um sistema MIMD processa instruções distintas em núcleos separados para dados diversos, cada abelha tem autonomia para escolher qual flor investigar e como agir, realizando diferentes tarefas simultaneamente.

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Multiprocessadores e multicomputadores são duas categorias de sistemas de computação paralela que se distinguem fundamentalmente pela forma como seus processadores acessam a memória.

    Multiprocessadores: Caracterizam-se por possuir uma única memória principal que é compartilhada por todos os processadores. Essa arquitetura é conhecida como fortemente acoplada, pois os processadores estão interligados de forma íntima pelo barramento de memória. A comunicação entre os processadores é extremamente rápida, pois ocorre através da leitura e escrita em endereços de memória compartilhados. Sistema de Memória: Memória compartilhada globalmente. Exemplo: Um computador desktop ou notebook moderno com um processador multi-core (por exemplo, Intel Core i9 ou AMD Ryzen 9), onde todos os núcleos acessam o mesmo módulo de memória RAM.

    Multicomputadores: Consistem em múltiplos computadores completos, cada um com seu próprio processador e sua própria memória privada. São sistemas fracamente acoplados, onde a comunicação entre os nós não ocorre via memória, mas sim através de uma rede de interconexão, com a troca de mensagens. Sistema de Memória: Memória privada e distribuída para cada nó. Exemplo: Um “cluster” de servidores, onde várias máquinas independentes trabalham em conjunto. Cada máquina executa seu próprio sistema operacional e se comunica com as outras via rede para resolver um problema maior.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    A arquitetura de Acesso Uniforme à Memória (UMA) constitui um modelo de multiprocessador no qual o tempo de acesso a qualquer posição da memória principal é constante e independente do processador que realiza a solicitação. Em sistemas UMA, os processadores são conectados à memória por meio de um mecanismo de interconexão, como um barramento único ou uma rede comutada. Essa uniformidade na latência de acesso oferece como principal vantagem a simetria, que simplifica o desenvolvimento de software, visto que os programadores não precisam considerar a localidade dos dados para otimizar o desempenho. Contudo, essa aparente simplicidade impõe uma severa limitação de escalabilidade. O meio de interconexão compartilhado, especialmente o barramento, inevitavelmente se torna um gargalo à medida que mais processadores são adicionados, resultando em contenção e degradação do desempenho geral.

    Em contrapartida às limitações do modelo UMA, surge a arquitetura de Acesso Não Uniforme à Memória (NUMA). Este modelo aborda o problema de escalabilidade distribuindo fisicamente a memória entre múltiplos nós, embora mantenha um espaço de endereço lógico único e global. Cada nó do sistema contém um ou mais processadores e um banco de memória local. A consequência direta dessa distribuição é a variação no tempo de acesso: um processador acessa sua memória local de forma muito rápida, enquanto o acesso a uma memória remota, localizada em outro nó, incorre em uma latência significativamente maior. Para gerenciar a consistência de dados nesse ambiente, surgem subdivisões como a CC-NUMA (Cache-Coherent NUMA), na qual o hardware garante a coerência entre os caches, e a NC-NUMA (Non-Cache-Coherent NUMA), onde essa responsabilidade é delegada ao software.

    Por fim, uma evolução do conceito NUMA é a arquitetura de Acesso à Memória Apenas em Cache (COMA). Este modelo trata toda a memória principal distribuída nos nós como um grande cache. Nele, não há um “endereço de casa” fixo para os dados; em vez disso, um bloco de dados migra para o cache local (a memória do nó) do processador que o requisita. O objetivo principal da arquitetura COMA é reduzir a penalidade de acesso remoto encontrada no modelo NUMA, aproximando dinamicamente os dados do processador que os utiliza. Apesar de ser um modelo conceitualmente eficiente para promover a localidade de dados, sua implementação é consideravelmente mais complexa, o que limita sua adoção prática em comparação com a arquitetura NUMA.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    No âmbito dos multicomputadores, arquiteturas que operam com base na passagem de mensagens, duas classificações principais se destacam pela sua abordagem de hardware e custo: os sistemas MPP e os aglomerados COW.

    Os Processadores Massivamente Paralelos (MPP) representam sistemas computacionais altamente integrados e coesos, compostos por um grande número de nós de processamento em uma única máquina. Esses sistemas são caracterizados pelo uso de hardware proprietário e redes de interconexão personalizadas de alta velocidade, projetados por um único fabricante para maximizar o desempenho. Frequentemente, essas redes adotam topologias específicas e otimizadas, como Grade (Grid) ou Hipercubo (Hypercube), com o intuito de minimizar a latência na comunicação entre os nós. O objetivo primordial de um MPP é funcionar como um supercomputador, focado na resolução de problemas computacionais de altíssima complexidade.

    Em contraposição à abordagem de hardware customizado dos MPPs, os Aglomerados de Estações de Trabalho (COW) surgem como uma alternativa mais econômica para a computação paralela. Um COW consiste em um conjunto de computadores convencionais e independentes, como PCs ou estações de trabalho, interligados por uma rede padrão, como a Ethernet. A principal característica desta abordagem é a utilização de componentes de prateleira (commodity hardware), o que reduz drasticamente o custo de implementação em comparação com um MPP. Uma vantagem notável deste modelo é a sua flexibilidade, pois os computadores do aglomerado podem ser utilizados para tarefas individuais quando não estão alocados em processamentos paralelos. Portanto, o propósito de um COW é oferecer poder de supercomputação de forma acessível, aproveitando hardware já existente ou de baixo custo.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Se três processadores tentarem acessar a memória global simultaneamente em um sistema com barramento compartilhado, ocorrerá um conflito de acesso, também conhecido como contenção de barramento. O barramento de memória é um recurso singular e, por natureza, só pode atender a uma requisição de transferência de dados por vez. Para gerenciar esses acessos concorrentes, um componente de hardware chamado árbitro de barramento intervém. Ele concede acesso ao barramento a um dos processadores, enquanto os outros dois são forçados a esperar. Essa espera gera latência e pode se tornar um gargalo de desempenho à medida que mais processadores são adicionados ao sistema, um fenômeno conhecido como saturação do barramento.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Não necessariamente. A relação entre a quantidade de núcleos e a melhoria de processamento não é linear e depende intrinsecamente da natureza da carga de trabalho (software) e do ambiente de uso.

    A premissa de que mais núcleos resultam em mais velocidade é verdadeira quando as tarefas podem ser divididas e executadas em paralelo. Um exemplo claro é um servidor de rede que atende a múltiplos usuários simultaneamente; neste caso, cada núcleo pode, idealmente, tratar a requisição de um usuário diferente, tornando o sistema mais responsivo. Da mesma forma, programas projetados com paralelismo em mente, capazes de dividir um processo grande em vários threads, podem se beneficiar enormemente de um número maior de núcleos.

    Entretanto, há um ponto de rendimento decrescente. Se o software não for projetado para utilizar múltiplos núcleos, ou se as tarefas em execução forem poucas, os núcleos adicionais permanecerão ociosos, não contribuindo para o desempenho. Chega-se a um momento em que não há threads suficientes para “alimentar” todos os núcleos. Nesses casos, a velocidade de execução de um único thread (desempenho single-core), que é influenciada pela frequência (clock) e pela arquitetura do processador, torna-se o fator mais importante para a percepção de velocidade. Para um usuário comum, um número excessivo de núcleos pode não trazer vantagens práticas perceptíveis.

    Portanto, um maior número de núcleos é benéfico para tarefas massivamente paralelas, mas o desempenho real depende do equilíbrio entre o hardware (núcleos) e o software (capacidade de paralelização).

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    Atualmente, o processador com a maior quantidade de núcleos disponível comercialmente para servidores é o AMD EPYC™ 9754 “Bergamo”. Este processador, projetado para aplicações nativas em nuvem e de alta densidade computacional, possui 128 núcleos e 256 threads. Sua arquitetura é otimizada para oferecer o máximo de paralelismo em ambientes de data center, onde a capacidade de lidar com um grande volume de tarefas simultâneas é crucial.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    A decisão entre a implementação de um cluster local e a adoção da computação em nuvem (cloud computing) é uma escolha estratégica que depende da análise de múltiplos fatores, incluindo custo, nível de controle desejado, requisitos de escalabilidade e a natureza da carga de trabalho.

    A utilização de um cluster local é justificada em cenários onde a demanda por processamento de alta performance é constante e previsível, e quando o controle total sobre o ambiente de hardware e software é uma prioridade para a organização. Consequentemente, torna-se a solução preferencial para aplicações científicas e de engenharia (HPC – High-Performance Computing) que possuem requisitos muito específicos, bem como para organizações que devem garantir a soberania e a segurança de seus dados por meio de uma infraestrutura privada. Adicionalmente, em situações onde a baixa latência é um fator crítico, a proximidade física entre o processamento e a fonte de dados favorece o modelo de cluster, como no caso de um pico de consultas que excede a capacidade de um único servidor e exige o trabalho paralelo de vários processadores.

    Por outro lado, a computação em nuvem apresenta-se como a opção mais vantajosa para cenários com cargas de trabalho variáveis ou imprevisíveis. Sua principal característica é a elasticidade, que permite o provisionamento e a liberação de recursos computacionais sob demanda. Este modelo é particularmente atraente para empresas e startups que buscam evitar o elevado custo inicial de aquisição e manutenção de hardware (CapEx), trocando-o por um modelo de despesa operacional (OpEx). A nuvem também é ideal para aplicações que demandam alta disponibilidade e redundância geográfica, abstraindo a complexidade de gerenciar múltiplos data centers. Ademais, sua flexibilidade a torna uma plataforma eficiente para ambientes de desenvolvimento e teste de software, nos quais recursos podem ser criados e descartados de forma rápida e com baixo custo.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Tanto os servidores de pesquisa do Google quanto os de processamento de imagens da NASA enquadram-se na categoria de multicomputadores, caracterizando-se como sistemas fracamente acoplados. A justificativa para essa classificação baseia-se em dois pilares fundamentais: a necessidade de escalabilidade massiva e a própria arquitetura de hardware empregada.

    A natureza das operações de ambas as organizações exige uma escala de processamento que ultrapassa a capacidade de qualquer sistema unificado e fortemente acoplado. No caso do Google, a tarefa de indexar toda a web e responder a bilhões de buscas diárias só é viável através de um modelo distribuído. Cada busca constitui uma tarefa independente que pode ser direcionada a qualquer um dos milhares de servidores em seus data centers, o que representa um exemplo clássico de um cluster de multicomputadores resiliente à falha de nós individuais. O mesmo princípio aplica-se à NASA, que lida com o processamento de petabytes de dados provenientes de satélites e telescópios. As imagens massivas são divididas e distribuídas entre inúmeros nós de processamento para que a análise seja realizada de forma paralela.

    Do ponto de vista arquitetônico, esses sistemas são construídos a partir de um grande número de computadores (nós) interconectados por uma rede de alta velocidade. Fundamentalmente, cada nó opera de forma independente, possuindo seu próprio processador e sua própria memória privada. A comunicação e a coordenação entre eles ocorrem por meio da troca de mensagens, o que corresponde precisamente à definição técnica de um sistema fracamente acoplado ou de um multicomputer.

    Curtir

    1. Aluno: Carlos Eduardo Yukio Kimura

    Estudo de caso: quanto maior a quantidade de núcleos em um processador melhor é o seu processamento?

    Um processador multitarefa é um processador que aparentemente pode fazer várias tarefas ao mesmo tempo, porque funcionalmente ele dedica pequenas frações da UCP (processador central) a cada uma das tarefas, seja cálculo, seja apresentar uma informação na tela, mandar um documento para a impressão, salvar um arquivo no SSD, etc.

    Se o processador for rápido, essas pequenas interrupções passam despercebidas e dá a impressão de que o processador está realizando várias coisas ao mesmo tempo, quando na verdade está fazendo apenas uma coisa de cada vez e as demais estão na fila de pronto, aguardando a execução.

    Mas se o processador possui vários “cores” ou núcleos, é como se você realmente tivesse vários processadores diferentes dentro do computador, por exemplo, um dedicado a calcular, outro para atualizar a tela, outro para escrever, etc.

    Você realmente ganhará velocidade porque agora se a multitarefa é real, ao mesmo tempo o processador dedica tempo para resolver vários problemas diferentes. Por exemplo, um núcleo é dedicado a escrever no Word, outro está em segundo plano e atende às solicitações da impressora, outro está baixando e-mails. Obviamente, se você tiver dois núcleos, poderá realizar várias tarefas mais rapidamente do que se tiver apenas um. Porém, este em particular tem um limite, que são as diferentes tarefas que ele tem em execução, não adianta possuir “12 núcleos”, se você iniciar apenas quatro tarefas diferentes.

    No entanto, existem linguagens de programação capazes de quebrar processos iterativos em diferentes “threads” e enviar cada um para um núcleo diferente do processador. Por exemplo, você está calculando uma fatura para muitos produtos que foram comprados em valores diferentes e que aplicam impostos diferentes.

    Se você tiver uma programação adequada, essa fatura irá calcular cada linha em um núcleo diferente, para então somar os valores parciais e calcular o total da fatura. Se você tiver a possibilidade de calcular vários “threads” de uma só vez, você terminará mais cedo, quanto mais threads você puder lidar de uma só vez, melhor. Mas se você tiver muitos núcleos, chegará um momento em que você não poderá tirar proveito de todos eles, porque você não tem “threads” suficientes para alimentar tantos núcleos.

    Neste exemplo, pode-se verificar que a velocidade real de um programa depende dos “núcleos” que a máquina possui, mas a partir de certo ponto não importa quantos núcleos você possua, o que realmente importa é a velocidade da sequência de cálculos lineares mais complexos que a máquina possui. 

    Em um servidor de rede que tenha muitos acessos à Internet, será útil ter o maior número possível de “núcleos”, pois cada núcleo tratará da consulta feita por um usuário, mas por outro lado, esse mesmo processador será excessivo para um indivíduo e não vai tirar vantagem disso.

    Se o número de consultas disparar, não haverá um computador com “núcleos” suficientes no mercado, então recorre-se a fazer os processadores a funcionarem em “cluster”, ou seja, cada processador com os seus devidos núcleos” passa a trabalhar em paralelo, dentro do que se chama de “cluster”, (conjunto, grupo ou acumulação), com outros processadores com os seus respectivos “núcleos”.

    Diante do estudo de caso apresentado, responda:

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    R.: É um sistema SIMD, pois existe apenas uma única instrução (colher néctar) sendo executada por múltiplos elementos de dados (abelhas operárias).

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    R.:  A distinção entre multicomputadores e multiprocessadores está centrada na arquitetura de memória e na estratégia de comunicação entre os componentes do sistema. Ambos são usados para computação paralela, mas com abordagens distintas.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    R.: Classificações de Multiprocessadores

    As classificações comuns são:

    • UMA (Uniform Memory Access): característica: Todos os processadores têm tempo de acesso uniforme à memória. Exemplo: Sistemas SMP com barramento compartilhado.
    • NUMA (Non-Uniform Memory Access): característica: O tempo de acesso à memória depende da localização física (memória local vs. remota). Exemplo: Sistemas com múltiplos nós interligados por redes rápidas (ex.: AMD EPYC).
    • COMA (Cache Only Memory Architecture): característica: Memória física é abstraída como cache; dados migram para onde são acessados. Exemplo: Sistemas de alta escalabilidade (ex.: supercomputadores).

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    R.: Classificações de Multicomputadores

    • Clusters Homogêneos: nós idênticos em hardware/software. Exemplo: Clusters HPC (High-Performance Computing).
    • Clusters Heterogêneos: nós com hardwares diferentes. exemplo: Grids computacionais (ex.: SETI@Home).
    • MPP (Massively Parallel Processors): milhares de processadores com memória privada. Exemplo: IBM Blue Gene.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    R.: Conflito em Barramento Compartilhado

    Se três processadores tentarem acessar a memória simultaneamente, o controlador do barramento usa um protocolo (ex.: round-robin, prioridade) para conceder acesso a um processador por vez (arbitragem).

    Consequências:

    • Latência: Processadores em espera sofrem atrasos.
    • Gargalo: O barramento torna-se um ponto de contenção, limitando a escalabilidade.
    • Solução comum: Uso de hierarquias de cache (ex.: protocolos MESI) para reduzir acessos à memória.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    R.:  Impacto da Quantidade de Núcleos no Desempenho

    Mais núcleos nem sempre melhoram o processamento. A eficiência depende de:

    Paralelização da Carga:

    • Benefício máximo: Aplicações com alto paralelismo (ex.: renderização 3D, simulações científicas).
    • Lei dos Rendimentos Decrescentes: Após um limiar (ex.: 16 núcleos), ganhos marginais são mínimos sem threads suficientes.
    • Gargalos: Memória/Cache, os núcleos adicionais disputam banda de memória.
    • Clock Individual: Processadores com menos núcleos podem ter clocks mais altos, beneficiando tarefas sequenciais.

    Portanto, para usuários comuns (ex.: navegação web), 4-8 núcleos são suficientes. Servidores (ex.: bancos de dados) beneficiam-se de 32+ núcleos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    R.: Em 2025, o processador com mais núcleos é o AMD EPYC 9754 “Bergamo”, com 128 núcleos e 256 threads. Detalhes:

    • Arquitetura: Zen 4c.
    • Uso: Data centers (ex.: cloud computing, HPC).

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    R.: Cluster vs. Cloud Computing

    Situação

    Cluster

    Cloud computing

    Cargas Paralelas Intensivas

    Ideal (ex.: simulações científicas locais)

    Viável, mas com custos variáveis

    Escalabilidade Imediata

    Limitada (hardware físico)

    Melhor opção (elasticidade sob demanda)

    Dados Sensíveis

    Melhor opção (controle físico)

    Riscos de segurança/privacidade

    Orçamento Reduzido

    Alto custo inicial

    Melhor opção (pay-as-you-go)

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    R.: Classificação dos Servidores (Google e NASA)

    • Google (Servidores de Busca):
    • Categoria: Fracamente acoplado (multicomputadores).
    • Arquitetura: Clusters distribuídos globalmente, com comunicação via mensagens (ex.: MapReduce).
    • Escalabilidade: Adição dinâmica de nós sem interromper operações.
    • NASA (Processamento de Imagens):
    • Categoria: Fortemente acoplado (multiprocessadores).
    • Necessidade: Baixa latência para tarefas complexas (ex.: análise de imagens de telescópios).
    • Exemplo: Supercomputadores NUMA (ex.: sistema Pleiades com 12.800 núcleos).

    REFERÊNCIA

    TANENBAUM, Andrew S.; ZUCCHI, Wagner Luiz. Organização estruturada de computadores. Pearson Prentice Hall, 2009.

    Para ser contabilizado a pontuação da atividade:

    1 – Envio individual das respostas pelo Moodle;

    2 – Coloque as respostas no comentário do link: 
    andreprzybysz.wordpress.com/2023/05/04/quanto-maior-a-quantidade-de-nucleos-em-um-processador-melhor-e-o-seu-processamento/

    Curtir

  15. Aluno: João Emanuel Barbosa Pacheco

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    MIMD (Multiple Instruction, Multiple Data).
    Cada abelha opera de forma independente (instruções diferentes, momentos diferentes), embora todas tenham o mesmo objetivo. Portanto, não executam a mesma instrução simultaneamente como no SIMD.

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Multiprocessadores: vários processadores compartilham a mesma memória principal. Comunicação entre eles é direta via memória.Exemplo: um servidor com múltiplos processadores em um único sistema.Multicomputadores: são computadores independentes conectados por rede, com memória separada. Comunicação via troca de mensagens.Exemplo: cluster de computadores interligados em uma rede.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    Multiprocessadores se encaixam na arquitetura MIMD (Multiple Instruction, Multiple Data) e usam memória compartilhada. A imagem apresenta três tipos principais:

    UMA (Uniform Memory Access):
    Todos os processadores acessam a memória com o mesmo tempo de acesso.
    ➤ Exemplo: sistemas SMP (Symmetric Multiprocessing).

    COMA (Cache-Only Memory Architecture):
    Toda a memória do sistema é tratada como cache compartilhado. Ajuda na redução da latência e melhora o desempenho em sistemas distribuídos.

    NUMA (Non-Uniform Memory Access):
    Cada processador tem acesso mais rápido à sua própria memória local, mas pode acessar memórias de outros processadores, com maior latência.
    ➤ Exemplo: servidores multiprocessados modernos (Ex: AMD EPYC).

    Dentro do NUMA, a imagem ainda subdivide em:

    CC-NUMA (Cache-Coherent NUMA):
    Adiciona coerência de cache para garantir que todos os processadores vejam os mesmos dados.

    NC-NUMA (Non Cache-Coherent NUMA):
    Não há coerência entre caches, o que exige controle manual pelo programador.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    Multicomputadores também fazem parte da arquitetura MIMD, mas diferem dos multiprocessadores pois não compartilham memória, utilizando passagem de mensagens para comunicação. As classificações são:

    MPP (Massively Parallel Processors):
    Muitos computadores interconectados, com alta capacidade de processamento paralelo.
    ➤ Exemplo: supercomputadores.

    COW (Cluster of Workstations):
    Conjunto de estações de trabalho conectadas por rede para funcionar como um único sistema paralelo.
    ➤ Exemplo: clusters em universidades ou laboratórios.

    Grade (Grid Computing):
    Computadores distribuídos geograficamente, trabalhando juntos em projetos colaborativos.
    ➤ Exemplo: projetos científicos como o SETI@home.

    HiperCubo:Topologia de interconexão entre nós (computadores), onde cada nó se liga a outros formando uma estrutura hipercúbica, que reduz a distância entre os nós para melhorar a comunicação.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?O acesso será arbitrado (um por vez). Os outros processadores terão que esperar, causando atrasos (latência) e reduzindo o desempenho paralelo.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.Depende. Mais núcleos permitem mais tarefas simultâneas, mas o ganho só ocorre se houver carga de trabalho paralelizável suficiente. Se os programas não forem otimizados para múltiplos núcleos, o ganho será mínimo.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?Em 2025, o processador AMD Instinct MI300X possui 192 núcleos de CPU (além de núcleos de GPU e memória HBM integrada).

    No segmento de servidores, o Intel Xeon Max e outros da série EPYC (Bergamo) também oferecem até 128 núcleos.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”Cluster: ideal para ambientes com alta carga local, como laboratórios de pesquisa, universidades ou data centers dedicados, onde se precisa de controle total do hardware. Cloud computing: ideal para escalabilidade flexível, empresas que precisam de infraestrutura sob demanda, backups, e processamento ocasional ou variável.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.Google: usa multicomputadores fracamente acoplados, pois são milhares de servidores interligados por redes, com redundância e distribuição geográfica. NASA (processamento de imagem): depende da aplicação, mas geralmente utiliza multiprocessadores fortemente acoplados, com alta comunicação entre núcleos para desempenho máximo em simulações e cálculos científicos.

    Curtir

  16. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?
    R: É um sistema SIMD
    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.
    R:O multicomputador é um conjunto de computadores com processadores únicos para cada um deles, e o multiprocessador são diversos processadores em um único sistema.As principais diferenças são: a memória(em um ela é compartilhada com todos os processadores e na outro cada sistema tem sua memória separada), a comunicação em um é por rede e no outro a comunicação é direta.
    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    R:A NUMA(acesso não uniforme à memória), é uma arquitetura onde cada processador tem a sua própia memória local, mas ainda pode acessar a memórias dos outros. A UMA(acesso uniforme à memória), nessa arquitetura todos os processadores acessam a memória com o mesmo tempo de acesso pois a memória é compartilhada e tem a mesma distância de todos os processadores. A COMA(arquitetura de memória somente cache), é uma arquitetura onde não existe uma memoria fixa principal e toda a memória do sistema é organizada como cache local de cada processador.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    R:O MPP(processamento massivamente paralelo), é um sistema dedicado para processamento paralelo conectados por uma rede de altíssima velocidade. O COW(cluster de estações de trabalho), é um conjunto de computadores comuns conectados por uma rede padrão, sendo bem mais barato que o MPP.5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?R:O sistema vai aceitar apenas um deles e os outros dois vão ter que esperar, gerando atrasos e podendo reduzir o desempenho geral.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.
    Não, alguns programas mais simples como navegadores não conseguem utilizar esses núcleos de forma eficiente, assim como algumas tarefas sequenciais que não podem ser divididas entre os núvleos, e também pode ocorrer gargalo entre o barramento ou memória.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?
    R: O processador com mais núcleos é o AMD EPYC 9754 com 128 núcleos

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”
    R: É melhor utilizar o cluster quando o sistema exige alta performance e baixa latência de rede, precisa de controle total sobre o hardware. É melhor utilizar o cloud computing quando é necessário uma escalabilidade dinâmica, quando o processamento é variável, precisar de disponibilidade global e de serviços integrados

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.
    R:Eles se encaixam no sistema francamente acoplado na maioria dos casos, pois como por exemplo o Google usa clusters massivos de servidores distribuídos em data centers globais e cada servidos faz uma parte da tarefa. Mas no caso da NASA as vezes é utilizado ambos, principalmente com simulações numéricas pesadas

    Curtir

  17. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    É um sistema SIMD, pois a abelha rainha da apenas uma ordem e as abelhas retornam néctar de várias flores.

    2 – Diferencie Multicomputadores de Multiprocessadores. Expliqueo sistema de memória de cada um e exemplifique-os.

    Multicomputadores são sistemas compostos por diversos computadores únicos conectados a uma rede de comunicação, multiprocessadores são diversos processadores conectados a um único sistema de memória compartilhada.

    Multicomputadores possuem um sistema de memória distribuído, sendo assim cada computador tem sua própria memória e não a compartilha diretamente com os outros.

    Multiprocessadores possuem um sistema de memória compartilhado, ou seja, a comunicação é feita por meio de variáveis da memória comum.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    UMA (Uniform Memory Access):Acesso uniforme à memória: todos os processadores acessam a memória com o mesmo tempo de acesso. A memória é fisicamente compartilhada, e o tempo de acesso é constante. Boa para sistemas com poucos processadores. NUMA (Non-Uniform Memory Access):Acesso não uniforme à memória: cada processador tem uma parte da memória que está mais próxima (mais rápida) e outras que estão mais distantes (mais lentas). A memória é distribuída, mas logicamente compartilhada. Ideal para sistemas maiores e mais escaláveis. COMA (Cache-Only Memory Architecture): Toda a memória funciona como cache. Não há uma memória principal fixa — os dados migram dinamicamente entre caches. Muito eficiente para sistemas distribuídos com acesso dinâmico a dados.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    MPP (Massively Parallel Processors):
    Sistema com grande número de processadores interligados por uma rede de alta velocidade, onde cada processador possui sua própria memória local. COW (Cluster of Workstations):
    Conjunto de estações de trabalho ou PCs comuns, interligados via rede padrão (como Ethernet), trabalhando de forma cooperativa como um sistema paralelo.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Em um multiprocessador com barramento compartilhado, quando vários processadores acessam a memória ao mesmo tempo, ocorre competição pelo barramento, resultando em atraso, espera e possível perda de desempenho devido à contenção do barramento.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    Nem sempre, embora mais núcleos em um processador possam melhorar o desempenho, isso depende do tipo de tarefa, do software utilizado e da forma como o sistema gerencia os recursos.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    Atualmente, o processador com maior número de núcleos disponível no mercado é o AMD EPYC 9965 “Turin”, da série 9005 baseada na arquitetura Zen 5c, com impressionantes 192 núcleos e 384 threads.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Use clusters quando precisar de controle, desempenho constante e tiver uma equipe técnica dedicada.
    Use cloud computing quando buscar flexibilidade, economia em curto prazo, e escalabilidade sob demanda.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Google fracamente acoplado já que ele usa milhares de servidores independentes com memória própria, comunicando-se por rede, alta escalabilidade e baixa dependência entre os nós e a Nasa fortemente acoplado já que eles utilizam supercomputadores com processadores interconectados e comunicação intensa, ideal para tarefas científicas complexas que exigem alto desempenho conjunto.

    Curtir

  18. 1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Este é um sistema SIMD (Single Instruction, Multiple Data). As operárias (múltiplos elementos de processamento) estão executando a mesma tarefa (colher néctar de rosas – instrução única) em diferentes locais/rosas (múltiplos dados).

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

    Multiprocessadores

    Definição: O arquivo não define explicitamente Multiprocessadores, mas o contexto os trata como sistemas onde processadores compartilham recursos.

    Sistema de Memória: Os Multiprocessadores utilizam um sistema de memória compartilhada (Memória Global).

    Exemplo de Problema: Se três processadores tentarem acessar a memória global exatamente no mesmo instante em um sistema que usa um barramento compartilhado, eles competirão pelo acesso (concorrência) ao barramento e à memória.

    Multicomputadores

    Definição: O arquivo não define explicitamente Multicomputadores, mas o contexto indica que é um sistema em que processadores trabalham em paralelo, cada um com seus próprios núcleos e recursos.

    Sistema de Memória: O sistema de memória é distribuído/separado, já que cada processador tem seus “respectivos núcleos” e passa a trabalhar em paralelo com outros processadores, muitas vezes em um cluster.

    Exemplo:

    Um exemplo de Multicomputador é o conceito de cluster (conjunto, grupo ou acumulação).

    Em um cluster, múltiplos processadores, cada um com seus devidos núcleos, trabalham em paralelo.

    Este sistema é usado quando o número de consultas (por exemplo, em um servidor de rede) é tão alto que não haveria um computador com núcleos suficientes no mercado.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    RESPOSTA: 

    Os Multiprocessadores (MIMD de memória compartilhada) são classificados de acordo com a maneira como os processadores acessam a memória principal. As classificações destacadas são:

    UMA (Uniform Memory Access – Acesso Uniforme à Memória):

    • Conceito: É uma arquitetura onde todos os processadores têm acesso simétrico a toda a memória principal compartilhada.
    • Tempo de Acesso: O tempo de acesso à memória para qualquer processador é o mesmo, não importa qual parte da memória está sendo acessada.
    • Implementação: Tipicamente implementada usando um Barramento Compartilhado ou uma rede Comutada (como uma crossbar switch), como indicado no diagrama.
    • Vantagem: Simplicidade na programação (modelo de memória compartilhada único).
    • Desvantagem: Dificuldade de escalabilidade; o barramento compartilhado se torna um gargalo quando o número de processadores aumenta.

    NUMA (Non-Uniform Memory Access – Acesso Não Uniforme à Memória):

    • Conceito: A memória principal é distribuída em módulos (nós), onde cada nó contém um ou mais processadores e uma memória local (Memória Global Distribuída).
    • Tempo de Acesso: O tempo de acesso é não uniforme. O acesso à memória local (do próprio nó) é mais rápido do que o acesso à memória remota (memória de outro nó).
    • Implementação: Os nós são interligados por um interconnect de alta velocidade. O diagrama indica as subcategorias CC-NUMA (Cache Coherent NUMA, onde a coerência de cache é garantida por hardware) e NC-NUMA (Non-Cache Coherent NUMA).
    • Vantagem: Melhor escalabilidade que UMA.

    COMA (Cache-Only Memory Architecture – Arquitetura de Memória Somente Cache):

    • Conceito: Semelhante à arquitetura NUMA, mas a memória principal de cada nó funciona como uma grande cache.
    • Funcionamento: Os dados globais são inicialmente carregados e se movem pelos nós conforme a necessidade, armazenados nas caches locais dos processadores.
    • Vantagem: Otimiza o desempenho e o uso da cache, pois os dados estão sempre próximos do processador que está usando (cache do nó local).
    • Desvantagem: Complexidade e custo de implementação (principalmente o protocolo de coerência de cache); é a menos comum das três.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    Os Multicomputadores (MIMD de Passagem de Mensagem) são sistemas de memória distribuída, classificados de acordo com a forma como são construídos e interligados.

    MPP (Massively Parallel Processors – Processadores Massivamente Paralelos):

    • Conceito: São supercomputadores compostos por um grande número de nós de processamento.
    • Acoplamento/Rede: Utilizam redes de interconexão de alta velocidade e, muitas vezes, proprietárias, sendo indicadas as topologias Grade e Hipercubo no diagrama.
    • Uso: Projetados para computação de altíssimo desempenho e problemas de larga escala.

    COW (Cluster of Workstations – Cluster de Estações de Trabalho) / Cluster

    • Conceito: Consiste em um conjunto de computadores completos (PCs ou estações de trabalho) interligados por uma rede.

    Acoplamento/Rede: São sistemas fracamente acoplados.

    • Uso: O sistema de cluster é usado quando o número de consultas dispara e não haveria um computador com “núcleos” suficientes no mercado. Nesses casos, cada processador, com seus devidos núcleos, passa a trabalhar em paralelo dentro do que se chama de “cluster”. O termo se refere a um conjunto, grupo ou acumulação de processadores com seus respectivos núcleos.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    Se três processadores tentarem acessar a memória global (compartilhada) exatamente no mesmo instante, haverá concorrência pelo uso do barramento compartilhado. O sistema precisará de um mecanismo de arbitragem para gerenciar o acesso, e os processadores terão que esperar em uma fila de requisições, fazendo com que o acesso à memória não seja simultâneo.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    A afirmação é parcialmente verdadeira, mas tem um limite, conforme o próprio estudo de caso sugere:

    Em favor: Um processador com mais núcleos realmente ganha velocidade em um ambiente multitarefa, permitindo que vários problemas diferentes sejam resolvidos ao mesmo tempo (por exemplo, um núcleo para escrever no Word, outro para atender à impressora, outro para baixar e-mails). O ganho é real se o software foi programado para quebrar processos em diferentes threads e enviá-los para núcleos distintos.

    Contra: O aumento de núcleos tem um limite prático. Chega um momento em que você não terá threads suficientes para alimentar todos os núcleos, e a máquina não conseguirá tirar proveito de todos eles.

    Conclusão: A partir de certo ponto, o que realmente importa para a velocidade não é mais a quantidade de núcleos, mas sim a velocidade da sequência de cálculos lineares mais complexos que a máquina possui. Para uso individual, um processador com muitos núcleos pode ser excessivo.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    O processador com a maior quantidade de núcleos atualmente disponível no mercado de servidores é o AMD EPYC (Série 9004).

    • Processador com Alta Contagem de Núcleos: O processador AMD EPYC de 4ª geração (Zen 4) alcança até 96 núcleos (“Zen 4”) em um único chip de servidor.
    • Desenvolvimentos Futuros/Vazamentos: Há indicações de que a Intel planeja lançar futuros processadores Intel Xeon com até 128 núcleos (Xeon 6980P) ou até 288 núcleos (Sierra Forest).

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    Vale a pena utilizar um cluster para o processamento em situações onde o número de consultas dispara, a ponto de não haver um computador com “núcleos” suficientes no mercado. Nesses casos, recorre-se a fazer os processadores funcionarem em “cluster” , ou seja, cada processador com seus devidos núcleos passa a trabalhar em paralelo , em um conjunto, grupo ou acumulação, com outros processadores com seus respectivos núcleos. O estudo de caso apresentado não forneceu informações sobre em quais situações vale a pena optar por um processamento cloud computing.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    Os servidores de pesquisa do Google e os servidores de processamento de imagens da NASA se encaixam na categoria de sistemas fracamente acoplados (Multicomputadores/Clusters).

    Justificativa:

    • O documento define a necessidade de recorrer a fazer processadores funcionarem em “cluster” (conjunto, grupo ou acumulação) quando o número de consultas dispara e não há processadores suficientes no mercado.
    • Google e NASA lidam com uma escala massiva de dados e consultas, o que exige milhares de processadores trabalhando em paralelo (ambiente de cluster).
    • Um cluster é um sistema onde cada processador tem sua própria memória (memória distribuída) e se comunica por meio de troca de mensagens. Esta arquitetura de memória distribuída é a característica dos sistemas fracamente acoplados, que permitem a escalabilidade a um número muito maior de nós em comparação com sistemas fortemente acoplados (memória compartilhada).

    Curtir

  19. Aluno: Victor Marques Ferreira

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    Este é um sistema SIMD (Single Instruction, Multiple Data). A abelha-rainha (Unidade de Controle) emite uma única instrução (“colher néctar de rosas”). As abelhas operárias (múltiplas unidades de processamento) executam exatamente essa mesma instrução simultaneamente, mas em dados diferentes (rosas diferentes).

    2 – Diferencie Multicomputadores de Multiprocessadores. Explique o sistema de memória de cada um e exemplifique-os.

                A principal diferença está no gerenciamento da memória:

    • Multiprocessadores (Fortemente Acoplados):
      • Memória: Possuem múltiplos processadores que compartilham a mesma memória física e o mesmo relógio. A comunicação entre eles é muito rápida, feita através desta memória compartilhada.
      • Exemplo: Um computador desktop ou laptop moderno com um processador multicore (como um Intel Core i9 ou AMD Ryzen 7). Os diferentes núcleos são os processadores que acessam o mesmo pente de memória RAM.
    • Multicomputadores (Fracamente Acoplados):
      • Memória: Possuem múltiplos computadores (nós), onde cada um tem sua própria memória privada e seu próprio relógio. A comunicação é mais lenta, feita através de uma rede (como Ethernet ou InfiniBand).
      • Exemplo: Um cluster de servidores em um datacenter, como os usados pelo Google.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    –  UMA (Uniform Memory Access – Acesso Uniforme à Memória): Todos os processadores acessam qualquer parte da memória compartilhada exatamente no mesmo tempo (latência). É o modelo mais simples e comum em máquinas desktop.

    –  NUMA (Non-Uniform Memory Access – Acesso Não Uniforme à Memória): Existem múltiplos blocos de memória, e cada processador é “dono” de um bloco local. Um processador consegue acessar sua memória local mais rapidamente do que acessar a memória local de outro processador. Esta arquitetura é usada para escalar sistemas com dezenas ou centenas de núcleos que não funcionariam bem com UMA.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    –  MPP (Massively Parallel Processors – Processadores Massivamente Paralelos):

    • Esta é uma arquitetura onde um grande número de processadores (centenas ou milhares) são projetados desde o início para trabalhar juntos em um único sistema coeso.
    • Eles são construídos com uma rede de interconexão proprietária, de altíssima velocidade e baixa latência, que é muito mais rápida que uma rede Ethernet comum.

    –  COW (Cluster of Workstations – Cluster de Estações de Trabalho):

    • Esta arquitetura é construída usando computadores comuns, “de prateleira” (workstations ou servidores padrão), que são simplesmente conectados por uma rede comercial padrão (como Ethernet).
    • É uma abordagem muito mais barata e flexível que o MPP, pois usa hardware comum

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

                Ocorre um gargalo de barramento (conflito de acesso).

    O barramento de memória é um recurso que só pode ser usado por um processador de cada vez. Se três processadores tentarem o acesso simultaneamente, um deles ganhará a arbitragem e conseguirá o acesso. Os outros dois serão forçados a esperar (entrar em estado de wait) até que o barramento fique livre para atender suas requisições, uma de cada vez.

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

                Não necessariamente. Ter mais núcleos só melhora o processamento se as tarefas puderem ser divididas e executadas em paralelo.

    Justificativa:

    Limite do Software: Se um software não for programado para usar múltiplos threads, ele usará apenas um núcleo. Não adianta ter 12 núcleos se o programa só consegue usar um.

    Velocidade Linear: A velocidade de cálculos lineares (que não podem ser quebrados) ainda é crucial. Um processador com menos núcleos, mas com núcleos individualmente mais rápidos, pode ser melhor para essas tarefas.

    Tipo de Uso: Mais núcleos são muito úteis em servidores de rede, onde cada núcleo pode atender a um usuário diferente. Para um usuário doméstico, que executa poucas tarefas simultâneas, um número excessivo de núcleos não trará vantagens perceptíveis.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

                Atualmente (final de 2025), o processador com a maior quantidade de núcleos disponível comercialmente é o AMD EPYC “Turin”, que oferece modelos com até 192 núcleos (e 384 threads) por soquete. Um processador para servidores de data center.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    •             Vale a pena usar um Cluster (Hardware Próprio) quando:
    • É necessário controle total sobre o hardware e a segurança (ex: dados financeiros ou governamentais sigilosos).
    • A tarefa exige processamento de altíssimo desempenho (HPC) com latência de rede ultrabaixa, o que é mais fácil de garantir em uma rede local.
    • O custo de longo prazo para uma carga de trabalho constante e previsível é menor do que pagar por uso na nuvem.
    • Vale a pena optar por Cloud Computing (Computação em Nuvem) quando:
      • A principal necessidade é a escalabilidade e flexibilidade (aumentar ou diminuir recursos rapidamente conforme a demanda).
      • Deseja-se evitar o custo inicial de compra e manutenção de hardware (trocar custo de capital por custo operacional).
      • A aplicação precisa de disponibilidade global e tolerância a falhas (Data Centers distribuídos).

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

                Ambos se encaixam na categoria de Multicomputadores (Fracamente Acoplados).

    Justificativa: Tanto o Google quanto a NASA utilizam uma arquitetura distribuída. Eles não usam um único supercomputador com memória compartilhada (fortemente acoplado), mas sim milhares de servidores (computadores) independentes, cada um com sua própria memória e processador.

    • Google: Usa Clusters massivos. Quando você faz uma pesquisa, sua requisição é enviada a um servidor, que divide a tarefa e consulta milhares de outros servidores (nós do cluster) em paralelo. Cada nó processa sua parte e devolve a resposta, que é agregada e enviada a você.
    • NASA: Utiliza tanto Clusters (para simulações complexas em seus centros de supercomputação) quanto Grids (para processar imagens e dados coletados de telescópios e satélites em diferentes partes do mundo).

    Em ambos os casos, a comunicação é feita por rede, caracterizando um sistema fracamente acoplado.

    Curtir

  20. Prof. André Luiz Przybysz Organização e Arquitetura de Computadores Questões sobre Multicores, Multiprocessadores e Multicomputadores Aluno: Douglas Silva Monteiro

    Estudo de caso: quanto maior a quantidade de núcleos em um processador melhor é o seu processamento?

    Um processador multitarefa é um processador que aparentemente pode fazer várias tarefas ao mesmo tempo, porque funcionalmente ele dedica pequenas frações da UCP (processador central) a cada uma das tarefas, seja cálculo, seja apresentar uma informação na tela, mandar um documento para a impressão, salvar um arquivo no SSD, etc.

    Se o processador for rápido, essas pequenas interrupções passam despercebidas e dá a impressão de que o processador está realizando várias coisas ao mesmo tempo, quando na verdade está fazendo apenas uma coisa de cada vez e as demais estão na fila de pronto, aguardando a execução.

    Mas se o processador possui vários “cores” ou núcleos, é como se você realmente tivesse vários processadores diferentes dentro do computador, por exemplo, um dedicado a calcular, outro para atualizar a tela, outro para escrever, etc.

    Você realmente ganhará velocidade porque agora se a multitarefa é real, ao mesmo tempo o processador dedica tempo para resolver vários problemas diferentes. Por exemplo, um núcleo é dedicado a escrever no Word, outro está em segundo plano e atende às solicitações da impressora, outro está baixando e-mails. Obviamente, se você tiver dois núcleos, poderá realizar várias tarefas mais rapidamente do que se tiver apenas um. Porém, este em particular tem um limite, que são as diferentes tarefas que ele tem em execução, não adianta possuir “12 núcleos”, se você iniciar apenas quatro tarefas diferentes.

    No entanto, existem linguagens de programação capazes de quebrar processos iterativos em diferentes “threads” e enviar cada um para um núcleo diferente do processador. Por exemplo, você está calculando uma fatura para muitos produtos que foram comprados em valores diferentes e que aplicam impostos diferentes.

    Se você tiver uma programação adequada, essa fatura irá calcular cada linha em um núcleo diferente, para então somar os valores parciais e calcular o total da fatura. Se você tiver a possibilidade de calcular vários “threads” de uma só vez, você terminará mais cedo, quanto mais threads você puder lidar de uma só vez, melhor. Mas se você tiver muitos núcleos, chegará um momento em que você não poderá tirar proveito de todos eles, porque você não tem “threads” suficientes para alimentar tantos núcleos.

    Neste exemplo, pode-se verificar que a velocidade real de um programa depende dos “núcleos” que a máquina possui, mas a partir de certo ponto não importa quantos núcleos você possua, o que realmente importa é a velocidade da sequência de cálculos lineares mais complexos que a máquina possui.

    Em um servidor de rede que tenha muitos acessos à Internet, será útil ter o maior número possível de “núcleos”, pois cada núcleo tratará da consulta feita por um usuário, mas por outro lado, esse mesmo processador será excessivo para um indivíduo e não vai tirar vantagem disso.

    Se o número de consultas disparar, não haverá um computador com “núcleos” suficientes no mercado, então recorre-se a fazer os processadores a funcionarem em “cluster”, ou seja, cada processador com os seus devidos núcleos” passa a trabalhar em paralelo, dentro do que se chama de “cluster”, (conjunto, grupo ou acumulação), com outros processadores com os seus respectivos “núcleos”.

    Diante do estudo de caso apresentado, responda:

    1 – Responda Uma bela manhã, a abelha-rainha de certa colmeia convoca todas as suas abelhas operárias e lhes comunica que a tarefa daquele dia é colher néctar de rosas. Então, as operárias saem voando em busca de rosas. Esse é um sistema SIMD ou um sistema MIMD?

    R: O sistema de colheita de néctar das abelhas operárias é análogo a um sistema SIMD (Single Instruction, Multiple Data).

    2 – Diferencie Multicomputadores de Multiprocessadores. Expliqueo sistema de memória de cada um e exemplifique-os.

    R: A principal diferença entre Multicomputadores e Multiprocessadores reside na forma como eles se comunicam e compartilham recursos, especialmente a memória principal.

    3 – Explique as classificações de Multiprocessadores apresentadas na imagem a seguir:

    R: Os Multiprocessadores (também chamados de Sistemas de Memória Compartilhada) são sistemas onde várias Unidades Centrais de Processamento (UCPs) ou núcleos compartilham um único espaço de endereçamento de memória. Eles são classificados com base na forma como a memória é acessada: UMA (Uniform Memory Access – Acesso Uniforme à Memória)

    • Conceito: Todos os processadores acessam a memória principal com velocidade e latência uniformes.
    • Características: É a arquitetura mais simples. O acesso à memória por qualquer processador leva o mesmo tempo, independentemente de qual processador o esteja solicitando.
    • Comunicação: Geralmente implementado com um Barramento único ou uma rede Comutada (como uma crossbar switch).

    COMA (Cache Only Memory Architecture – Arquitetura de Memória Apenas Cache)

    • Conceito: Semelhante à UMA, mas a memória principal atua apenas como um grande cache.
    • Características: A memória principal é vista como a memória cache de todos os processadores. Os dados são migrados dinamicamente para os caches locais.
    • Uso: É uma arquitetura complexa e pouco comum, focada em maximizar o uso da memória cache para reduzir a latência de acesso.

    NUMA (Non-Uniform Memory Access – Acesso Não Uniforme à Memória)

    • Conceito: Cada processador possui um banco de memória local, mas todos os processadores podem acessar a memória de qualquer outro processador (memória global).
    • Características: O acesso à memória local é mais rápido do que o acesso à memória que pertence a outro processador (memória remota). Daí o termo “Não Uniforme”.
    • Subcategorias no Diagrama:
      • CC-NUMA (Cache-Coherent NUMA): Garante que, se um dado estiver armazenado em múltiplas caches locais, todas as cópias sejam consistentes (coerentes). É o tipo de NUMA mais comum hoje.
      • NC-NUMA (Non-Cache-Coherent NUMA): Não há um mecanismo de coerência de cache por hardware, o que exige que o software gerencie essa coerência, tornando-o mais complexo de programar.

    4 – Explique as classificações de Multicomputadores apresentadas na imagem a seguir:

    R: Os Multicomputadores (ou Sistemas de Memória Distribuída) são sistemas onde múltiplos computadores completos (cada um com sua própria UCP e memória) estão interconectados e se comunicam trocando mensagens. MPP (Massively Parallel Processors – Processadores Maciçamente Paralelos)

    • Conceito: Consiste em um grande número (centenas ou milhares) de nós de processamento independentes, cada um com sua própria memória e sistema operacional.
    • Características: Os nós são conectados por uma rede de interconexão de alta velocidade (muitas vezes proprietária) e tipicamente usam o paradigma SIMD (Single Instruction, Multiple Data) ou MIMD (Multiple Instruction, Multiple Data).
    • Comunicação: A comunicação é feita exclusivamente através da passagem de mensagens (ex: MPI – Message Passing Interface).

    COW (Clusters of Workstations – Clusters de Estações de Trabalho)

    • Conceito: Um cluster é um grupo de computadores commodity (prontos para uso, geralmente PCs ou servidores padrão) interconectados para formar um único recurso de computação.
    • Características: Geralmente usam redes padrão (como Ethernet, InfiniBand) e software de código aberto. É uma solução custo-efetiva para atingir alto desempenho.
    • Subcategorias no Diagrama (Implícitas):
      • Grade: Geralmente refere-se a clusters de computadores que podem estar geograficamente dispersos.
      • Hipercubo: Refere-se a um tipo específico de topologia de rede de interconexão (um cubo de $n$ dimensões) que era popular em sistemas MPP, mas hoje é usado para descrever redes de alta velocidade de clusters.

    5 – Considere um multiprocessador que usa um barramento compartilhado. O que acontece se três processadores tentarem acessar a memória global exatamente no mesmo instante?

    R: Se três processadores tentarem acessar a memória global exatamente no mesmo instante em um multiprocessador que utiliza um barramento compartilhado (UMA), eles não conseguirão.

    1. Contenção de Barramento: O barramento é um recurso compartilhado. Em um determinado momento, apenas um processador pode usá-lo para transferir dados (ler ou escrever na memória).
    2. Arbitragem: Um mecanismo de hardware chamado Árbitro de Barramento (Bus Arbiter) é acionado. Sua função é receber as solicitações de todos os processadores e decidir qual deles terá o controle do barramento (acesso à memória) em seguida.
    3. Serialização: O acesso à memória é serializado. Os processadores que perderem a arbitragem são colocados em uma fila e devem esperar sua vez.
    4. Gargalo (Bottleneck): Esse mecanismo de espera (ou wait state) introduz latência e pode se tornar um gargalo de desempenho à medida que a quantidade de processadores aumenta, limitando a escalabilidade do sistema (o que é a principal desvantagem da arquitetura UMA).

    6 – Na sua opinião, quanto maior a quantidade de núcleos em um processador melhor é o seu processamento? Justifique a sua resposta.

    R: Não, nem sempre. Embora a quantidade de núcleos seja crucial para o desempenho em multitarefas e cargas de trabalho paralelizáveis, a melhoria no processamento tem um limite e depende de três fatores principais, conforme indicado no próprio texto de estudo:

    1. Paralelismo do Software (Lei de Amdahl): O ganho de velocidade é limitado pela fração sequencial do programa. Se a tarefa (o software) não puder ser quebrada em threads suficientes para alimentar todos os núcleos, muitos deles ficarão ociosos.
      • Exemplo: O texto afirma: “…não adianta possuir ’12 núcleos’, se você iniciar apenas quatro tarefas diferentes.”
    2. Velocidade do Núcleo Único (Clock Speed): A velocidade de execução das tarefas lineares (sequenciais) mais complexas depende da frequência de clock (velocidade) de um único núcleo. Para aplicações que dependem dessa velocidade (como muitos jogos ou cálculos sequenciais), um processador com menos núcleos, mas com um clock muito mais alto, pode ser mais rápido do que um processador com muitos núcleos e clocks baixos.
    3. Gargalo de Memória/Comunicação: Em sistemas Multiprocessadores (memória compartilhada), um aumento excessivo de núcleos pode sobrecarregar o barramento ou o sistema de coerência de cache, introduzindo latência e diminuindo os ganhos de paralelismo.

    7 – Pesquise e relate qual o processador com maior quantidade de núcleos atualmente?

    R: O processador comercialmente disponível com a maior contagem de núcleos (para sistemas de servidor e data centers) pertence tipicamente à linha AMD EPYC ou Intel Xeon.

    No segmento de servidores de alto desempenho (HPC), os processadores atualmente no topo oferecem uma contagem extremamente alta.

    • O processador AMD EPYC 9654 (Quarta Geração – Zen 4) oferece 96 núcleos e 192 threads em um único chip.
    • Modelos mais recentes e ainda mais potentes (como o AMD EPYC com 128 núcleos) já foram anunciados ou estão chegando ao mercado, demonstrando a corrida por maior paralelismo no setor de servidores.

    Para o segmento de Desktop High-End (HEDT), o AMD Ryzen Threadripper é a linha que lidera, oferecendo atualmente até 96 núcleos (na linha Threadripper PRO 7000WX) em um único soquete.

    8 – Em quais situações vale a pena utilizar um “cluster” para o processamento e em quais situações vale a pena optar por um processamento “cloud computing.”

    R: A decisão entre um Cluster (infraestrutura própria/privada) e Cloud Computing (serviços de terceiros) depende de custo, controle, escalabilidade e natureza da carga de trabalho.

    9 – Em qual(ais) categoria(s) de processamento se encaixam os servidores de pesquisa do “Google” e os servidores de processamento de imagens da “NASA.”, fortemente acoplado, fracamente acoplado? Justifique a sua resposta.

    R: Os servidores de pesquisa do Google e os servidores de processamento de imagens da NASA se encaixam na categoria de sistemas Fracamente Acoplados. Fracamente Acoplado (Loosely Coupled)

    • Arquitetura: Corresponde a Multicomputadores/Clusters (Memória Distribuída). O sistema consiste em milhares de máquinas (nós) interconectadas por uma rede, onde cada nó tem sua própria memória privada.
    • Google Search: O Google processa bilhões de consultas de forma independente. Cada consulta pode ser tratada por um servidor diferente, e o conjunto de dados (o índice da web) é distribuído. A escala maciça e a necessidade de tolerância a falhas e escalabilidade horizontal são características de sistemas fracamente acoplados.
    • NASA (Processamento de Imagens): O processamento de imagens de satélite e telescópios envolve a manipulação de petabytes de dados. Tarefas de processamento (como correção, filtragem e análise de regiões) podem ser divididas em sub-tarefas independentes e enviadas para milhares de nós para processamento paralelo, o que requer uma arquitetura distribuída.

    Curtir

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.