THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Παράλληλα και Διανεμημένα Συστήματα => Topic started by: SportBillyPap on January 28, 2016, 23:08:35 pm



Title: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: SportBillyPap on January 28, 2016, 23:08:35 pm
4η Εργασία 2015-2016
Η εργασια εχει ανεβει στα Περιεχομενα του μαθηματος
Deadline 28/2


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Ragnar Lothbrok on January 30, 2016, 13:37:34 pm
αυτη δεν ειναι που μπορουμε να την παραδωσουμε μεχρι σεπτεμβρη;


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Dealan on January 30, 2016, 13:51:53 pm
Ναι, αυτό είναι για όσους θέλουν να πάρουν βαθμό τώρα.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nikos1 on February 27, 2016, 22:39:03 pm
Αν εχει ασχοληθει κανεις με την 4 εργασια 1 κομματι ξερει πως μπορουμε να κανουμε compile cuda και mpi μαζι??


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Andromedas on February 27, 2016, 23:04:29 pm
Αν εχει ασχοληθει κανεις με την 4 εργασια 1 κομματι ξερει πως μπορουμε να κανουμε compile cuda και mpi μαζι??
Κοίταξε δεν το έχω ψάξει το συγκεκριμένο που λες ... Αλλά δυο wrap για τον gcc δεν μου φαίνεται δυνατό... (wrap είναι το mpcc ή nvcc). Ωστόσο επειδή διάβαζα για make file εκτιμώ ότι μπορεί να δουλέψει αλλιώς δες για linux λύση με μια system call  για να εκτελεί cuda programm σε κάθε process /terminal. Μια άλλη δυνατότητα είναι να πας να δεις πως κάνει compile ο nvcc. Tο τσέκαρα λίγο το κομμάτι που αλλάζει το <<>> (c extension) σε PTX όποτε να δεις πως μπορεί να γίνει χωρίς τον wrapper. Ελπίζω να έδωσα μερικά hint's. Αν βρεις λύση post καθώς με ενδιαφέρει.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: et3rn1ty on February 28, 2016, 13:02:02 pm
Αν εχει ασχοληθει κανεις με την 4 εργασια 1 κομματι ξερει πως μπορουμε να κανουμε compile cuda και mpi μαζι??

Σαν προσθήκη σε όσα είπε ο Ανδρομέδας, δοκίμασε αν γίνεται να κάνεις compile σε object file το cuda αρχείο σου, και να κάνεις απλά link στο mpcc το object. Θα χρειαστείς φυσικά τα function declarations του cuda kernel σε header file.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nikos1 on February 28, 2016, 14:05:37 pm
Αν εχει ασχοληθει κανεις με την 4 εργασια 1 κομματι ξερει πως μπορουμε να κανουμε compile cuda και mpi μαζι??

Σαν προσθήκη σε όσα είπε ο Ανδρομέδας, δοκίμασε αν γίνεται να κάνεις compile σε object file το cuda αρχείο σου, και να κάνεις απλά link στο mpcc το object. Θα χρειαστείς φυσικά τα function declarations του cuda kernel σε header file.

Πανω σε αυτο δουλευω... σαν να υπαρχει καποια προοδος


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nikos1 on February 29, 2016, 13:53:35 pm
ξερει κανεις αν υπαρχει καποιος τροπος να τρεξουμε mpi-cuda στο hellasgrid?

Επισης με αυτο τον τροπο
Αν εχει ασχοληθει κανεις με την 4 εργασια 1 κομματι ξερει πως μπορουμε να κανουμε compile cuda και mpi μαζι??

Σαν προσθήκη σε όσα είπε ο Ανδρομέδας, δοκίμασε αν γίνεται να κάνεις compile σε object file το cuda αρχείο σου, και να κάνεις απλά link στο mpcc το object. Θα χρειαστείς φυσικά τα function declarations του cuda kernel σε header file.
τρεχει τζαμι στον διαδη


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Napoleon on February 29, 2016, 19:09:46 pm
Τι φάση? Πού ανεβάζουμε την εργασία?


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: censored on February 29, 2016, 19:53:46 pm
Στο ιντερνέτ?


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Napoleon on February 29, 2016, 20:10:17 pm
τι είναι το ιντερνέτ? Αυτό με τους ιστούς και τις αράχνες?



Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Nerevar on February 29, 2016, 20:23:48 pm
τι είναι το ιντερνέτ? Αυτό με τους ιστούς και τις αράχνες?

