THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Παράλληλα και Διανεμημένα Συστήματα => Topic started by: ytsejam on February 23, 2020, 20:53:06 pm



Title: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: ytsejam on February 23, 2020, 20:53:06 pm
Θα έχουμε διορθώσεις για την 4η εργασία?
Εμένα λέει "You have no assigned submission to assess"


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on March 03, 2020, 20:48:08 pm
Μπορεί κάποιος να ανεβάσει την εκφώνηση της εργασίας επειδή πλέον δεν είναι διαθέσιμη στο elearning ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on March 04, 2020, 15:14:31 pm
Μπορεί κάποιος να ανεβάσει την εκφώνηση της εργασίας επειδή πλέον δεν είναι διαθέσιμη στο elearning ;

there you go


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on March 26, 2020, 22:14:28 pm
Εργασία 4 - Vantage Point Tree
Εφόσον η υλοποίηση πρέπει να γίνει με βάση τα πρότυπα της πρώτης εργασίας, μπορεί να εξηγήσει κάποιος πως μεταφέρει το δέντρο που δημιουργείται στην GPU (device) πίσω στην CPU (host). Καθώς, δεδομένου οτι τα inner & outter subtrees είναι pointers θα πρέπει με κάποιο τρόπο να δείχνουν σε θέσεις μνήμης του host και όχι του device.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/2
Post by: ytsejam on March 30, 2020, 18:52:39 pm
Εργασία 4 - Vantage Point Tree
Εφόσον η υλοποίηση πρέπει να γίνει με βάση τα πρότυπα της πρώτης εργασίας, μπορεί να εξηγήσει κάποιος πως μεταφέρει το δέντρο που δημιουργείται στην GPU (device) πίσω στην CPU (host). Καθώς, δεδομένου οτι τα inner & outter subtrees είναι pointers θα πρέπει με κάποιο τρόπο να δείχνουν σε θέσεις μνήμης του host και όχι του device.

Θα χρειαστείς έναν τρόπο να "διορθώσεις" τους δείκτες κάθε κόμβου να δείχνουν στο σωστό μέρος. Εγώ έχτισα το δέντρο σε πίνακα, δηλαδή τα παιδιά του κόμβου i είναι στα 2*i + 1 , 2*i + 2 κλπ. Οπότε ήταν εύκολο να ανακτήσω τους δείκτες. Το κακό με αυτό είναι ότι σε κακή περίπτωση μπορεί να δεσμεύσεις διπλάσια μνήμη από αυτή που χρειάζεται.

<edit>
Το άλλο που σκέφτηκα είναι να κάνεις malloc και cudaMemcpy για κάθε κόμβο (αναδρομικά?) δηλαδή κάτι σαν:

if inner != NULL
then copy (inner)

...ίδιο για outer
</edit>

Φυσικά το παραπάνω το κάνεις αν σε νοιάζει να μεταφερθεί το δέντρο. Διαφορετικά το κρατάς σε gpu και κάνεις kNN απ'ευθείας από εκεί (τα έκανα και τα δύο).


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on March 30, 2020, 19:04:12 pm
Θα χρειαστείς έναν τρόπο να "διορθώσεις" τους δείκτες κάθε κόμβου να δείχνουν στο σωστό μέρος. Εγώ έχτισα το δέντρο σε πίνακα, δηλαδή τα παιδιά του κόμβου i είναι στα 2*i + 1 , 2*i + 2 κλπ. Οπότε ήταν εύκολο να ανακτήσω τους δείκτες. Το κακό με αυτό είναι ότι σε κακή περίπτωση μπορεί να δεσμεύσεις διπλάσια μνήμη από αυτή που χρειάζεται.
Σε αυτό το διόρθωμα έχω κολλήσει. O πίνακας που λες είναι ένα array of structs, όπου οι inner - outter pointers κάθε κόμβου δείχνουν σε κάποιο άλλο struct του array ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/2
Post by: ytsejam on March 30, 2020, 19:10:07 pm
Σε αυτό το διόρθωμα έχω κολλήσει. O πίνακας που λες είναι ένα array of structs, όπου οι inner - outter pointers κάθε κόμβου δείχνουν σε κάποιο άλλο struct του array ;

