Giter VIP home page Giter VIP logo

projetoso's Introduction

					Projeto “Merge and sort”
				Prof. André Leon S. Gradvohl, Dr.
					[email protected]

Objetivo Este projeto visa a criação de um programa que utilize múltiplas threads para ler valores inteiros de N arquivos de entrada e armazenar em ordem crescente em um único arquivo de saída. Os dados dos arquivos de entrada não estão ordenados.

O programa deverá ser escrito para o sistema operacional Linux e obrigatoriamente utilizar a biblioteca POSIX Threads.

Descrição do problema a ser resolvido:

Considere que existem N arquivos de entrada com diferentes quantidades de valores inteiros não ordenados e que podem ser repetidos ou não. O programa deverá ler os valores inteiros desses vários arquivos e, de forma ordenada, armazená-los em um arquivo de saída.

O programa deve ser testado para 2, 4, 8 e 16 threads, com arquivos com diferentes quantidades de números inteiros.

Entradas e saídas de valores para o programa:

Entradas: O número de threads que o programa deve utilizar, os nomes dos arquivos de entrada e o nome do arquivo de saída. Para os testes, considere pelo menos 5 arquivos com 1000 valores cada. Saídas: Arquivo com os valores ordenados. Como sugestão, construa o programa de modo que os valores de entrada sejam lidos da linha de comando. Por exemplo: ./mergesort 4 arq1.dat arq2.dat arq3.dat –o saida.dat Onde:

  • ./mergesort é o nome do programa;
  • 4 é o número de threads;
  • arq1.dat arq2.dat arq3.dat são os arquivos com dados de entrada; e
  • -o saida.dat é o arquivo que contém os dados de saída.

Detalhamento dos produtos do projeto:

Os produtos que devem ser entregues como resultado do projeto são os seguintes: i. O código fonte do programa completo, documentado e pronto para ser compilado em sistemas Linux. ii. Um vídeo mostrando o código fonte do programa, a compilação do programa, um trecho do arquivo de entrada e a execução do programa para 2, 4, 8 e 16 threads. iii. Um relatório contendo a descrição da solução do problema (algoritmo em alto nível); as instruções para compilá-lo; gráficos com os tempos de execução do programa para 2, 4, 8 e 16 threads; e as conclusões a respeito dos resultados obtidos.

Todo o código fonte documentado, o relatório e a documentação do projeto devem estar disponíveis no repositório Git. No Moodle da disciplina, deve ser publicado apenas o relatório em PDF e neste relatório deve constar o endereço do repositório Git.

Para o item (i), a sugestão é a utilização de um makefile que facilite a compilação em sistemas Linux. Importante: o tempo de execução do programa deve considerar apenas o tempo desde a criação dos threads até produção dos dados de saída. Esse tempo não deve considerar o tempo para ler ou gravar dados nos arquivos.

Para o item (ii), sugere-se o uso dos programas para capturar a tela do computador e criar vídeos, como o SimpleScreenRecorder (http://www.maartenbaert.be/simplescreenrecorder).

Para o item (iii), o relatório deve estar no formato PDF ou disponível no próprio servidor Git usando um arquivo na sintaxe Markdown. Outros formatos não serão aceitos.

A falta de qualquer um dos itens acarretará em nota zero nesse componente de avaliação.

projetoso's People

Contributors

vxisto avatar erikafioroto avatar

Stargazers

Juan Santos avatar

Watchers

André Gradvohl avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.