https://www.youtube.com/watch?v=Vywf48Dhyns


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Xbaremenos on March 01, 2016, 13:30:35 pm
Στο θέμα μας. Όταν λεει να είναι ο πίνακας αποθηκευμένος συνεχόμενα κατά γραμμές/στήλες, εννοεί να τον αποθηκεύσουμε σαν μονοδιάστατο έτσι ?


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: raf18 on July 16, 2016, 21:24:48 pm
Παιδιά μια ερώτηση. Για compile cuda-mpi κάνω 2 compile τους 2 κώδικες σε object (1 cuda 1 mpi) και μετά ένα τελικό από mpicc για να βγει ένα εκτελέσιμο.
Τι άλλο πρέπει να κάνω μπορεί να μου πει κάποιος αναλυτικά για να το τρέξω στο διάδη από cygwin??
Μόνο με αυτά τα 3 βήματα δεν δουλεύει.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: greekoo on July 18, 2016, 15:47:47 pm
Με ποιο τρόπο θα χωρίσουμε τον πίνακα σε blocks για να στείλουμε σε κάθε mpi process?

Εννοώ, πώς όπως και να τον χωρίσουμε δεν θα επηρρεάσει το αποτέλεσμα;


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: greekoo on July 19, 2016, 21:14:32 pm

Επισης με αυτο τον τροπο
Σαν προσθήκη σε όσα είπε ο Ανδρομέδας, δοκίμασε αν γίνεται να κάνεις compile σε object file το cuda αρχείο σου, και να κάνεις απλά link στο mpcc το object. Θα χρειαστείς φυσικά τα function declarations του cuda kernel σε header file.

 τρεχει τζαμι στον διαδη

Εμένα δεν τρέχει φίλε :P

Αν κατάλαβα καλά ουσιαστικά είναι σαν τις οδηγίες εδώ:
https://www.ccv.brown.edu/doc/mixing-mpi-and-cuda.html

Aλλά παρόλαυτά στο τελευταίο βήμα δεν μου βρίσκει το lcudart για να κάνω το linking!!


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: weiss on July 19, 2016, 22:05:57 pm
Νομίζω σκέτο δε τρέχει. Δοκίμασε -lcudart -L/usr/local/cuda/lib64


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nikos1 on July 20, 2016, 09:49:27 am
Αναλυτικα οι οδηγιες στο συννημενο για MPI-CUDA


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: greekoo on July 20, 2016, 10:40:15 am
Αναλυτικα οι οδηγιες στο συννημενο για MPI-CUDA

Τώρα μάλιστα φίλε να σαι καλά  ^victory^

Είδα σε ένα ποστ του Πιτσιάνη στο ethmmy ότι έχουν μηχάνημα με 4 GPUS. Εννοεί τον διάδη έτσι; 

Δηλαδή αν κάνω mpirun στον διάδη με 4 nodes/tasks , θα ενεργοποιηθούν οι 4 gpus (μια σε κάθε Node) άραγε;



Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nikos1 on July 20, 2016, 10:42:46 am
Τώρα μάλιστα φίλε να σαι καλά  ^victory^

Είδα σε ένα ποστ του Πιτσιάνη στο ethmmy ότι έχουν μηχάνημα με 4 GPUS. Εννοεί τον διάδη έτσι; 

Δηλαδή αν κάνω mpirun στον διάδη με 4 nodes/tasks , θα ενεργοποιηθούν οι 4 gpus (μια σε κάθε Node) άραγε;