Ναι. Στην gpu αυτό συμβαίνει αυτόματα από τη διαδικασία κατασκευής. Όταν θα αντιγραφεί σε host τότε node->inner και node->outer είναι άκυροι pointers. Αλλά για τον κόμβο array[ i ], θα πρέπει να κάνεις array[ i ]->inner = &array[2*i + 1], και array[ i ]->outer = &array[2*i + 2].
Αυτό γιατί το δέντρο είναι δυαδικό από τον ορισμό του. Προσοχή στα null


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on April 07, 2020, 17:08:05 pm
Εξαιτιας της αναδρομης του αλγοριθμου θα χρειαστει να χρησιμοποιησουμε Dynamic Parallelism ετσι ; Ρωταω γιατι εχω φαει αρκετες μερες και θελω να σιγουρευτω οτι είναι η σωστή προσέγγιση


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: ytsejam on April 09, 2020, 16:25:45 pm
Εξαιτιας της αναδρομης του αλγοριθμου θα χρειαστει να χρησιμοποιησουμε Dynamic Parallelism ετσι ; Ρωταω γιατι εχω φαει αρκετες μερες και θελω να σιγουρευτω οτι είναι η σωστή προσέγγιση

Το έκανα χωρίς δυναμικό παραλληλισμό. Αν μπορείς όμως, γιατί όχι.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on April 10, 2020, 14:57:11 pm
Το έκανα χωρίς δυναμικό παραλληλισμό.
Άρα δεν υλοποιείς τον αλγόριθμο που είχε η εκφώνηση, δηλαδή την αναδρομη;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: ytsejam on April 10, 2020, 16:40:10 pm
Άρα δεν υλοποιείς τον αλγόριθμο που είχε η εκφώνηση, δηλαδή την αναδρομη;

Όχι, νομίζω στην εκφώνηση δεν επιβάλλει να κάνεις αναδρομική συνάρτηση κατασκευής δέντρου.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on April 10, 2020, 17:02:15 pm
Όχι, νομίζω στην εκφώνηση δεν επιβάλλει να κάνεις αναδρομική συνάρτηση κατασκευής δέντρου.
Χμμ για να βρεις το εσωτερικο και εξωτερικο υποδενδρο καθε κομβου δεν καλεις την ιδια συναρτηση - kernel με αλλο set X ? 


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: ytsejam on April 10, 2020, 17:49:46 pm
Χμμ για να βρεις το εσωτερικο και εξωτερικο υποδενδρο καθε κομβου δεν καλεις την ιδια συναρτηση - kernel με αλλο set X ? 

Όχι. Έχω κάνει συνάρτηση __device__ που βρίσκει αυτά που πρέπει για κάθε κόμβο. Αυτή καλείται με kernel (δλδ __global__) με κάθε νήμα να ασχολείται με έναν κόμβο. Και ο kernel καλείται τόσες φορές όσο είναι και το ύψος του δέντρου ώστε να καλυφθούν όλοι οι κόμβοι. Ουσιαστικά χτίζω το δέντρο ανά επίπεδο. Δεν ξέρω αν λέω πολλά τώρα ::)

Εάν σε βολεύει καλύτερα η αναδρομή (με την έννοια αναδρομικού kernel) νομίζω ότι υπάρχει τρόπος να το κάνεις έτσι. Αυτό εξαρτάται από την gpu που θα τρέξει το πρόγραμμά σου. Θέλει νομίζω κάτι που το λένε "compute capability" να είναι μεγαλύτερο από κάποια εκδοχή.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Μπουγάτσας on April 10, 2020, 18:09:38 pm
Όχι. Έχω κάνει συνάρτηση __device__ που βρίσκει αυτά που πρέπει για κάθε κόμβο. Αυτή καλείται με kernel (δλδ __global__) με κάθε νήμα να ασχολείται με έναν κόμβο. Και ο kernel καλείται τόσες φορές όσο είναι και το ύψος του δέντρου ώστε να καλυφθούν όλοι οι κόμβοι. Ουσιαστικά χτίζω το δέντρο ανά επίπεδο. Δεν ξέρω αν λέω πολλά τώρα ::)
Όχι εσύ μια χαρά τα λες χαχα. Νομίζω κατάλαβα τι κάνεις, θα το προσπαθήσω
Quote
Εάν σε βολεύει καλύτερα η αναδρομή (με την έννοια αναδρομικού kernel) νομίζω ότι υπάρχει τρόπος να το κάνεις έτσι. Αυτό εξαρτάται από την gpu που θα τρέξει το πρόγραμμά σου. Θέλει νομίζω κάτι που το λένε "compute capability" να είναι μεγαλύτερο από κάποια εκδοχή.
Ναι θέλει αλλά νομίζω οι περισσότερες gpu το υποστηρίζουν, γιατί το κατώτατο όριο αν θυμάμαι καλά είναι 2.0 .


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: alekosts on August 07, 2020, 20:43:13 pm
Εν τέλει ξέρουμε αν η χρήση dynamic parallelism οδηγεί σε αποδοτική προσέγγιση?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: karelisp on August 08, 2020, 23:54:50 pm
Εν τέλει ξέρουμε αν η χρήση dynamic parallelism οδηγεί σε αποδοτική προσέγγιση?

