Giter VIP home page Giter VIP logo

t3-apd's Introduction

Tema 3 APD - Calcul paralel folosind MPI

Author: Barbulescu Mihai Group: 331CA

Continut arhiva

* complex.c - functii pentru lucrul cu numere complexe si calculul multimilor Mandelbrot si Julia
* complex.h
* main.c - sursa principala a programului
* Makefile
* README
* run_tema3.sh - script care compileaza tema si apoi efectueaza testele publice
Primeste un singur argument: numarul de procesoare. Exemplu de rulare:
		./run_tema3.sh 8
* test/ - folderul cu teste publice. Trebuie ca scriptul de rulare run_tema3.sh
si acest folder sa se afle in acelasi folder
* util.c - functii pentru parsarea fisierului de intrare, pentru scrierea
imaginii si care descriu taskurile master / slave
* util.h

Compilare si rulare

  • make - doar pentru compilare, genereaza tema3 ca executabil

  • ./run_tema3.sh {numar_procesoare} - compileaza si apoi ruleaza tema. Afiseaza daca testul este OK sau FAILED si cat timp a luat rularea mpirun (doar real, pentru ca e cel interesant)

Detalii de implementare

Am impartit datele de prelucrat in fragmente aproximativ egale, astfel "sclavul" cu rank-ul i primeste un numar de linii egal cu height / numtasks.

La pornire master-ul trimite slave-ului linia cu care incepe prelucarea + numarul de linii si datele din fisierul de intrare fara de care nu poate face prelucrarea. Astfel doar masterul are acces la fisierul de intrare, procesele slave primind datele strict necesare pentru calcul.

O alta solutie decat cea aleasa de mine era ca master-ul sa dea broadcast cu structura de input tuturor proceselor inferioare.

Pentru fiecare tip de multime am urmat algoritmii descrisi in enuntul temei, fara nici o abatere, sub forma a doua functii in complex.h.

Pentru precizie am lucrat cu double si am renuntat la a pune vreun flag de optimizare la compilare.

Tema a fost testata atat pe fep cat si pe masina locala: Ubuntu 12.04, 64bit

Known bugs

Tema nu ruleaza corect pentru un singur proces/procesor (numprocs != 1)

t3-apd's People

Contributors

b12mihai avatar

Watchers

Andrei Petre avatar James Cloos 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.