Οχι πρεπει να ειναι αλλο μηχανημα... πρεπει να επικοινωνησουμε μαζι του για να μας δωσει κωδικο


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Andromedas on July 20, 2016, 13:43:57 pm
Τώρα μάλιστα φίλε να σαι καλά  ^victory^

Είδα σε ένα ποστ του Πιτσιάνη στο ethmmy ότι έχουν μηχάνημα με 4 GPUS. Εννοεί τον διάδη έτσι; 

Δηλαδή αν κάνω mpirun στον διάδη με 4 nodes/tasks , θα ενεργοποιηθούν οι 4 gpus (μια σε κάθε Node) άραγε;
Μάλλον όχι. Με το mpi run θα έχεις 4 processes να τρέχουν και να δίνουν στο device (μια κάρτα γραφικών) που έχεις προσδιορίσει στον κώδικα της cuda. Αν δεν το έχεις κάνεις θα δώσει αυτόματα σε ένα  device αλλά δεν νομίζω ότι μπορεί το λειτουργικό να διακρίνει εάν είναι απασχολημένη η μια gpu να δίνει στην επόμενη από μόνο του εντελώς.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: greekoo on July 21, 2016, 16:29:33 pm
παιδιά όσο για το hellasgrid τσάμπα προσπαθούμε να τρέξουμε mpi+cuda.

έστειλα μαιλ να ρωτήσω αν γίνεται κ αυτό μ απάντησαν:

Quote
δυστυχώς δεν μπορεί να εξυπηρετηθεί το αίτημά σας από τους υφιστάμενους πόρους καθότι στην συστοιχία της Αφροδίτης που χρησιμοποιείτε δεν υπάρχει ο απαραίτητος εξοπλισμός από GPUs.

Στην Ιδρυματική συστοιχία που επίσης μπορείτε να χρησιμοποιήσετε υπάρχει μόνο μία GPU οπότε και πάλι δεν γίνεται να εξυπηρετηθεί το αίτημα παρά μόνο για την περίπτωση όπου ένα από τα τέσσερα mpi processes χρησιμοποιεί την GPU.

Θα διατηρήσουμε σε κάθε περίπτωση το αίτημά σας ώστε στο σχεδιασμό μας για την ανανέωση του εξοπλισμού να ληφθεί υπόψιν. Αν θα μπορούσατε από τη μεριά σας να μας κοινοποιήσετε μία επιστολή υπογεγραμμένη από μέλος ΔΕΠ του ΑΠΘ όπου να περιγράφεται εν συντομία το use case και να υπογραμμίζεται η ανάγκη ύπαρξης μίας απαραίτητης υποδομής GPU τότε αυτό θα μας διευκόλυνε στο να περάσουμε το αίτημα στον προγραμματισμό μας.



Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: TrueForce on August 14, 2016, 01:20:02 am
Quote
Θα διατηρήσουμε σε κάθε περίπτωση το αίτημά σας ώστε στο σχεδιασμό μας για την ανανέωση του εξοπλισμού να ληφθεί υπόψιν. Αν θα μπορούσατε από τη μεριά σας να μας κοινοποιήσετε μία επιστολή υπογεγραμμένη από μέλος ΔΕΠ του ΑΠΘ όπου να περιγράφεται εν συντομία το use case και να υπογραμμίζεται η ανάγκη ύπαρξης μίας απαραίτητης υποδομής GPU τότε αυτό θα μας διευκόλυνε στο να περάσουμε το αίτημα στον προγραμματισμό μας.
Αυτο γενικά σημαίνει πως δεν παίζει να προλάβετε εσείς μια τέτοια υποδομή, αλλά καλό θα ήταν να γίνει κάποια κίνηση σε περίπτωση που παίξει κάποια μελλοντική αλλαγή.