Προσωπικά δοκίμασα τον αναδρομικό αλγόριθμο με dynamic parallelism και δεν εβγαινε καθόλου αποδοτικός, όχι μονο στη δική μου καρτα γραφικών (που είναι παλιά) αλλά ακόμη και σε αυτήν του partition gpu του AUTH HPC (νομίζω είναι η Tesla P100?).



Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Judas Priest saved me on August 11, 2020, 18:44:27 pm
Ποια υλοποίηση χρησιμοποιήσατε για το construction του KD δέντρου και τη χρήση του για knn search ? Όλες οι υλοποιήσεις που βρήκα είναι μόνο για δυσδιάστατα δέντρα.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: thanosthehuge on August 18, 2020, 15:01:46 pm
Το KD Tree θέλει να το υλοποιήσουμε και αυτό παράλληλα έτσι?? Όχι να το πάρουμε έτοιμο σειριακό από κάπου?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: dim2712 on August 18, 2020, 17:17:46 pm
Εγω καταλαβα  να παρουμε ετοιμες μετρησεις απο papers απο ηδη optimized kd trees.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Judas Priest saved me on August 18, 2020, 20:05:16 pm
Εγώ κατάλαβα να πάρουμε τον κώδικα έτοιμο απο κάπου και να κάνουμε δικές μας μετρήσεις. Ό,τι βρήκα όμως σε c/c++ ήταν μονο για δυσδιάστατα δέντρα .


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: thanosthehuge on August 19, 2020, 12:33:41 pm
Όχι. Έχω κάνει συνάρτηση __device__ που βρίσκει αυτά που πρέπει για κάθε κόμβο. Αυτή καλείται με kernel (δλδ __global__) με κάθε νήμα να ασχολείται με έναν κόμβο. Και ο kernel καλείται τόσες φορές όσο είναι και το ύψος του δέντρου ώστε να καλυφθούν όλοι οι κόμβοι. Ουσιαστικά χτίζω το δέντρο ανά επίπεδο. Δεν ξέρω αν λέω πολλά τώρα ::)

Έχει καταλάβει κανείς πώς χρησιμοποιώντας αυτόν τον τρόπο θα αναθέτουμε σε κάθε thread διαφορετικό υποδένδρο?? Δυσκολεύομαι να δω πως γίνεται χωρίς αναδρομή η κατασκευή.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: dim2712 on August 20, 2020, 03:58:42 am
Mια λυση ειναι να ανοιξεις την αναδρομη σε for loop


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: athanasps on August 21, 2020, 16:38:12 pm
Εχει ασχοληθεί κάποιος με Sparse Graph Matrix Reordering? Αν ναι, κάνει ανάγνωση τους πίνακες από συμπιεσμένη μορφή? Γιατί ο όγκος των πινάκων σε πλήρη μορφή από παραδείγματα που βρήκα είναι τεράστιος.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: dim2712 on August 21, 2020, 17:17:32 pm
Που ακριβως εχεις συναντησει sparse matrix;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: athanasps on August 21, 2020, 19:04:04 pm
Είναι το δεύτερο θέμα των εργασιών.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: dim2712 on August 21, 2020, 19:43:03 pm
A καταλαβα για το πρωτο θεμα


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: pesto80 on August 21, 2020, 22:29:34 pm
Έχουμε διορία για την εργασία;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Judas Priest saved me on August 21, 2020, 22:48:52 pm
Έχουμε διορία για την εργασία;

