Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Δεν γνωρίζω φίλε atssssss

Παίδες δίνω 20€ PayPal σε όποιο μπορεί να μου στείλει σχόλια γραμμή-γραμμή για το πρόγραμμα. Αύριο μου έδωσε την τελευταία ευκαιρία

Δημοσ.

Πριν χρόνια είχα γράψει μια ρουτίνα για επίλυση συστήματος με Gauss και partial pivoting στο mpi.

Αυτό που έχεις δηλαδή.

 

 

Αν δεν έχεις ασχοληθεί, απλώς ξέχασέ το - θα σου είναι πολύ δύσκολο να καταλάβεις τι γίνεται

και αποκλείεται να κοροϊδέψεις τον επιβλέποντα.

Δεν πρόκειται για τον κλασσικό αλγόριθμο επίλυσης που ξέρουν όλοι αλλά για την υλοποίησή του

σε μηχάνημα κατανεμημένης μνήμης. Αυτό κάνει το mpi.

Ο τρόπος παραλληλισμού είναι δυσνόητος και απαιτεί να καταλάβεις σημαντικά πράγματα.

Π.χ. οι επεξεργαστές θεωρείται ότι αποτελούν ένα πίνακα Π : m x n και τα δεδομένα σου

(εδώ οι πίνακες του συστήματος) κατανέμονται στον Π.

Η κατανομή τους μπορεί να γίνεται κυκλικά (cyclic), κατά block (block) ή κατά block και κυκλικά μαζί (block-cyclic).

Π.χ. δοθέντος ενός διανύσματος με n στοιχεία xi, η κυκλική κατανομή του σε p επεξεργαστές

ορίζεται από την σχέση

xi -> P(mod(i,p))

όπου η συνάρτηση mod(i,p) δίνει το υπόλοιπο της ακέραιας διαίρεσης των i, p και

P(a) είναι ο επεξεργαστής με δείκτη a.

H εντολή

rp_map = i % num_processes

που έχει το πρόγραμμά σου κάνει κάτι τέτοιο (το % είναι το mod).

 

Η σωστή προσπέλαση των δεδομένων απαιτεί να κατανοήσεις την αντιστοιχία (σχέσεις) καθολικών

και τοπικών δεικτών των στοιχείων σου (δεδομένα) με τον πίνακα των επεξεργαστών.

Με τις σχέσεις αυτές μπορεί να βρεθεί πόσα στοιχεία πρέπει να δοθούν σε κάθε επεξεργαστή,

να κατανεμηθούν και να προσπελαστούν σαρώνοντας τους καθολικούς ή τοπικούς δείκτες.

Π.χ. σε ποιόν επεξεργαστή (process) βρίσκεται ένα στοιχείο του πίνακα του συστήματος κλπ.

 

Δεν είναι απλώς C που ξέρουν όλοι, είναι να κατανοήσεις αυτά τα πράγματα.

Θα μπορούσα να το κάνω αν είχα περισσότερο χρόνο αλλά τώρα όχι.

Την άλλη φορά πρέπει να διαβάσεις....

 

-

  • Like 1
Δημοσ.

Γενικά με MPI έχω διαβάσει και ξέρω τι γίνεται.. Τα βασικά, όπως τα βασικά της c τα ξέρω.. Απλά δεν μπορώ να κατανοήσω πλήρως το πρόγραμμα ή να του παρουσιάσω δικιά μου εκδοχή.

Δημοσ.

Αν θέλεις άλλη εκδοχή, έχω αυτό που είχα γράψει εγώ.

Δοκιμασμένο, ready to run και με πλήρεις, άψογες επεξηγήσεις για το πώς δουλεύει (10 σελ. κείμενο word).

ΑΛΛΑ το κοστολογώ πολύ πάνω από 20e (ο χρόνος και ο κόπος δεν είναι δωρεάν) και μάλλον θα αρνηθείς την προσφορά :-D.

 

-

  • Like 3
Δημοσ.

Παιδιά επειδή και εγώ είχα αρχίσει να ασχολούμε με MPI, OPENMP και p-threads αυτό το καιρό είπα να το δω..

Η αλήθεια είναι ότι δυσκολεύτηκα...

Δεν έχω πολύ εμπειρία σε C και σε mpi, αλλά είχα κάνει παρόμοιο πρόγραμμα πριν λίγο καιρό.

Σε αυτό το πρόγραμμα δεν καταλαβαίνω καθόλου τις γραμμές 132-139 ( http://pastebin.com/iYE7Xwes )

Δημοσ.

Παιδιά επειδή και εγώ είχα αρχίσει να ασχολούμε με MPI, OPENMP και p-threads αυτό το καιρό είπα να το δω..

Η αλήθεια είναι ότι δυσκολεύτηκα...

Δεν έχω πολύ εμπειρία σε C και σε mpi, αλλά είχα κάνει παρόμοιο πρόγραμμα πριν λίγο καιρό.

Σε αυτό το πρόγραμμα δεν καταλαβαίνω καθόλου τις γραμμές 132-139 ( http://pastebin.com/iYE7Xwes )

 

Eιναι καθαρα θέμα θεωρίας. Πρεπει να ξέρεις πως δουλευει ο αλγοριθμος

για να καταλαβεις πως γίνεται η κωδικοποιηση του στην C.

Δημοσ.

Επειδή προφανώς κόπηκα, αλλά το θέλω για εμένα, οποίος μπορεί να μου γράψει ένα κείμενο με το τι κάνει. Τι κάνει και πως το κάνει.. Χωρίς deadline και του βάζω τα χρήματα σε τράπεζα

 

Επειδή προφανώς κόπηκα, αλλά το θέλω για εμένα, οποίος μπορεί να μου γράψει ένα κείμενο με το τι κάνει. Τι κάνει και πως το κάνει.. Χωρίς deadline και του βάζω τα χρήματα σε τράπεζα

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...