ΝΟΜΙΖΩ πως πέρσι και πρόπερσι που είχε την επιλογή για εργασία με Deep Learning είχε αναφερθεί πως έπρεπε να στείλεις mail αν πάρεις αυτό το θέμα ώστε να σου δοθεί πρόσβαση σε σερβερ με 4 GPU, φαντάζομαι ΟΧΙ στο hellasgrid. Δε θυμάμαι αν έχει κάτι τέτοιο ο διάδης, παίζει.... Με ένα email στον Πιτσιάνη νομίζω θα βρείτε τη φώτιση για το θέμα. Πέρσι που του είχα στείλει mail είχε απαντήσει ακόμα και τέτοια εποχή(λίγο πριν δεκαπεντάγουστο) οπότε μη μασάτε.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Λήσταρχος Γιαγκούλας on August 17, 2016, 14:54:26 pm
Kαλησπέρα , γνωρίζει κάποιος πως μπορούμε να κάνουμε submit-qsub χρησιμοποιώντας αντί για απλά arguments του του τύπου

export I2G_MPI_APPLICATION_ARGS= "χ υ ζ"

ένα αρχείο .par με παραμέτρους ;

κάτι σαν
export I2G_MPI_APPLICATION_ARGS= χχχχχχ.par


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nlogn on August 17, 2016, 15:15:08 pm
Kαλησπέρα , γνωρίζει κάποιος πως μπορούμε να κάνουμε submit-qsub χρησιμοποιώντας αντί για απλά arguments του του τύπου

export I2G_MPI_APPLICATION_ARGS= "χ υ ζ"

ένα αρχείο .par με παραμέτρους ;

κάτι σαν
export I2G_MPI_APPLICATION_ARGS= χχχχχχ.par

Μπορείς να μας δείξεις το αρχείο τύπου par που έχεις?


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nlogn on August 17, 2016, 21:59:26 pm
Αν το αρχείο σου είναι του τύπου:
A = 1
B = 2
G 123

τότε η εντολές με την ακοόλουθη σειρά:
Code:
temp=`cat my_par.par`
temp=`echo $temp | tr '\n' ' '`
export I2G_MPI_APPLICATION_ARGS=$temp

θα κάνουν μια
I2G_MPI_APPLICATION_ARGS='A = 1 B = 2 G 123'

Ελπίζω να σε βοήθησα


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Λήσταρχος Γιαγκούλας on August 18, 2016, 03:09:21 am
Αν το αρχείο σου είναι του τύπου:
A = 1
B = 2
G 123

τότε η εντολές με την ακοόλουθη σειρά:
Code:
temp=`cat my_par.par`
temp=`echo $temp | tr '\n' ' '`
export I2G_MPI_APPLICATION_ARGS=$temp

θα κάνουν μια
I2G_MPI_APPLICATION_ARGS='A = 1 B = 2 G 123'

Ελπίζω να σε βοήθησα

Σε ευχαριστώ πολύ φίλε! Να'σαι καλά!


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Λήσταρχος Γιαγκούλας on August 19, 2016, 17:53:40 pm
Καλησπερα, γνωρίζει κανείς αν στα linux της Βεργίνας μπορούμε να τρέξουμε  τοπικά mpi;


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: TrueForce on August 19, 2016, 18:25:12 pm
Αν θυμάμαι καλά, ναι, μπορείς.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: talkshowhost on August 23, 2016, 16:42:01 pm
Για τη δεύτερη επιλογή, εχετε καταφερει να  βελτιωθει σημαντικα ο χρονος σε σχεση με την 3η εργασια ?
Με μονη αλλαγη  τα threads να έχουν προσβαση σε συνεχομενες θεσεις μνημης  ,
π.χ  για ν=2^10 ,p=0.33 στο 2ο kernel
έχω στην 3η εργασια χρονο 0.22 s,  ενώ στην 4η 0.19 s, και γενικα η βελτίωση στο χρόνο είναι αυτης της ταξης.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: SportBillyPap on September 05, 2016, 17:38:18 pm
Για τη δεύτερη επιλογή, εχετε καταφερει να  βελτιωθει σημαντικα ο χρονος σε σχεση με την 3η εργασια ?
Με μονη αλλαγη  τα threads να έχουν προσβαση σε συνεχομενες θεσεις μνημης  ,
π.χ  για ν=2^10 ,p=0.33 στο 2ο kernel
έχω στην 3η εργασια χρονο 0.22 s,  ενώ στην 4η 0.19 s, και γενικα η βελτίωση στο χρόνο είναι αυτης της ταξης.
και εγω σχεδον το ιδιο..Οταν ρωτησα το φλωρο μου απαντησε "Βλεπεις διαφορα?Αν βλεπεις τοτε ειναι οκ,ακομα και ειναι τοσο μικρη" .Τωρα δε ξερω τι να σου πω, θα σου προτεινα να ρωτησεις και εσυ..


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: rspappas on September 05, 2016, 18:54:56 pm
"9 - υπηρξε διπλασιασμος του χρονου εκτελεσης αντι για βελτιωση"
"8 - περιεργη συμπεριφορα, λαθος αποτελεσματα"
"7 - ο κωδικας δεν κανει compile"