Στην εκφωνηση το λεει μπρο

Deadline
Last exam day of February or September exam period


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: alekosts on August 26, 2020, 14:07:38 pm
Όχι. Έχω κάνει συνάρτηση __device__ που βρίσκει αυτά που πρέπει για κάθε κόμβο. Αυτή καλείται με kernel (δλδ __global__) με κάθε νήμα να ασχολείται με έναν κόμβο. Και ο kernel καλείται τόσες φορές όσο είναι και το ύψος του δέντρου ώστε να καλυφθούν όλοι οι κόμβοι. Ουσιαστικά χτίζω το δέντρο ανά επίπεδο. Δεν ξέρω αν λέω πολλά τώρα ::)

Με αυτή την προσέγγιση κατάφερες καλύτερους χρόνους από την παράλληλη υλοποίηση σε CPU; Το ρωτάω γιατί μέχρι στιγμή το δικό μου πρόγραμμα είναι αρκετά πιο αργό σε σχέση με αυτό τις πρώτης εργασίας.(Καλά όχι ότι βγάζει τέρμα σωστά αποτελέσματα αλλά τουλάχιστον εκεί είμαι πιο κοντά)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: thanosthehuge on August 26, 2020, 14:58:06 pm
Με αυτή την προσέγγιση κατάφερες καλύτερους χρόνους από την παράλληλη υλοποίηση σε CPU; Το ρωτάω γιατί μέχρι στιγμή το δικό μου πρόγραμμα είναι αρκετά πιο αργό σε σχέση με αυτό τις πρώτης εργασίας.(Καλά όχι ότι βγάζει τέρμα σωστά αποτελέσματα αλλά τουλάχιστον εκεί είμαι πιο κοντά)

Κι εγώ που το υλοποίησα έτσι βγάζω αρκετά κακούς χρόνους πάντως, χειρότερους και από τη σειριακή υλοποίηση....


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: alekosts on August 26, 2020, 15:24:14 pm
Κι εγώ που το υλοποίησα έτσι βγάζω αρκετά κακούς χρόνους πάντως, χειρότερους και από τη σειριακή υλοποίηση....
Χρησιμοποίησες κάποια παράλληλη υλοποίηση της quickselect;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: thanosthehuge on August 26, 2020, 15:30:33 pm
Χρησιμοποίησες κάποια παράλληλη υλοποίηση της quickselect;

Μπα, δεν ξέρω αν έχει πολύ νόημα, θεωρώ πως αλλού γίνεται η "βαριά" δουλειά (π.χ. στον υπολογισμό του distance matrix ή στον διαχωρισμό των σημείων σε inner και outer κάθε φορά).


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: alekosts on August 26, 2020, 15:38:32 pm
Χωρίς να είμαι σίγουρος νομίζω ότι έτσι χάνεις  χρόνο στην μεταφορά των δεδομένων απο device σε host για να κάνεις την quickselect. Δες το λιγο. Πάντως η υλοποίηση μιας quickselect για gpu μου φαίνεται αρκετά δύσκολη. Εγώ  βρήκα μια υλοποίηση για gpu της bucketselect,αλλά αρχικά δεν λειτουργεί καλά και επίσης καθυστερεί περισσότερο από την σειριακή όταν έχει να κάνεις με λίγα στοιχεία.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: thanosthehuge on August 26, 2020, 15:52:55 pm
Μισό ρε. Εγώ την quickselect την έχω κάνει __device__ συνάρτηση και την καλώ απευθείας μέσα από την GPU. Δε νομίζω ότι μεταφέρονται δεδομένα σε CPU και πίσω κάθε φορά που την καλώ. Κάνω λάθος??


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: alekosts on August 26, 2020, 16:14:35 pm
Μισό ρε. Εγώ την quickselect την έχω κάνει __device__ συνάρτηση και την καλώ απευθείας μέσα από την GPU. Δε νομίζω ότι μεταφέρονται δεδομένα σε CPU και πίσω κάθε φορά που την καλώ. Κάνω λάθος??
Όχι αν την έχεις κάνει device συνάρτηση δεν μεταφέρονται δεδομένα αλλα ίσως είναι χειτότερη σε ταχύτητα σε σχέση με την σειριακή. Δες λίγο τους χρόνους της quickselect έτσι όπως την έχεις κάνει και τους χρόνους από τα υπόλοιπα όταν κάνουν πράξεις για μικρό αριθμό στοιχείων. Εγώ εκεί έχω δει ότι έχω πρόβλημα.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 01, 2020, 01:15:30 am
2o Project (RCM)

