Atps Arquitetura Computadores

13
ATIVIDADES PRÁTICAS SUPERVISIONADAS Ciência da Computação 4ª. Série Arquitetura de Computadores A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem desenvolvido por meio de um conjunto de etapas programadas e supervisionadas e que tem por objetivos: Favorecer a aprendizagem. Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e eficaz. Promover o estudo, a convivência e o trabalho em grupo. Desenvolver os estudos independentes, sistemáticos e o autoaprendizado. Oferecer diferentes ambientes de aprendizagem. Auxiliar no desenvolvimento das competências requeridas pelas Diretrizes Curriculares Nacionais dos Cursos de Graduação. Promover a aplicação da teoria e conceitos para a solução de problemas práticos relativos à profissão. Direcionar o estudante para a busca do raciocínio crítico e a emancipação intelectual. Para atingir estes objetivos a ATPS propõe um desafio e indica os passos a serem percorridos ao longo do semestre para a sua solução. A sua participação nesta proposta é essencial para que adquira as competências e habilidades requeridas na sua atuação profissional. Aproveite esta oportunidade de estudar e aprender com desafios da vida profissional. AUTORIA: Fernando Bryan Frizzarin Falculdade Anhanguera de Limeira

description

Atps da materia de arquitetura de computadores

Transcript of Atps Arquitetura Computadores

Page 1: Atps Arquitetura Computadores

ATIVIDADES PRÁTICAS

SUPERVISIONADAS

Ciência da Computação

4ª. Série Arquitetura de Computadores

A atividade prática supervisionada (ATPS) é um procedimento metodológico de

ensino-aprendizagem desenvolvido por meio de um conjunto de etapas

programadas e supervisionadas e que tem por objetivos:

Favorecer a aprendizagem.

Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e

eficaz.

Promover o estudo, a convivência e o trabalho em grupo.

Desenvolver os estudos independentes, sistemáticos e o autoaprendizado.

Oferecer diferentes ambientes de aprendizagem.

Auxiliar no desenvolvimento das competências requeridas pelas Diretrizes

Curriculares Nacionais dos Cursos de Graduação.

Promover a aplicação da teoria e conceitos para a solução de problemas

práticos relativos à profissão.

Direcionar o estudante para a busca do raciocínio crítico e a emancipação

intelectual.

Para atingir estes objetivos a ATPS propõe um desafio e indica os passos a

serem percorridos ao longo do semestre para a sua solução.

A sua participação nesta proposta é essencial para que adquira as

competências e habilidades requeridas na sua atuação profissional.

Aproveite esta oportunidade de estudar e aprender com desafios da vida

profissional.

AUTORIA:

Fernando Bryan Frizzarin

Falculdade Anhanguera de Limeira

Page 2: Atps Arquitetura Computadores

Pág. 2 de 13

Ciência da Computação - 4ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

COMPETÊNCIAS E HABILIDADES

Ao concluir as etapas propostas neste desafio, você terá desenvolvido as competências e habilidades que constam, nas Diretrizes Curriculares Nacionais, descritas a seguir.

Identificar, analisar, documentar e solucionar problemas e necessidades passíveis de solução via computação.

Compreender a inter-relação de cooperação e dependência entre as disciplinas do curso de Ciência da Computação.

Analisar, organizar, abstrair e relacionar dados e informações. Saber conciliar teoria e prática.

Produção Acadêmica

Relatórios parciais, com os resultados das pesquisas realizadas nas etapas de 1 a 4: Relatório 01 – Comparativo entre processadores e comparativo entre sistemas

operacionais, processadores pipelined. Relatório 02 – Benchmark, Cluster e Cloud. Relatório 03 – Teoria dos Clusters. Relatório 04 – Construção de um Cluster.

Participação

Esta atividade será, em parte, desenvolvida individualmente pelo aluno e, em parte, pelo grupo. Portanto, os alunos deverão:

organizar-se, previamente, em equipes de 3 a 5 participantes; entregar seus nomes, RAs e e-mails ao professor da disciplina e observar, no decorrer das etapas, as indicações: Aluno e Equipe.

Padronização

O material escrito solicitado nesta atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padrão:

em papel branco, formato A4; com margens esquerda e superior de 3cm, direita e inferior de 2cm; fonte Times New Roman tamanho 12, cor preta; espaçamento de 1,5 entre linhas; se houver citações com mais de três linhas, devem ser em fonte tamanho 10, com

um recuo de 4cm da margem esquerda e espaçamento simples entre linhas; com capa, contendo:

nome de sua Unidade de Ensino, Curso e Disciplina; nome e RA de cada participante; título da atividade; nome do professor da disciplina; cidade e data da entrega, apresentação ou publicação.

1 Consultar o Manual para Elaboração de Trabalhos Acadêmicos. Unianhanguera. Disponível em:

<http://www.unianhanguera.edu.br/anhanguera/bibliotecas/normas_bibliograficas/index.html>.

Page 3: Atps Arquitetura Computadores

Pág. 3 de 13

Ciência da Computação - 6ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

DESAFIO

No início do que chamamos de era dos computadores, em meados da década de 1940, os computadores nada mais eram do que grandes e desajeitadas máquinas calculadoras, capazes de realizar cálculos diferenciais em uma velocidade incrivelmente maior do que os seres humanos. Também não eram capazes de armazenar dados, nem mesmo os resultados dos cálculos realizados que precisavam ser anotados a partir de painéis luminosos ininteligíveis para pessoas comuns.

Na década de 1950 essa realidade começou a ser alterada pela ideia de que os computadores deveriam ser dotados de uma unidade central de processamento (UCP ou CPU Central Processing Unit) com funcionalidades básicas como registradores, operandos imediatos e alguma detecção de operandos inválidos. Dessa forma começou-se a caminhar em direção de computadores que poderiam ser utilizados para tarefas diversas, não apenas para aquela específica para que fora projetado.

Na década de 1960 a IBM (International Business Machines) começou a projetar uma família de computadores que poderiam executar o mesmo software, mas com poder de processamento diferente. Esse foi um marco para o mercado de computadores a época, pois computadores poderiam ser adquiridos por preços variados, de forma que o cliente poderia optar pela “velocidade que desejava executar seus softwares” (MANEY, HAMM, O’BRIEN, 2011, p.102-121). Modelo que perdura até hoje. Nesse ínterim a IBM criou o computador chamado System/360, sendo a primeira família de computadores a separar a arquitetura da implementação.

Com o passar dos anos, desde então, a busca foi sempre por aumentar a capacidade dos computadores, tanto em processamento quanto em armazenamento, de forma a ter cada vez mais velocidade de processamento e volume de dados. Círculo virtuoso que passou a ser o mantra científico e comercial da computação.

Em 1965, Gordon Moore2, postulou que o número de transistores em um chip dobrariam a cada 18 meses, sem acréscimos ao custo da sua concepção. Tal postulado ficou conhecido como a Lei de Moore que era realidade até que na década de 2000 os transistores eram tão pequenos que já não era mais possível diminuí-los, tornado quase impossível o aumento do clock dos processadores, por diversos fatores físicos relacionados à miniaturização. A solução foi utilizar mais de um processador em uma mesma arquitetura, sendo que esses processadores múltiplos puderam ser construídos dentro do mesmo encapsulamento, dando origem aos processadores multicore, cuja ideia baseia-se no fato de que dois processadores de 1,5 Ghz, por exemplo, têm o mesmo desempenho de um processador de 3,0 Ghz. Para que os processadores multicore sejam eficientes é preciso utilizar um conjunto de instruções e técnicas especiais para que ocorra paralelismo.

Nesse mesmo conceito estão os Cluster de Alto Desempenho, em que diversos processadores, memórias e mecanismos de armazenamentos estão disponíveis em localidades geograficamente dispersas.

2 MOORE, Gordon E. Cramming more components onto integrated circuits. Disponível em:

<https://docs.google.com/file/d/0Bw8h5gjcgv3IUlBCd2dZVjVMY2s/edit?usp=sharing>. Acesso em 09 abr. 2013.

Figura 01 - Gordon E. Moore,

co-fundador da Intel Co.

Disponível em:

<http://www.intel.com/pressroom/kits/events/moores_law_

40th/>. Acesso em: 14 abr.

2013.

Page 4: Atps Arquitetura Computadores

Pág. 4 de 13

Ciência da Computação - 4ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

Visto o contexto histórico, o desafio proposto consiste em investigar a evolução dos processadores e sistemas computacionais como um todo, desde a criação dos primeiros microprocessadores até os agrupamentos em formato de cluster. Deve-se investigar e identificar o conjunto de instruções de máquina, técnicas e linguagens de programação capazes de obter o máximo de desempenho em processadores multicore, realizando testes e documentação (relatórios) com as análises de desempenho (benchmark).

Objetivo do Desafio