οποτε οχι μεγαλο αγχος, προτεινω :)


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: WatchDog on September 11, 2016, 01:22:35 am
Μπορεί κάποιος να μου πεί για την 1η επιλογή της εργασίας , αν θέλουμε να δημιουργήσουμε ένα header file
<header.h>

για να έχει την συνάρτηση cuda " void cudafunction(int n,in m)" .
Πώς ακριβώς το φτιάχνουμε?Χρειάζεται μέσα στο header να ορίσουμε κάποια macro?Γιατί όταν βάζω απλά αυτή τη γραμμή μου πετάει error , και κάτι no newline in file.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: vlad on September 11, 2016, 01:39:53 am
Μπορεί κάποιος να μου πεί για την 1η επιλογή της εργασίας , αν θέλουμε να δημιουργήσουμε ένα header file
<header.h>

για να έχει την συνάρτηση cuda " void cudafunction(int n,in m)" .
Πώς ακριβώς το φτιάχνουμε?Χρειάζεται μέσα στο header να ορίσουμε κάποια macro?Γιατί όταν βάζω απλά αυτή τη γραμμή μου πετάει error , και κάτι no newline in file.
Πατα enter μετα την τελευταια αγκυλη και κανε save


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: greekoo on September 11, 2016, 11:52:11 am
έχετε καταφέρει να τρεξετε mpi στο quatro?

δεν αναγνωρίζει καν την εντολή mpicc, παρόλο που έχει φορτωθεί το κατάλληλο module.


EDIT: Διορθώθηκε, θέλει αυτό: /usr/lib64/openmpi/1.4-gcc/bin/mpicc


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: greekoo on September 14, 2016, 20:03:57 pm
(soz for bump)

Η πρώτη εντολή του πυρήνα CUDA παίρνει γύρω στα 3.7 δευτερόλεπτα.

Κάθε πρώτη εντολή. Ακόμα και η dummy εντολή cudaFree(0);

Το έψαξα λίγο, και είδα πως αυτό όντως είναι ένα "bug" της CUDA, καθώς η πρώτη εντολή θα πρέπει να κάνei και άλλα initializations της GPU κλπ κλπ...

Αυτό που ίσως βοηθήσει είναι εαν προσδιορίσω απο πριν στο compilation ποια αρχιτεκτονική χρησιμοποιεί (και ίσως ποιο compute capability) η συγκεκριμένη κάρτα γραφικών που χρησιμοποιεί το quatro.ee.auth.gr

Μήπως ξέρει κανείς;


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: nikos1 on September 22, 2016, 16:55:25 pm
(soz for bump)

Η πρώτη εντολή του πυρήνα CUDA παίρνει γύρω στα 3.7 δευτερόλεπτα.

Κάθε πρώτη εντολή. Ακόμα και η dummy εντολή cudaFree(0);

Το έψαξα λίγο, και είδα πως αυτό όντως είναι ένα "bug" της CUDA, καθώς η πρώτη εντολή θα πρέπει να κάνei και άλλα initializations της GPU κλπ κλπ...