Αρκεί να υπολογίσουμε μόνο το permutation, ή πρέπει να βγάζουμε σαν output και τον νέο πίνακα με το μικρότερο πλέον bandwidth (άρα να φτιάχνουμε τον γράφο και στο τέλος να υπολογίζουμε και το adjacency matrix του);


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mikalaki on September 01, 2020, 05:53:07 am
Ο αλγόριθμος εξ ορισμού δίνει μονο το permutation order array , εγώ προσωπικά μονο αυτό το τμήμα συμπεριέλαβα στην συνάρτηση του αλγορίθμου , βέβαια έχω υλοποιήσει και μια μικρη συναρτηση (εκτος του αλγοριθμου φυσικά), η οποία δίνει τον νέο πίνακα, για λόγους επαλήθευσης περισσότερο.

Για όσους κάνουν το 2ο project

Αρκεί να υπολογίσουμε μόνο το permutation, ή πρέπει να βγάζουμε σαν output και τον νέο πίνακα με το μικρότερο πλέον bandwidth (άρα να φτιάχνουμε τον γράφο και στο τέλος να υπολογίζουμε και το adjacency matrix του);


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 01, 2020, 20:21:32 pm
2o Project (RCM)

1. Προφανώς δεν υπάρχει πάντα μία λύση καθώς η ποιότητα του αποτελέσματος επηρεάζεται κάθε φορά από επιλογές των nodes (π.χ. όταν πολλά nodes έχουν το ίδιο degree). Ωστόσο παρατηρώ πως για μεγάλους πίνακες, το νέο bandwidth που προκύπτει δεν είναι και πολύ ικανοποιητικό, οπότε εκεί νομίζω πως αν εφαρμόσω πολλές φορές τον αλγόριθμο τείνει πιο πολύ προς τη διαγώνιο. Είναι λογικό αυτό; Ή πρέπει να περιμένουμε με το ένα iteration να έχουμε σχετικά καλό αποτέλεσμα;

EDIT: Τελικά με τα παραπάνω iterations μάλλον δεν υπάρχει επιπλέον βελτίωση του bandwidth.

EDIT 2: Έβαζα καταλάθος density 10% αντί για 1%  ^crap^


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 03, 2020, 13:42:25 pm
Εχει ασχοληθεί κάποιος με Sparse Graph Matrix Reordering? Αν ναι, κάνει ανάγνωση τους πίνακες από συμπιεσμένη μορφή? Γιατί ο όγκος των πινάκων σε πλήρη μορφή από παραδείγματα που βρήκα είναι τεράστιος.

+1


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: superdonut on September 03, 2020, 16:37:26 pm
Ναι το λογικο ειναι να τα διαβαζεις απο συμπιεσμενη μορφη γιατι αλλιως γινονται εξωφρενικα μεγαλα τα νουμερα :P . Αλλωστε και για αυτο τον λογο αποθηκευονται συμπιεσμενα. Υπαρχουν βιβλιοθηκες ετοιμες που διαβαζουν το συμπιεσμενο αρχειο και το κανουν πινακες στην c για να μπορεσεις να τον  επεξεργαστεις.

+1


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 03, 2020, 19:31:52 pm
Ναι το λογικο ειναι να τα διαβαζεις απο συμπιεσμενη μορφη γιατι αλλιως γινονται εξωφρενικα μεγαλα τα νουμερα :P . Αλλωστε και για αυτο τον λογο αποθηκευονται συμπιεσμενα. Υπαρχουν βιβλιοθηκες ετοιμες που διαβαζουν το συμπιεσμενο αρχειο και το κανουν πινακες στην c για να μπορεσεις να τον  επεξεργαστεις.