Elaborar um conjunto de relatórios técnicos que demonstrem a ligação da arquitetura de computadores com a escolha de um sistema operacional e com o desenvolvimento de software para computadores.

ETAPA 1 (tempo para realização: 05 horas)

Aula-tema: Estrutura básica de um computador pessoal, estrutura de funcionamento da CPU: conjunto de instruções, estrutura de funcionamento da CPU: ciclo de instruções, Registradores: tipos de registradores, Registradores mais utilizados em computadores pessoais, Arquitetura Pipeline.

Esta atividade é importante para que você compreenda a estrutura e a arquitetura dos computadores existentes. Também tenha ampla visão das diferenças existentes entre as arquiteturas disponíveis no mercado de computadores e suas diferenças.

Para realizá-la, devem ser seguidos os passos descritos a seguir.

PASSOS

Passo 1 (Equipe)

Fazer as atividades apresentadas a seguir.

1. Pesquisar e descrever uma família de processadores de único núcleo e compará-la com uma família de processadores de múltiplos núcleos (multicore). Por exemplo, Intel Pentium e Intel Core i (i3, i5 e i7). Acessar os links:

INTEL. Especificação do processador i3 de terceira geração. 2013. Disponível em: <https://docs.google.com/file/d/0Bw8h5gjcgv3ITThYOEVveDdMdjQ/edit?usp=sharing>. Acesso em: 09 abr. 2013.

INTEL. Especificação do processador i5 de terceira geração. 2013. Disponível em: <https://docs.google.com/file/d/0Bw8h5gjcgv3IN25GZGE5cjFhTFU/edit?usp=sharing>. Acesso em 09 abr. 2013.

INTEL. Especificação do processador i7 de terceira geração. 2013. Disponível em: <https://docs.google.com/file/d/0Bw8h5gjcgv3IM05fZ0xRdjBBTmM/edit?usp=sharing>. Acesso em 09 abr. 2013.

Estes documentos contêm dados dos fabricantes desses processadores para efetuar sua pesquisa.

Page 5: Atps Arquitetura Computadores

Pág. 5 de 13

Ciência da Computação - 6ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

2. Escolher pelo menos dois processadores de cada família e produzir um relatório com os detalhes de miniaturização, clock, cache, consumo energético, conjunto de instruções de microarquitetura e capacidade dos controladores de memória principal (Random Access Memory – RAM) de cada um dos processadores escolhidos.

Passo 2 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Acessar o link: MICROSOFT, Requisitos do sistema do Windows 8, 2013. Disponível em:

<https://docs.google.com/file/d/0Bw8h5gjcgv3IUTVOLVhWZmQ4NWM/edit?usp=sharing>. Acesso em 09 abr. 2013.

2. Pesquisar o suporte a processadores e requisitos míminos para o Sistema Operacional Windows 8.

3. Escolher uma distribuição Linux com ambiente gráfico GNOME e fazer a mesma pesquisa sobre suporte a processadores e requisitos mínimos.

4. Recorrer ao livro texto da disciplina de Sistemas Operacionais no capítulo "Arquitetura de Sistemas Operacionais" para descrever em profundidade o funcionamento dos sistemas operacionais selecionados.

5. Elaborar uma tabela comparativa, conforme modelo abaixo, entre o Sistema Operacional Windows e a distribuição Linux escolhida.

Tabela 01 - Comparação entre sistemas operacionais.

Requisitos Windows 8 Linux

Processador

Memória RAM

Espaço no disco rígido

Placa gráfica

Resolução de tela Fonte: Autor.

Passo 3 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Acessar o link TOKARNIA, Alice M., Pipeline: conceitos básicos e mais. 2013. Disponível em:

<https://docs.google.com/file/d/0Bw8h5gjcgv3IZTBSZXgzeFc2UzQ/edit?usp=sharing>. Acesso em 09 abr. 2013.

2. Fazer uma pesquisa sobre processadores “pipelined”, ou processadores que fazem uso da técnica chamada “pipeline”.

3. Elaborar um relatório que descreva as vantagens e desvantagens dessa técnica.

Passo 4 (Equipe)

Elaborar um único relatório e entregar ao professor o relatório parcial de cinco a quinze páginas com o nome: Relatório 01 – Comparativo entre processadores e comparativo entre

sistemas operacionais, processadores pipelined contendo as informações obtidas nos passos anteriores.

Page 6: Atps Arquitetura Computadores

Pág. 6 de 13

Ciência da Computação - 4ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

ETAPA 2 (tempo para realização: 05 horas)