Αυτό που ίσως βοηθήσει είναι εαν προσδιορίσω απο πριν στο compilation ποια αρχιτεκτονική χρησιμοποιεί (και ίσως ποιο compute capability) η συγκεκριμένη κάρτα γραφικών που χρησιμοποιεί το quatro.ee.auth.gr

Μήπως ξέρει κανείς;

παρατηρω και στο δικο μου μια τετοια καθυστερηση... γνωριζει κανεις πως επιδιορθωνεται?


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Μεταλλαγμένη Πάπια on September 24, 2016, 19:39:52 pm
Σχετικά με την 2η εκδοση που θελει να το γραψουμε με coalesced access μνημης. Εγω οσο διαβαζω περισσοτερο για το τι ειναι αυτο, πχ οπως τα περιγραφουν εδω:

http://stackoverflow.com/questions/5041328/cuda-coalesced-memory
http://www.cc.gatech.edu/~hyesoon/spr10/lec_cuda5.pdf
https://devblogs.nvidia.com/parallelforall/how-access-global-memory-efficiently-cuda-c-kernels/

τοσο περισσοτερο καταλαβαινω οτι εγω εχω ηδη κανει αυτο το πραμα. Ειδικα οπως το περιγραφει στο 2ο λινκ σελ 15, μα το θεο εκανα το ιδιο πραμα οταν παρεδωσα την 3η εργασια, ορισα χωρο στην shared memory με ολοιδιο τροπο. Τι φαση, τι ακριβως να πω στο Πιτσιανη; Μονη εξαιρεση ειναι το πρωτο kernel που δε χρησιμοποιει shared memory, οκ εκει μπορω να το τσεκαρω να δω αν θα κανει διαφορα ο αναστροφος, αλλα γενικά δε βλέπω κατι που μπορω να κανω...


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: joal on September 24, 2016, 21:00:21 pm
Σχετικά με την 2η εκδοση που θελει να το γραψουμε με coalesced access μνημης. Εγω οσο διαβαζω περισσοτερο για το τι ειναι αυτο, πχ οπως τα περιγραφουν εδω:

http://stackoverflow.com/questions/5041328/cuda-coalesced-memory
http://www.cc.gatech.edu/~hyesoon/spr10/lec_cuda5.pdf
https://devblogs.nvidia.com/parallelforall/how-access-global-memory-efficiently-cuda-c-kernels/

τοσο περισσοτερο καταλαβαινω οτι εγω εχω ηδη κανει αυτο το πραμα. Ειδικα οπως το περιγραφει στο 2ο λινκ σελ 15, μα το θεο εκανα το ιδιο πραμα οταν παρεδωσα την 3η εργασια, ορισα χωρο στην shared memory με ολοιδιο τροπο. Τι φαση, τι ακριβως να πω στο Πιτσιανη; Μονη εξαιρεση ειναι το πρωτο kernel που δε χρησιμοποιει shared memory, οκ εκει μπορω να το τσεκαρω να δω αν θα κανει διαφορα ο αναστροφος, αλλα γενικά δε βλέπω κατι που μπορω να κανω...
+φωνω ρε φιλε, ΤΙ ΦΑΣΗ


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: lady_of_winter on September 27, 2016, 14:04:44 pm
Σχετικά με την 2η εκδοση που θελει να το γραψουμε με coalesced access μνημης. Εγω οσο διαβαζω περισσοτερο για το τι ειναι αυτο, πχ οπως τα περιγραφουν εδω:

http://stackoverflow.com/questions/5041328/cuda-coalesced-memory
http://www.cc.gatech.edu/~hyesoon/spr10/lec_cuda5.pdf
https://devblogs.nvidia.com/parallelforall/how-access-global-memory-efficiently-cuda-c-kernels/

τοσο περισσοτερο καταλαβαινω οτι εγω εχω ηδη κανει αυτο το πραμα. Ειδικα οπως το περιγραφει στο 2ο λινκ σελ 15, μα το θεο εκανα το ιδιο πραμα οταν παρεδωσα την 3η εργασια, ορισα χωρο στην shared memory με ολοιδιο τροπο. Τι φαση, τι ακριβως να πω στο Πιτσιανη; Μονη εξαιρεση ειναι το πρωτο kernel που δε χρησιμοποιει shared memory, οκ εκει μπορω να το τσεκαρω να δω αν θα κανει διαφορα ο αναστροφος, αλλα γενικά δε βλέπω κατι που μπορω να κανω...