Ωστόσο το ίδιο πρόβλημα έχω και σε ματλαμπ. Ακόμα και αν το κάνω σε c, θέλω εν τέλει να δω και το αποτέλεσμα σε plot, για να δω οτι είναι ικανοποιητικό. Ξέρεις μήπως ποια είναι η καλύτερη δυνατή μορφή αρχείου ώστε να διαβάζεις πoλύ μεγάλους πίνακες σε matlab?

Μέχρι στιγμής έχω καταφέρει να διαβάζω από csv και να το απεικονίζω, αλλά για size>10.000 κρασάρει.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: kalopana on September 03, 2020, 20:44:17 pm
Για την 1η εκδοχη της εργασιας, ξεκινησα να φτιαξω εναν απλο kernel που να υπολογιζει παραλληλα την αποσταση του καθε σημειου απο το τελευταιο σημειο για εναν δεδομενο πινακα. Ακομα και για 8.000.000 στοιχεια με 8 διαστασεις, ο σειριακος υπολογισμος των αποστασεων βγαινει 3 φορες πιο γρηγορος ( με -Ο3 flag). Εσεις δοκιμασατε κατι αντιστοιχο; Το θεωρειτε λογικο;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: dim2712 on September 04, 2020, 04:18:54 am
Δες ενδεχομένως τα accesses στη global memory που έχεις τον πινακα με τα σημεία. Φρόντισε να είναι coalesced γιατί αυτό μπορεί να σε καθυστερήσει πολύ.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: kalopana on September 04, 2020, 15:38:45 pm
Αυτό που με εκνευρίζει πιο πολυ απόλα, είναι ότι προσπαθώ να κάνω τον kernel πιο γρήγορο με διάφορες τεχνικές όπως  coalesced memory accesses, χρήση shared memory και δημιουργία πολλαπλών streams, και όλα βγαίνουν πιο αργά από τον ήδη αργό kernel σε σχέση με τον σειριακό υπολογισμό των αποστάσεων.

Υπάρχει κάποιος που πάνω στους πειραματισμούς του να έχει δοκιμάσει τον ίδιο απλό kernel και να δίνει αποτέλεσμα γρηγορότερα από τον σειριακό υπολογισμό αποστάσεων;

Να ξέρω αν χωράει να το ψάξω κι άλλο ή αν δεν επιτυγχάνεται βελτίωση στο συγκεκριμένο κομμάτι του προβλήματος και πρέπει να το προσεγγίσω αλλιώς.

EDIT*** Τελικά η coalesced memory access δίνει καλύτερο αποτέλεσμα για διαστάσεις σημείου περισσότερες από 8. Πάλι όμως πιο αργό από σειριακό....!


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: dim2712 on September 04, 2020, 16:24:05 pm
Κάνεις invoke αρκετα blocks και threads ώστε να αξιοποιήσεις πλήρως τη gpu; Επίσης στα datasets που λέει να χρησιμοποιήσουμε οι διαστάσεις είναι αρκετά μεγάλες όπως 79-80 και λιγότερα σημεία στην τάξη των εκατοντάδων χιλιάδων, οπότε για τέτοια νούμερα έχουν νόημα οι δοκιμές θεωρώ.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: alextsigilis on September 21, 2020, 01:57:19 am
Ξέρει κανείς τι παίζει με τους βαθμούς;
Οι βαθμοί του Φλεβάρη δεν έπρεπε να είχαν βγεί;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Judas Priest saved me on September 21, 2020, 15:15:52 pm
Ξέρει κανείς τι παίζει με τους βαθμούς;
Οι βαθμοί του Φλεβάρη δεν έπρεπε να είχαν βγεί;

Οι βαθμοί του φλεβάρη δεν είναι οι βαθμοί στα [Εργασία τάδε] Υποβολή/Αξιολόγηση  ?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 22, 2020, 14:46:10 pm
Οι βαθμοί του φλεβάρη δεν είναι οι βαθμοί στα [Εργασία τάδε] Υποβολή/Αξιολόγηση  ?

Γι αυτήν τη βαθμολογία είχε δώσει αυτήν την ανακοίνωση:

"Θα ανοίξουν εντός της ημέρας οι αξιολογήσεις των συμφοιτητών σας για τις εργασίες. Ο βαθμός αυτός ΔΕΝ είναι ο τελικός βαθμός των εργασιών. Η βαθμολογία των διδασκόντων θα ακολουθήσει, η οποία θα είναι και η τελική."