Aula-tema: Memórias: principal, Memórias: Secundária, cache, Dispositivos de entrada e saída, Barramento: tipos, arquitetura, adaptadores.

Esta atividade é importante para que você entenda como é desenvolvido o paralelismo

no nível de instrução dos processadores e a evolução para os clusters de alto desempenho. Essa atividade propõe ainda que o aluno pesquise e entenda plenamente o conceito de cloud (nuvem).

Para realizá-la, devem ser seguidos os passos descritos a seguir.

PASSOS

Passo 1 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Realizar testes com o programa do código apresentado abaixo cronometrando a execução

de alguns comandos internos do sistema operacional, tais como DIR, TREE, MD, RD criando um relatório que apresente o resultado das investidas em formato de tabela conforme exemplo apresentado a seguir.

Tabela 02 – Tempo de execução de comandos internos do sistema operacional.

Sistema operacional:

Comando Tempo real de execução

DIR

TREE

MD

RD Fonte: Autor.

2. Considerar que um dos meios mais fáceis e simples para análise de desempenho

(benchmark) é cronometrar a execução de um programa em um determinado sistema computacional. Para sistemas computacionais baseado em sistema operacional Windows é necessário desenvolver uma ferramenta para isso, pode-se utilizar o código escrito em linguagem C mostrado a seguir.

Page 7: Atps Arquitetura Computadores

Pág. 7 de 13

Ciência da Computação - 6ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

Código fonte 01 - Cronômetro para execução de programas.

#include <windows.h>

#include <stdio.h>

char *skip_arg(char *line)

{

while (*line != '\0' && *line != ' ' && *line != '\t')

line++;

while (*line == ' ' || *line == '\t')

line++;

return line;

}

int main(void)

{

STARTUPINFO stup;

PROCESS_INFORMATION pinfo;

LONGLONG ct, et, kt, ut, elapse;

SYSTEMTIME sct, set;

char *call;

call = GetCommandLine(); // string com a linha de comando

call = skip_arg(call); // salta o 1.o argumento

GetStartupInfo(&stup); // necessário para a criação de um novo processo

CreateProcess(NULL, call, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL,

NULL,&stup, &pinfo); // cria novo processo com parâmetros de chamada

WaitForSingleObject(pinfo.hProcess, INFINITE); // espera que termine

GetProcessTimes(pinfo.hProcess, (FILETIME *)&ct, (FILETIME *)&et,(FILETIME

*)&kt, (FILETIME *)&ut);

CloseHandle(pinfo.hProcess); // fecha handle do processo terminado

CloseHandle(pinfo.hThread); // fecha handle do thread terminado

elapse = et - ct;

FileTimeToSystemTime((FILETIME *)&ct, &sct);

FileTimeToSystemTime((FILETIME *)&et, &set);

printf("\n\nStart time: %02d:%02d:%02d.%03d\n", sct.wHour,

sct.wMinute,sct.wSecond, sct.wMilliseconds);

printf("End time: %02d:%02d:%02d.%03d\n", set.wHour,

set.wMinute,set.wSecond, set.wMilliseconds);

printf("Elapsed: %.3f ms\n", (double)elapse/10000);

printf("Kernel: %.3f ms\n", (double)kt/10000);

printf("User: %.3f ms\n", (double)ut/10000);

return 0;

}

Fonte: Autor.

Depois de compilado pode ser utilizado com a seguinte sintaxe: timer <nome do programa>

Em que, <nome do programa> é o programa que se deseja cronometrar o tempo de execução. Verificar a figura apresentada a seguir:

Page 8: Atps Arquitetura Computadores

Pág. 8 de 13

Ciência da Computação - 4ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

Figura 02 – Programa cronometrado em sistema operacional Windows. Fonte: Autor.

Em sistemas computacionais baseados no sistema operacional Linux pode-se utilizar o comando time com a seguinte sintaxe: time <nome do programa> Em que, <nome do programa> é o programa que se deseja cronometrar o tempo de execução. Verificar a figura apresentada a seguir:

Figura 03 - Programa cronometrado em sistema operacional Linux. Fonte: Autor.

Page 9: Atps Arquitetura Computadores

Pág. 9 de 13

Ciência da Computação - 6ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

Passo 2 (Equipe)

Fazer as atividades apresentadas a seguir: 1. Realizar os mesmos testes do passo anterior nos computadores dos integrantes do grupo e

no maior número de computadores possíveis da faculdade, sendo que obrigatoriamente deverão ser em pelo menos dois sistemas operacionais diferentes, os comandos deverão ser os mesmos para efeito de comparação.

