Code Monkey home page Code Monkey logo

parallel_mathematics's Introduction

Parallel_mathematics

Σας ζητείται να φτιάξετε ένα MPI πρόγραμμα (σε γλώσσα C και θεωρώντας point-to-point communication), το οποίο, δοθέντος (ως είσοδο) ενός διανύσματος X (μήκους n στοιχείων xi | i=0…n-1), να υπολογίζει παράλληλα σε περιβάλλον ‘p’ επεξεργαστών και να τυπώνει στην οθόνη (ως έξοδο) τα ακόλουθα:

  • (α) τη μέση τιμή (μ) των στοιχείων του διανύσματος X:
    • μ= (x0+x1+x2+…+xn-1) / n
  • (β) τη μέγιστη τιμή (m) των στοιχείων του διανύσματος X:
    • xi ισχύει ότι xi <= m και ∃ xi τέτοιο ώστε xi = m
  • (γ) τη διασπορά (var) των στοιχείων του διανύσματος X:
    • var = ((x0–μ)^2+(x1–μ)^2+(x2–μ)^2+…+(xn-1–μ)^2) / n
  • (δ) ένα νέο διάνυσμα Δ (μήκους n στοιχείων δi | i=0…n-1), του οποίου κάθε στοιχείο δi θα ισούται με τo τετράγωνο της απόλυτης τιμής της διαφοράς του αντίστοιχου στοιχείου (xi) του διανύσματος Χ από τη μέγιστη τιμή m:
    • δi = |xi – m|^2

Χρησιμοποιήστε μόνο τις απλές συναρτήσεις επικοινωνίας τύπου MPI_Send()/MPI_Recv() (μην χρησιμοποιήσετε συναρτήσεις συλλογικής επικοινωνίας). Το σύνολο του απαιτούμενου υπολογιστικού φόρτου θα πρέπει να ισοκατανεμηθεί στους ‘p’ επεξεργαστές του παράλληλου περιβάλλοντός σας. Επίσης, κάθε επεξεργαστής θα πρέπει να λαμβάνει (κατέχει) στην τοπική του μνήμη μόνο τα δεδομένα εισόδου που χρησιμοποιεί για τοπικούς (δικούς του) υπολογισμούς. Τις τιμές/στοιχεία ‘n’, ‘xi’ θα πρέπει να τις δίνει ο χρήστης και να τις διαβάζει αντίστοιχα από την οθόνη ένας από τους ‘p’ επεξεργαστές του παράλληλου περιβάλλοντός σας (π.χ. ο επεξεργαστής ‘0’ τον οποίον για αυτό το λόγο τον θεωρούμε ως τον ‘κεντρικό' επεξεργαστή του παράλληλου περιβάλλοντος). Τα αποτελέσματα του προγράμματός σας θα πρέπει επίσης να συγκεντρώνονται στο τέλος στον ‘κεντρικό’ αυτό επεξεργαστή και μέσω αυτού να παρουσιάζονται στο χρήστη. Αναπτύξτε τον κώδικά σας παραμετρικά ώστε να δουλεύει σωστά για οποιονδήποτε αριθμό πολλαπλών επεξεργαστών ‘p’, θεωρώντας ότι το ‘n’ είναι ακέραιο πολλαπλάσιο του ‘p’. Θα πρέπει επίσης το πρόγραμμά σας να δουλεύει (α) με menu επιλογών (π.χ. 1. Συνέχεια – 2. Έξοδος) και (β) επαναληπτικά (δηλαδή να εμφανίζει επαναληπτικά το παραπάνω menu μέχρι να επιλέξει ο χρήστης την επιλογή ‘εξόδου’ από το πρόγραμμα).

parallel_mathematics's People

Contributors

filegeiasou avatar

Watchers

 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.