Νομίζω πως από αυτά που βλέπουμε, ο "Βαθμός για την υποβολή" είναι το πώς μας βαθμολόγησαν οι συμφοιτητές, και ο "Βαθμός για την αξιολόγηση" το πώς μας βαθμολόγησε ο πιτσιάνης για το πώς αξιολογήσαμε τους συμφοιτητές :P


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Judas Priest saved me on September 22, 2020, 15:18:00 pm
Νομίζω πως από αυτά που βλέπουμε, ο "Βαθμός για την υποβολή" είναι το πώς μας βαθμολόγησαν οι συμφοιτητές, και ο "Βαθμός για την αξιολόγηση" το πώς μας βαθμολόγησε ο πιτσιάνης για το πώς αξιολογήσαμε τους συμφοιτητές :P

Μπέρδεμα. Αν ισχύει αυτό που λες, ο βαθμός μας επηρεάζεται κατά 80% απο τους συμφοιτητές μας και κατα 20% πόσο κοντά ήταν η βαθμολογία που δώσαμε, στην βαθμολογία που έδωσαν οι συμφοιτητές. Άρα οι διδάσκοντες δεν βαθμολόγησαν τίποτα. Άρα ποιά είναι η βαθμολογία των διδασκόντων που ακολούθησε?

Από οργάνωση αυτό το μάθημα ήταν όπως ναναι από την αρχή. Ακόμα και το ποιός είναι ο βαθμός μας δεν έχουμε εξακριβώσει.  Θέλω να πιστεύω πως οι τελικοί μας βαθμοί θα ανακοινωθούν σε pdf όπως το "Βαθμοί Σεπτεμβρίου 2019" στο elearning, γιατί οι συμφοιτητές μας με χαντάκωσαν χωρίς λόγο...


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 22, 2020, 17:33:24 pm
Μπέρδεμα. Αν ισχύει αυτό που λες, ο βαθμός μας επηρεάζεται κατά 80% απο τους συμφοιτητές μας και κατα 20% πόσο κοντά ήταν η βαθμολογία που δώσαμε, στην βαθμολογία που έδωσαν οι συμφοιτητές. Άρα οι διδάσκοντες δεν βαθμολόγησαν τίποτα. Άρα ποιά είναι η βαθμολογία των διδασκόντων που ακολούθησε?

Από οργάνωση αυτό το μάθημα ήταν όπως ναναι από την αρχή. Ακόμα και το ποιός είναι ο βαθμός μας δεν έχουμε εξακριβώσει.  Θέλω να πιστεύω πως οι τελικοί μας βαθμοί θα ανακοινωθούν σε pdf όπως το "Βαθμοί Σεπτεμβρίου 2019" στο elearning, γιατί οι συμφοιτητές μας με χαντάκωσαν χωρίς λόγο...

Αυτό που φαντάζομαι ειναι κατι του στυλ: 80% η βαθμολόγηση τους και από το υπόλοιπο 20 που μένει, χωρίζεται στα 80 και 20 που είπες.


sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy) 


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: Judas Priest saved me on September 22, 2020, 18:39:29 pm
Αυτό που φαντάζομαι ειναι κατι του στυλ: 80% η βαθμολόγηση τους και από το υπόλοιπο 20 που μένει, χωρίζεται στα 80 και 20 που είπες.


sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy) 

Και γω αυτό είχα καταλάβει, αλλά αυτοί οι βαθμοί στο elearning που λένε "Βαθμός για την υποβολή" και είναι στα 80 είναι ο μέσος όρος τον βαθμών που μας έβαλαν οι συμφοιτητές μας. Ή δεν έχουν βάλει ακόμα δικό τους βαθμό ή δεν θα βάλουν.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: kalopana on September 29, 2020, 12:49:15 pm
Παιδιά προσωπικά δεν έχω προλάβει ακόμα να ολοκληρώσω την εργασία και έστειλα e-mail  για παράταση. Αν συμπάσχετε ή κατανοήτε την κατάσταση, στείλτε κι εσείς για να σιγουρέψουμε ότι θα μας δωθεί.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 4 - 2019/20
Post by: mano_lee on September 30, 2020, 15:31:18 pm
Παράταση έως 3 Οκτώβρη 9:00 π.μ..