2. Relatar os resultados encontrados no formato de tabela conforme o descrito no passo anterior e gerar um gráfico de linhas para comparação de todos os resultados, conforme exemplo apresentado na figura 4 a seguir.

Figura 4 – Gráfico de exemplo de gráfico para tempo de execução de comandos. Fonte: Autor.

Passo 3 (Equipe)

Ler o artigo: PEDROSA, Paulo H. C. e NOGUEIRA, Tiago. Computação em Nuvem. 2013. Disponível em: <https://docs.google.com/file/d/0Bw8h5gjcgv3IX1NJZG5QWVBUNjA/edit?usp=sharing>. Acesso em 09 abr. 2013. Em seguida, elaborar um resumo para integrar o relatório parcial desta etapa.

Passo 4 (Equipe)

Elaborar e entregar ao professor relatório parcial de 10 a 20 páginas com o nome Relatório 02

– Benchmark, Cluster e Cloud contendo as informações obtidas nos passos anteriores. Este relatório deverá conter as tabelas criadas no passo 01 e passo 02, além do gráfico obtido com os valores dessas tabelas e também o resumo sobre o artigo Computação em Nuvem realizado para o passo 03.

Page 10: Atps Arquitetura Computadores

Pág. 10 de 13

Ciência da Computação - 4ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

ETAPA 3 (tempo para realização: 05 horas)

Aula-tema: Análise de desempenho de computadores (Benchmark).

Esta atividade é importante para que você crie familiaridade com sistemas cluster, entenda o funcionamento e possa posteriormente realizar teste neste ambiente.

Para realizá-la, devem ser seguidos os passos descritos a seguir.

PASSOS

Passo 1 (Equipe)

Pesquisar e organizar em forma de tabela, conforme o exemplo abaixo, pelo menos 5 características dos clusters de alto desempenho, cluster de alta disponibilidade e cluster para balanceamento de carga. Tabela 03 – Descrição dos sistemas de cluster.

Cluster Características

Alto Desempenho

Alta Disponibilidade

Balanceamento de Carga Fonte: Autor.

Bibliografia Complementar

• SANTOS, Rafael. Introdução à Programação Orientada a Objetos usando Java. PLT. 1ª ed. Rio de Janeiro: Elsevier, 2008.

• DEITEL, Paul J. (org.). Sistemas Operacionais. 3ª ed. São Paulo: Pearson Prentice Hall, 2008.

Passo 2 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Pesquisar sistemas de Cluster para Alto Desempenho (HPC - High Performance Cluster)

disponível para sistemas operacionais Linux. Os sistemas de cluster devem ser obrigatoriamente, open-source e gratuitos.

2. Escrever relatório que contenha o nome do sistema de Cluster HPC encontrado, em qual versão se encontra, qual o desenvolvedor e se é aplicado apenas para alguma distribuição Linux específica.

Passo 3 (Aluno)

Acessar o link BACELLAR, Hilário Viana. Cluster: Computação de Alto Desempenho. 2013. Disponível em: <https://docs.google.com/file/d/0Bw8h5gjcgv3IRXdxZGxfYkZfbUU/edit?usp=sharing>. Acesso em: 09 abr. 2013. Em seguida, resumir as vantagens de desvantagens apresentadas pelo autor.

Page 11: Atps Arquitetura Computadores

Pág. 11 de 13

Ciência da Computação - 6ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

Passo 4 (Aluno)

Elaborar e entregar ao professor relatório parcial de 10 a 20 páginas com o Relatório 03 –

Teoria dos Clusters contendo as informações obtidas nos passos anteriores. Este relatório deverá conter a tabela criada no passo 01 e a lista de sistemas de Cluster HPC feita para o passo 02, além do resumo do artigo lido para o passo 03.

ETAPA 4 (tempo para realização: 05 horas)

Aula-tema: Arquitetura de computadores com paralelismo: Cluster e Cloud, Computadores dedicados e embarcados.

Esta atividade é importante para que você possa efetuar testes práticos em sistemas de

arquitetura em cluster. Para realizá-la, devem ser seguidos os passos descritos a seguir.

PASSOS

Passo 1 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Utilizar uma distribuição Linux a escolha do grupo e implementar um cluster de alto

desempenho, conforme os encontrados e estudados na etapa anterior, com pelo menos dois computadores. Não será preciso a utilização de computadores exclusivos para essa tarefa sendo que a implementação pode ser feita por meio de mídias do tipo live (sem a necessidade de instalação definitiva do sistema operacional no computador), por meio de boot utilizado pendrives ou máquina virtual.