utr


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: lady_of_winter on September 27, 2016, 14:57:30 pm
επισης κατι αλλο στη βεργινα οι υπολογιστες υποστηριζουν cuda??

επισης για την δευτερη επιλογη στην εργασια, τον αναστροφο πινακα τον δημιουργουμε στη cpu η στην gpu?

με την εννοια οτι δε ξερω ποιο θα ναι λιγοτερο χρονοβορο, εγω υποθετω οτι το να δημιουργεις το πινακα στην gpu, θελει λιγοτερο χρονο απο την μεταφορα του απο την cpu σε gpu, απλως θελω καμια γνωμη επιπλεον


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: joal on September 27, 2016, 15:50:51 pm
επισης κατι αλλο στη βεργινα οι υπολογιστες υποστηριζουν cuda??

επισης για την δευτερη επιλογη στην εργασια, τον αναστροφο πινακα τον δημιουργουμε στη cpu η στην gpu?

με την εννοια οτι δε ξερω ποιο θα ναι λιγοτερο χρονοβορο, εγω υποθετω οτι το να δημιουργεις το πινακα στην gpu, θελει λιγοτερο χρονο απο την μεταφορα του απο την cpu σε gpu, απλως θελω καμια γνωμη επιπλεον

Στη βεργινα οι υπολογιστες δουλευουν με onboard καρτες γραφικων, οποτε, ντου δε μαθ. Μπορεις ομως να συνδεθεις στο διαδη με ssh απο οπουδηποτε εχεις προσβαση στο διαδικτυο.

Οσο για τον πινακα, μαλλον τον φτιαχνεις στο κανονικο σου προγραμμα και το στελνεις στη gpu.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: lady_of_winter on September 27, 2016, 15:54:20 pm
Στη βεργινα οι υπολογιστες δουλευουν με onboard καρτες γραφικων, οποτε, ντου δε μαθ. Μπορεις ομως να συνδεθεις στο διαδη με ssh απο οπουδηποτε εχεις προσβαση στο διαδικτυο.

Οσο για τον πινακα, μαλλον τον φτιαχνεις στο κανονικο σου προγραμμα και το στελνεις στη gpu.

θενκς  :)

βασικα για τη βεργινα ρωτησα, για να γλυτωσω το διαδη, γιατι ωρες ωρες ειναι πολυ φορτωμενος και πριν λιγο ειχε πεσει κιολας


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: joal on September 27, 2016, 16:32:33 pm
Quote
βασικα για τη βεργινα ρωτησα, για να γλυτωσω το διαδη, γιατι ωρες ωρες ειναι πολυ φορτωμενος και πριν λιγο ειχε πεσει κιολας

Κατι τετοιο αν εισαι σε λινουξ σπιτι σου θα σε βολεψει νομιζω
https://www.udacity.com/wiki/cs344/llvm-ocelot-dev
 ;)

Ισως και hellasgrid, αλλα δεν ειμαι σιγουρος αν εχει gpu, στα specs δεν αναφερει κατι


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Dealan on September 27, 2016, 16:56:27 pm
Σχετικά με την 2η εκδοση που θελει να το γραψουμε με coalesced access μνημης. Εγω οσο διαβαζω περισσοτερο για το τι ειναι αυτο, πχ οπως τα περιγραφουν εδω:

http://stackoverflow.com/questions/5041328/cuda-coalesced-memory
http://www.cc.gatech.edu/~hyesoon/spr10/lec_cuda5.pdf
https://devblogs.nvidia.com/parallelforall/how-access-global-memory-efficiently-cuda-c-kernels/

