Details
Nothing to say, yet
Details
Nothing to say, yet
Comment
Nothing to say, yet
In this transcription, the speaker discusses parallel computers, their history, classification, interconnection topologies, and levels of parallelism. They mention applications such as physical modeling, automotive and aerospace industries, signal analysis, weather forecasting, and scientific research. The speaker also mentions Seymour Cray, the founder of Cray Corporation, and the various models and architectures of Cray supercomputers. They talk about the classification of parallel computers based on how they handle instruction and data flows, including SISD, SIMD, MISD, and MIMD. The MIMD architecture is further divided into shared memory and message passing systems. The speaker also mentions the challenges of programming parallel computers. Overall, the transcription provides information about parallel computers and their different architectures. Aula 5, vamos falar sobre computadores paralelos, computadores paralelos, vamos falar da história Cray, classificação dos computadores paralelos, topologias de interconexão e níveis de paralelismo. Computadores paralelos, computadores de arquitetura paralela desenvolvidos especialmente para aplicações que exigem alto desempenho computacional, alta capacidade e elevada performance. Falamos aqui de velocidade, performance sustentada. Então nós temos aqui alguns exemplos, exemplos de aplicações típicas, modelagem física, estrutura, fluidos, deformações, indústria automobilística, aeroespacial, petróleo, modelagem bioquímica, estrutura molecular, indústria química e farmacêutica, análise de sinais, astronomia e petróleo, previsão do tempo, pesquisa científica em geral, órgãos governamentais, armamentos, modelagem nuclear. A modelagem física, ela pega-se sistema físico que não existe e irá deixar o sensor dentro do tubo. Se cria um modelo de sensor tubo de tubulação para saber como é, como ele irá funcionar. Cria-se esse modelo e coloca-se dentro do computador para se gerar resultados, para depois se comparar e validar o modelo para aperfeiçoamento. Processamento versus programação ainda de computadores paralelos. Características do problema definem a arquitetura. Vamos lá, primeiro processamento vetorial, arquitetura principal dos supercomputadores. Multiprocessamento, MPP, computadores com processadores massivamente paralelos. Cluster computers, arquiteturas compostas por computadores comerciais, servers e workstations. Tem-se diferentes arquiteturas que são construídas e tem-se peculiaridades relacionadas ao processamento. Principais fabricantes, Cray, NEC, CDC, Convex Vector, Thinking Machines, Maspar, SGI, Oriborigin, Itachi, MPP, IBM SP2, SG1 e Power Challenge Cluster. É um mercado bastante restrito, não se compara com o mercado dos computadores convencionais, aquelas que encontramos nos computadores pessoais. A ideia é ter processadores especializados, trabalhando em paralelo, podendo ter três situações. Uma, eu tenho um microprocessador e dentro desse processador eu tenho as cores. Múltiplos núcleos, aliás os cores. Múltiplos núcleos que fazem processamento paralelo interno ao microprocessador. Dois, CPUs ou microprocessadores, distintos trabalhando em paralelo. E computadores completos, cada um com suas respectivas CPUs, trabalhando em paralelo ou computadores completos, com várias CPUs, cada um deles e estas CPUs com seus diferentes núcleos ou múltiplos núcleos. Quem foi agora Seymour Cray? Nasceu em 1925, morreu em 1996. Sobre o Seymour Cray, ele criou então a empresa, o primeiro computador paralelo, foi criado pela Cray Corporation, empresa do Sr. Seymour Cray. O Cray Research, ele é de 1972. Depois veio o Cray Corp, 1989, o Cray Trace. Em 1996 foi criado o Merger, pela Cray Research plus SGI, Silicon Graphics Incorporation. Em 2000, vendida para a Tera Computer, que é a Cray Incorporation. Aqui a gente tem então a evolução dos Cray, os vetores processos, o Cray 1, 1972, o Cray 2, 1985, o Cray C90, 1990 e o Cray T90, de 1994. Você tem os multiprocessadores, os multiprocessors, primeiro foram os processadores vetoriais, agora são os multiprocessadores, o Cray XMP, 1982, o Cray YMP, 1988, o Cray T3D, 1993 e o Cray T3E, 1995. E o Mini Super, de 1990, o Cray XMS e o Cray J90, de 1994. Atualmente tem o Cray SV1, Cray X1, Cray T3E e o Cray X6, cada uma dessas categorias. Então, categoria vetores de processos, processadores vetoriais, é o Cray SV1 e o Cray X1. Os multiprocessadores, tem o Cray T3E, que também está conectado ao Cray X1. E o Mini Super, que é o Cray SX6. Histórico Cray, então aqui você tem o Cray T3E, as fotos, o Cray T3E, ele tem elementos de RISC, ele tem então 256 ou 512 MB de RAM, cada conexão toroidal, duplo. O Cray MTA, projeto original da Tera, paralelismo compilado, multithread, 16 a 256 processadores, a memória compartilhada de até 1 Tera, facilidade de programação, esse Cray MTA. E o Cray SV1, arquitetura clássica, vetorial, até 24 elementos, CPU de 8 Giga Flops e memória de 128 Giga Flops. Agora a gente tem o Cray HPC Cluster, que é um conjunto de elementos comerciais de baixo custo, de exemplo, é a Dell PowerEdge, tem a interconexão rede de alta velocidade, software da Cray Linux, também é um software livre de balanceamento. E aqui um detalhe, que não é fácil programar computadores assim, há um pessoal especializado que faz esse tipo de programação, mas é bem difícil. Classificação dos computadores paralelos, uma classificação genérica de um sistema de computador que perdura até hoje devido à sua simplicidade, uma máquina caracterizada através da maneira como trata os fluxos de instruções e fluxos de dados. Então você tem o SISD, que é o Single Instruction, Single Data, o SIMD, Single Instruction, Multiple Data, o MICD, o Multiple Instruction, Single Data, e o MIMD, que é o Multiple Instruction, Multiple Data. Agora vamos então ao SISD, que é o primeiro SISD do computador do Von Neumann. Ele tem a conexão do processamento, o P, conectado ao MI, que é a memória de instruções, e o MD, que é a memória de dados. Então ele se conecta ao processador a essas duas memórias. E entre eles, nessas duas, existe um fluxo de instruções, um fluxo de instruções conectado ao fluxo de dados. É um modelo bem simples. Aí a gente tem o Pipeline, é o mesmo conceito do Pipeline. Sem Pipeline, o sistema irá buscar uma instrução por vez, e aqui o núcleo do sistema irá, com Pipeline, irá buscar mais do que uma instrução por vez, podendo ser mais do que duas vezes por vez. Então é o mesmo conceito dos computadores normais, a questão do Pipeline. O SIMD, que é o SIMD que você tem um processamento vetorial. Então aqui você tem a unidade de controle de processador de instruções, tem o processador e as memórias. E você tem também o SMMD, os processadores. São vários em cima, conectados às memórias de dados, e uma única memória de instrução. Então, vários processadores e várias memórias de dados. Agora o SM ainda, sob o SMD, são múltiplos, são processamento paralelo do tipo single instruction, ou seja, uma única instrução. Então o resultado aqui, ele faz a soma de uma única vez, resultado de processamento em paralelo, múltiplos dados, múltiplos processadores e apenas uma única instrução. Olha lá, fluxo de instruções único. Não é que é uma única instrução, mas é um fluxo único de instruções, diferente dos processadores e dos múltiplos de dados. Você tem o MISD, esse aqui já apenas um fluxo de dados, diferente do SMD, com vários fluxos de dados. O MISD tem um fluxo de dados só, ele tem um conjunto de instruções correspondentes e múltiplos processadores de instruções. E aqui ele é voltado para a tolerância a falhas, esse MISD. Então, se um dos resultados de processamento der errado, ele tem mais aqui, tem três por exemplo, se dois derem certo, derem igual, então o votador irá decidir qual o resultado que será apresentado, ou seja, aquele que apresenta a maior frequência. Um errar, ele vai excluir o que é diferente e vai escolher aqueles que são iguais. Agora o MIMD, que é um multiprocessamento, sistemas massivamente paralelos, MMP, e o multicomputadores, sistemas distribuídos. Então o MIMD, essa é a configuração mais comum dos computadores em paralelo. Então a gente tem o MIMD com memória compartilhada e o MIMD com troca de mensagens. Então são vários processadores, tem várias memórias de dados e memórias de instrução. Agora vamos lá, no MIMD com memória compartilhada, múltiplas instruções e múltiplos dados. Aqui os computadores compartilham uma memória global. Já no MIMD com troca de mensagens, não temos uma memória global, mas se tem um sistema de comunicação. Nesse, a comunicação se dá por barramento. Em ambos, vai por barramento. Opa, é, correto. Agora o MIMD memória cache, esse aqui tem os barramentos, que liga então os CPUs e as memórias. O cache fica dentro do computador e aqui é relevante informar a velocidade com que o computador acessa o conteúdo do cache. Se for acessar a memória de dados, leva certo tempo, se for acessar na memória RAM, levará um tempo menor e se for acessar no cache, um tempo menor ainda. Então aqui é um esquema, você tem os dois CPUs ali conectados ao barramento, a memória compartilhada, então você tem a memória privada ali. Na prática o barramento é esse MIMD memória cache, ele é um barramento ao gargalo do sistema, dificuldade de manter a consistência do cache e limite do número de UCPs, dezenas. Aqui você tem um esquema da memória cache, conectado então ao sistema de consistência e o sistema de consistência é conectado à memória global, cópia de parte da memória global. Agora o MIMD com memória compartilhada, nesse caso aqui, já aparece a ideia de topologia, você tem então, através de barramento, as memórias locais conectadas ao barramento e do barramento conectado às memórias globais, cada memória local tem um processador conectado e através do servidor de memória, você tem então as memórias locais, aliás você tem quatro tipos, através do barramento foi esse, que é o processador, conectado às memórias locais, os locais aos barramentos, dos barramentos à memória global. No MIMD, que é através de servidor de memória, os processadores são conectados às memórias locais e todas elas à memória, a um servidor de memória, então é ponto a ponto aqui, bem diferente do através de barramento. Você tem o através de crossbar, que é o MIMD, memória compartilhada mas através de crossbar, os processamentos são conectados à memória local, a memória local ela tem as chaves, que ficam abertas ou fechadas, através do crossbar conectados às memórias globais e por fim você tem o MIMD, memória distribuída com controle de integridade, ou seja, é uma memória compartilhada mas é distribuída com controle de integridade. Então a memória local, ela é conectada à memória distribuída, que por sua vez é conectado ao sistema de comunicação. Agora tem o MIMD, troca de mensagens, são quatro tipos também e aqui ele se diferencia, ou seja, em termos de conexão por barramento serial ou paralelo, tem um segundo modelo que é a conexão por chaveador, então todos esses elementos de processamento são conectados ao chaveador, tem a conexão de malha, que é o MESH, também na troca de mensagem, MIMD, então o problema básico é como interligar milhares de elementos processadores, questão de topologia de rede e a conexão total ponto a ponto, que é o EP e também tem a conexão em anel, então são várias as topologias aqui, vários os esquemas para essa troca de mensagem do MIMD. O MIMD tem também agora outras formas de serem feitos, o MIMD troca de mensagens, que é por hipercubos, então você tem o hipercubo clássico, que é como se fosse parte de um cubo, abertas por paredes, o hipercubo genérico, aqui você já tem uma conexão 3D das bolinhas, é como se fosse uma interligação de bolinhas e linhas, aí você tem o hipercubo com múltiplos acessos, aqui existem várias conexões entre eles, e por fim o boleano, o boleano que é o... as bolinhas são representadas com números binários. E aqui você tem várias topologias de interconexão, que visam conectar as memórias, processadores e computadores, então a gente tem a A, B, ou seja, são várias as conexões possíveis para serem feitas. Níveis de paralelismo, nós temos a execução de trabalho job, execução de tarefa task, a execução de função thread, execução de instrução, transferência de registros e dispositivos lógicos hardware. Aqui é interessante frisar que um nível é abaixo do outro, por exemplo, o mais alto nível é a execução de trabalho job, depois do job você tem... ele é dividido em task, de task é em threads, em threads é execução de instrução, depois transferência de registro e dispositivo, então vamos lá. Tem esse um rack aqui como um modelo, uma forma de trabalho dele como executado, então tem esse rack, e dentro desse rack nós temos computadores, e cada computador com seu processamento e cada processamento realiza tarefas, e juntamente às tarefas se tem o job, que é o nível mais elevado com vários racks, as tarefas são subconjuntos do job, as tarefas são divididas em threads, ou seja, eu saio do nível do computador e vou para o nível do processador, o thread é constituído por instruções e cada uma delas envolve a transferência de registros, e os dispositivos lógicos que permitem que essa transferência de registros aconteça, aqui um exemplo do Cray HPC Cluster, o conjunto de instruções não acontece dentro do processador, mas sim acontece entre processadores, o instrumento paralelo do pipeline é administrado pelo sistema operacional através do thread. Com isso nós finalizamos a aula 5.