2. Descrever a instalação em relatório que contenha todas as telas de todos os passos da instalação seguidas dos respectivos comandos utilizados para que todo o processo seja concluído.

Passo 2 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Acessar: ORACLE. Fork/Join. 2013. Disponível em:

<https://docs.google.com/file/d/0Bw8h5gjcgv3IZzZtSEtzN0FMS28/edit?usp=sharing>. Acesso em: 09 abr. 2013. Entender as técnicas e comandos utilizados para programar tarefas em ambientes de paralelismo e multicore em linguagem JAVA.

2. Descrever os comandos e técnicas em relatório de no máximo três páginas.

Passo 3 (Equipe)

Fazer as atividades apresentadas a seguir. 1. Alterar ao programa abaixo, que mostra todos os números primos entre 1 e 100.000 para

que possa ser executado de forma concorrente, baseando-se no artigo lido no passo anterior.

Page 12: Atps Arquitetura Computadores

Pág. 12 de 13

Ciência da Computação - 4ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

Código Fonte 02 – Cálculo e exibição de números primos. public class EP_normal {

// Variáveis para controlar da execução

private int iniS, fimS;

private boolean primo;

// Construtor

public EP_normal(int iniS, int fimS) {

this.iniS = iniS;

this.fimS = fimS;

}

// Método para o cálculo dos números

//primos do intervalo

public void calcula() {

for (int x = iniS; x <= fimS; x++) {

primo = true;

for (int y = 2; y < x; y++) {

if (x % y == 0) {

primo = false;

}

}

if (primo)

System.out.println("O número " + x

+ " é primo.");

}

}

}

import java.util.Calendar;

class Processa2 {

public static void main(String[] args) {

// Obtem do sistema o horário de início da execução

Calendar data_ini = Calendar.getInstance();

int hor_ini = data_ini.get(Calendar.HOUR_OF_DAY);

int min_ini = data_ini.get(Calendar.MINUTE);

int seg_ini = data_ini.get(Calendar.SECOND);

// Ajusta os números de início e fim

int iniS = 1, fimS = 100000;

// Instancia a classe e executa o métodos para calculo dos números primos

EP_normal ep = new EP_normal(iniS, fimS);

ep.calcula();

// Obtem do sistema o horário de término da execução

Calendar data_fim = Calendar.getInstance();

int hor_fim = data_fim.get(Calendar.HOUR_OF_DAY);

int min_fim = data_fim.get(Calendar.MINUTE);

int seg_fim = data_fim.get(Calendar.SECOND);

// Mostra o tempo de execução

System.out.println("Iniciado em " + hor_ini + ":" + min_ini + ":" +

seg_ini);

System.out.println("Encerrado em " + hor_fim + ":" + min_fim + ":" +

seg_fim);

}

}

Fonte: Autor.

2. Executar e cronometrar o tempo para conclusão do programa em computador usando o sistema operacional Microsoft Windows e em computador usando sistema operacional Linux. Anotar os tempos.

Page 13: Atps Arquitetura Computadores

Pág. 13 de 13

Ciência da Computação - 6ª. Série - Arquitetura de Computadores

Fernando Bryan Frizzarin

3. Executar e cronometrar o tempo para conclusão do programa no cluster implementado na etapa anterior. Anotar o tempo.

4. Descrever e comentar em relatório, de no máximo, cinco páginas os tempos obtidos relacionando o sistema de único computador com o sistema de cluster.

Passo 4 (Equipe)

Elaborar e entregar ao professor relatório parcial com no máximo trinta páginas com o nome Relatório 04 - Construção de um Cluster contendo as informações obtidas nos passos anteriores. Esse relatório deverá conter a descrição da instalação do cluster, os comandos da linguagem de programação JAVA utilizados para criar programas paralelos, o código fonte do programa alterado para que calcule os números primos de forma paralela que possa ser utilizado em cluster e os tempos de execução desse programa em sistema de único computador e cluster.

Referências Bibliográficas: MANEY, Kevin, HAMM, Steve, O’BRIEN, Jeffrey M. Tornando um mundo melhor: ideias que moldaram um século e uma empresa. São Paulo: IBM Press – Pearson PLC, 2011.

Livro Texto da Disciplina:

HENNESSY, J. L. Arquitetura de Computadores: Uma Abordagem Quantitativa. 4ª ed. São Paulo: Campus - Elsevier, 2009.