τοσο περισσοτερο καταλαβαινω οτι εγω εχω ηδη κανει αυτο το πραμα. Ειδικα οπως το περιγραφει στο 2ο λινκ σελ 15, μα το θεο εκανα το ιδιο πραμα οταν παρεδωσα την 3η εργασια, ορισα χωρο στην shared memory με ολοιδιο τροπο. Τι φαση, τι ακριβως να πω στο Πιτσιανη; Μονη εξαιρεση ειναι το πρωτο kernel που δε χρησιμοποιει shared memory, οκ εκει μπορω να το τσεκαρω να δω αν θα κανει διαφορα ο αναστροφος, αλλα γενικά δε βλέπω κατι που μπορω να κανω...

Ακριβώς ίδια κατάσταση είμαι. Επίσης, στην εκφώνηση λέει να αποθηκεύουμε τον Α^Τ, όμως αυτό δεν χρειάζεται και τζάμπα θα έτρωγε χρόνο. Τι φάση; Το μόνο που μπορώ να σκευτώ είναι να υλοποιήσει κανείς μη-coalescenced εκδοχές του κώδικα και να τα συγκρίνει αλλά δεν έχει και πολύ νόημα.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: lady_of_winter on September 28, 2016, 15:13:57 pm
λοιπον εμεις στειλαμε κ μειλ στο φλωρο και μας απαντησε αυτο


Ο αλγόριθμος έχει δύο αναδρομές, μία ως προς τις γραμμές και μία ως προς τις στήλες:

for k = 1 : n
  for i = 1 : n % rows
    for j = 1 : n % columns
       if dist(i,j) > dist(i,k) + dist(k,j)
         dist(i,j) = dist(i,k) + dist(k,j);
       end
    end
  end
end
Αν ξεκινάς ένα thread για κάθε κελί του πίνακα (άρα διώχνεις και τις δύο αναδρομές), τότε λόγω
της αποθήκευσης των δεδομένων στην μνήμη θα έχεις μία ανάγνωση coalesced και μία όχι.

Αν ο πίνακάς σου είναι αποθηκευμένος κατά στήλες, τότε η ανάγνωση κατά i είναι σωστή, αλλά
όχι η κατά j. Θα χρειαστεί να διαβάζεις από διαφορετικό pointer όπου τα δεδομένα είναι αποθηκευμένα
κατά γραμμές.

http://cs.stackexchange.com/a/14829/58764

Πρέπει γειτονικά threads να διαβάζουν γειτονικές θέσεις μνήμης από όλους τους πίνακες.

δε ξερω αν βοηθαει καποιους εδω μεσα, αλλα εμεις ακομη δε βρηκαμε καποια λυση, δοκιμασαμε καποια πραγματα αλλα το μονο που καταφεραμε ηταν να αυξησουμε παρα πολυ το χρονο εκτελεσης

εχει κανεις να προτεινει κατι αλλο?


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: fcdimitr on September 30, 2016, 18:50:53 pm
Όσοι ανεβάσατε την εργασία τις τελευταίες μέρες, καλύτερα ανεβάστε την ξανά, γιατί το eTHMMY έκανε επαναφορά για την νέα χρονιά.


Title: Re: [Παράλληλα και Διανεμημένα Συστ.] Εργασια 4
Post by: Xbaremenos on October 05, 2016, 18:26:54 pm
Έχει κάταφέρει να έχει κανείς βελτίωση για όλα τα ζητούμενα n ?

Προσωπικά έχω μια ελάχιστη βελτίωση μέχρι n = 2^10, απο κει και πέρα για n = 2^12 χτυπάω κάτι 32 δεύτερα με τα καινούρια κερνελ  :D :D
Δοκίμασα να υπολογίζω τον ανάστροφο στον Host και στο Device αλλά μετρήσιμη διαφορά στους χρόνους δεν βλέπω.

Μέχρι τώρα αποτι κατάλαβα το προβληματικό μας στοιχείο ήταν το i,k οπότε οι μόνες αλλαγές που έκανα στον κώδικα είναι να παίρνω το συγκεκριμένο απο τον ανάστροφο (ως k,i προφανώς). χελπ ?