Title: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: Krono on October 31, 2008, 21:27:00 pm Είπα να ξεκινήσω την κουβέντα για την εργασία μιας και η προθεσμία είναι μέχρι τη Δευτέρα.
Το παιχνίδι δεν είναι δύσκολο αλλά η παραλληλοποίηση δε φαίνεται να λειτουργεί καλά τουλάχιστον σε εμάς. Το κυριότερο πρόβλημα είναι ότι το Game of Life δεν είναι πλήρως παραλληλοποιήσιμο και πρέπει όλα τα threads να τελειώνουν τις εργασίες τους και μετά να ξακινάει η επόμενη εργασία. Έχει βρει κάποιος αποδοτικό τρόπο συγχρονισμού των threads εκτός του προφανή να καταστρέφονται και να δημιουργούνται νέα threads. Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: stratis on November 02, 2008, 19:54:04 pm Εγώ απλά διαχωρίζω τα τμήματα του πίνακα που μπορεί να αλλάξει κάθε thread, έτσι ώστε να μην υπάρχουν race conditions.
Παρόλα αυτά, ότι και να έχω δοκιμάσει μέχρι τώρα το πρόγραμμα εκτελείται πιο γρήγορα με ένα thread από ότι με δύο threads, και μάλιστα όσο πιο πολλά threads χρησιμοποιώ, τόσο αυξάνεται ο χρόνος εκτέλεσης. :( Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: Krono on November 03, 2008, 00:02:26 am Εγώ απλά διαχωρίζω τα τμήματα του πίνακα που μπορεί να αλλάξει κάθε thread, έτσι ώστε να μην υπάρχουν race conditions. Παρόλα αυτά, ότι και να έχω δοκιμάσει μέχρι τώρα το πρόγραμμα εκτελείται πιο γρήγορα με ένα thread από ότι με δύο threads, και μάλιστα όσο πιο πολλά threads χρησιμοποιώ, τόσο αυξάνεται ο χρόνος εκτέλεσης. :( Πλάκα κάνεις!!! Αυτό με ανακουφίζει! Εμείς το κάναμε με mutex να παίρνει κάθε thread ένα και μοναδικό κελί του πίνακα για να επεξεργαστεί και ό,τι κι αν δοκιμάσαμε το πρόγραμμα βγάζει σωστό αποτέλεσμα αλλά εκτελείται πιο γρήγορα με ένα thread. Και με πολλά threads κάνει πάρα πολύ ώρα. Σκεφτόμασταν μήπως έχουμε κάνει λάθος στη χρήση των mutex και λέγαμε να το κάνουμε όπως λες κι εσύ με τον πίνακα να χωρίζεται σε κομμάτια και να παίρνει κάθε thread ένα τμήμα του. Αλλά αφού έχεις κι εσύ πρόβλημα με τον άλλον τρόπο, δεν εξηγείται αλλιώς κάποιο πρόβλημα πρεπει να υπάρχει με τα pthreads. Προσωπικά έχω φτάσει σε κατάσταση εκτάκτου ανάγκης με αυτήν την εργασία! Δε μου βγαίνει με τίποτα! Θα του στείλω mail αν προλάβω αργά απόψε το βράδυ. Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: stratis on November 03, 2008, 01:27:42 am Πλάκα κάνεις!!! Αυτό με ανακουφίζει! Εμείς το κάναμε με mutex να παίρνει κάθε thread ένα και μοναδικό κελί του πίνακα για να επεξεργαστεί και ό,τι κι αν δοκιμάσαμε το πρόγραμμα βγάζει σωστό αποτέλεσμα αλλά εκτελείται πιο γρήγορα με ένα thread. Και με πολλά threads κάνει πάρα πολύ ώρα. Σκεφτόμασταν μήπως έχουμε κάνει λάθος στη χρήση των mutex και λέγαμε να το κάνουμε όπως λες κι εσύ με τον πίνακα να χωρίζεται σε κομμάτια και να παίρνει κάθε thread ένα τμήμα του. Αλλά αφού έχεις κι εσύ πρόβλημα με τον άλλον τρόπο, δεν εξηγείται αλλιώς κάποιο πρόβλημα πρεπει να υπάρχει με τα pthreads. Προσωπικά έχω φτάσει σε κατάσταση εκτάκτου ανάγκης με αυτήν την εργασία! Δε μου βγαίνει με τίποτα! Θα του στείλω mail αν προλάβω αργά απόψε το βράδυ. Ναι, μάλλον τα περισσότερα threads καθυστερούν το πρόγραμμα, εκτός αν κάνουμε κάτι λάθος... Κάτι που δεν έχω ξεκαθαρίσει ακόμα είναι γιατί όταν έχω μόνο ένα thread φαίνεται στο system monitor να τρέχουν και οι δύο επεξεργαστές. Αυτό με κάνει να σκέφτομαι ότι ίσως το λειτουργικό από μόνο του παραλληλοποιεί κάπως το πρόγραμμα και έτσι δεν φαίνεται η διαφορά ανάμεσα στο ένα και στα 2 threads. Αυτό νομίζω πως θα ξεκαθάριζε με έναν τετραπύρηνο. Κατά τ'άλλα κι εγώ δεν βγάζω άκρη... Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: Krono on November 03, 2008, 10:56:39 am Πλάκα κάνεις!!! Αυτό με ανακουφίζει! Εμείς το κάναμε με mutex να παίρνει κάθε thread ένα και μοναδικό κελί του πίνακα για να επεξεργαστεί και ό,τι κι αν δοκιμάσαμε το πρόγραμμα βγάζει σωστό αποτέλεσμα αλλά εκτελείται πιο γρήγορα με ένα thread. Και με πολλά threads κάνει πάρα πολύ ώρα. Σκεφτόμασταν μήπως έχουμε κάνει λάθος στη χρήση των mutex και λέγαμε να το κάνουμε όπως λες κι εσύ με τον πίνακα να χωρίζεται σε κομμάτια και να παίρνει κάθε thread ένα τμήμα του. Αλλά αφού έχεις κι εσύ πρόβλημα με τον άλλον τρόπο, δεν εξηγείται αλλιώς κάποιο πρόβλημα πρεπει να υπάρχει με τα pthreads. Προσωπικά έχω φτάσει σε κατάσταση εκτάκτου ανάγκης με αυτήν την εργασία! Δε μου βγαίνει με τίποτα! Θα του στείλω mail αν προλάβω αργά απόψε το βράδυ. Ναι, μάλλον τα περισσότερα threads καθυστερούν το πρόγραμμα, εκτός αν κάνουμε κάτι λάθος... Κάτι που δεν έχω ξεκαθαρίσει ακόμα είναι γιατί όταν έχω μόνο ένα thread φαίνεται στο system monitor να τρέχουν και οι δύο επεξεργαστές. Αυτό με κάνει να σκέφτομαι ότι ίσως το λειτουργικό από μόνο του παραλληλοποιεί κάπως το πρόγραμμα και έτσι δεν φαίνεται η διαφορά ανάμεσα στο ένα και στα 2 threads. Αυτό νομίζω πως θα ξεκαθάριζε με έναν τετραπύρηνο. Κατά τ'άλλα κι εγώ δεν βγάζω άκρη... Ναι αλλά και ο ίδιος ο καθηγητής μου είπε οτι δε βγάζει νόημα να εκτελείται πιο αργά το πρόγραμμα παράλληλα παρά σειριακά. Και όντως αν είναι έτσι τα πράγματα δεν έχει νόημα να μαθαίνουμε παράλληλο προγραμματισμό. Από την άλλη δε μας βγαίνει με τίποτα εδω και 5 μέρες! Φτιάξαμε αργά χθές το βράδυ και ένα πρόγραμμα που χωρίζει τον πίνακα και το αποτέλεσμα είναι το ίδιο. Όντως και στα windows και σε Linux όταν εκτελείται ένα πρόγραμμα ενός thread μοιράζεται στους πυρήνες. Το έχω επανειλημένα παρατηρήσει. Ωστόσο αν παρατηρήσεις με ένα thread το CPU load δεν υπερβαίνει το 25% συνολικά, με 2 το 50% και με 4 είναι 100% (4πύρηνος). Ωστόσο αυτό δε συμβαίνει με κανένα από τα 2 προγράμματα που φτιάξαμε. Το παρατήρησα όμως κάνοντας δοκιμές με multi-threaded απλά προγραμματάκια του τύπου: φτιάχνω n threads που απλά αυξάνουν διαφορετικούς counters (τοπικές μεταβλητές) κατα N/n (δηλαδή ανεξάρτητα του πλήθους των threads εκτελούνται πάντα N αυξήσεις). Επίσης μπορείς να δεις αυτό το αποτέλεσμα τρέχοντας το παράδειγμα nomutex.c . Δε βγάζω τελικά καμία άκρη. Το οτι αντιμετωπίζεις όμως το ίδιο πρόβλημα με καθυσηχάζει κάπως γιατί ενδέχεται να είναι κάτι που δεν εξαρτάται από εμάς. Title: deleted Post by: BOBoMASTORAS on November 03, 2008, 13:09:56 pm deleted
Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: BpIaLoLk on October 23, 2009, 21:22:08 pm Η πρωτη εργασια για φετος (2009) που αφορα τα pthreads εχει ανεβει στο υλικο μαθηματος στο e-thmmy με προθεσμια τη Παρασκευη 13/11.
Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: road_runner on October 24, 2009, 12:09:43 pm Εχει κανείς πρόβλημα με το κατέβασμα του cygwin ή μόνο σε μένα κολλάει στο 99%??Εκτός αν χρειάζεται αιώνες για να κατέβει!
Title: Re: [Παράλληλα και Κατανεμημένα] Εργασία 1 Post by: ^^DaRk_HunTeR on October 24, 2009, 21:29:04 pm Πριν δωσει τις οδηγιες... και επειδη δεν ειχα διαλεξει το μιρορ του Μετσοβειου κολλουσε στο 15% στο 23% κ.α απο το ntua κατεβηκε κατευ8ειαν...
Title: deleted Post by: BOBoMASTORAS on October 25, 2009, 02:21:43 am deleted
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: road_runner on October 25, 2009, 17:24:49 pm Το θεμα μου είναι οτι κολλάει ΠΑΝΤΑ στο 99% ! Το μόνο που κάνουμε είναι να επιλέξουμε το gcc-core, gcc-g++ επιλέγοντας εκείνα τα 2 κουτάκια, σωστά; Μήπως κάνω κάτι λάθος; ...
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: road_runner on October 25, 2009, 17:31:49 pm Βασικά μου γράφει όταν φτάνει στο 99% No package /etc/postinstall/font-bh-dpi75.sh
Title: deleted Post by: BOBoMASTORAS on October 25, 2009, 22:09:54 pm deleted
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: edenaxas on November 04, 2009, 00:00:59 am στα data απο το kmeans που πρεπει να τρεξουμε εχει bug...
πριν το τρεξετε ψαξτε στο notepad για τη φραση tcp θα σας βγαλει ενα bug που μεσα στους αριθμους εχει χωμενα τα tcp http SF Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: ^^DaRk_HunTeR on November 04, 2009, 00:44:05 am Κατα αρχας βαριεμαι να ανοιξω ξανα τα 60ΜΒ....
οπως και να χει ομως τρεχει κανονικοτατα το προγραμμα οποτε (μαλλον) δεν παιζει και μεγαλο ρολο αυτο που λες,αν υπαρχει... PS: εχει δοκιμασει κανεις παραλληλα με το Cygwin κανα σοβαρο debugger?... γιατι μας εχουν φαει τα printf μην μου πειτε gdb και command line...θελω visual πραγματα Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: edenaxas on November 04, 2009, 03:19:32 am Κατα αρχας βαριεμαι να ανοιξω ξανα τα 60ΜΒ.... το tcpmplahmplah υπαρχει στα αρχειο οποτε και να τρεχει κανονικα το προγραμμα σου εχεις δυο δυνατοτητες α) να εχεις κανει λαθος στο προγραμμα β)να βγαζει λαθος αποτελεσμα το προγραμμα σουοπως και να χει ομως τρεχει κανονικοτατα το προγραμμα οποτε (μαλλον) δεν παιζει και μεγαλο ρολο αυτο που λες,αν υπαρχει... PS: εχει δοκιμασει κανεις παραλληλα με το Cygwin κανα σοβαρο debugger?... γιατι μας εχουν φαει τα printf μην μου πειτε gdb και command line...θελω visual πραγματα σε καθε περιπτωση, οποιου του δημιουργει προβλημα το στρινγκ αυτο, ας το διαγραψει ;) Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: ^^DaRk_HunTeR on November 04, 2009, 15:22:41 pm ρε ψηλε το σειριακο λεμε τρεχει κανονικοτατα.... ξεκολλα δεν παιζει ρολο
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: edenaxas on November 04, 2009, 15:33:20 pm ρε ψηλε το σειριακο λεμε τρεχει κανονικοτατα.... ξεκολλα δεν παιζει ρολο ok δεν διαφωνω οτι δεν του δινεις σημασια...Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: stratis on November 04, 2009, 16:31:28 pm Το πρόγραμμα που μας έδωσε ο Πιτσιάνης όντως τρέχει κανονικά.
Code: for (j=0; j<numAttributes; j++) { Με τις παραπάνω γραμμές το πρόγραμμα διαβάζει τους αριθμούς από τα αρχεία. Απ'ότι φαίνεται η atof όταν βρίσκει κάτι που δεν είναι αριθμός βγάζει 0 ως έξοδο. Μάλιστα αν θες δοκίμασε να τρέξεις και το παρακάτω: Code: mynum=atof("http"); και δώσε ότι όρισμα θες στην atof. To αποτέλεσμα όταν έχεις μόνο κείμενο είναι 0. Πάντως καλά έκανες και το είπες γιατί σίγουρα είναι λάθος και αν κάποιος χρησιμοποιούσε κάποια άλλη συνάρτηση μπορεί να είχε πρόβλημα... :) Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: edenaxas on November 04, 2009, 16:45:22 pm Κατα αρχας βαριεμαι να ανοιξω ξανα τα 60ΜΒ.... το tcpmplahmplah υπαρχει στα αρχειο οποτε και να τρεχει κανονικα το προγραμμα σου εχεις δυο δυνατοτητες α) να εχεις κανει λαθος στο προγραμμα β)να βγαζει λαθος αποτελεσμα το προγραμμα σουσε καθε περιπτωση, οποιου του δημιουργει προβλημα το στρινγκ αυτο, ας το διαγραψει ;)οπως και να χει ομως τρεχει κανονικοτατα το προγραμμα οποτε (μαλλον) δεν παιζει και μεγαλο ρολο αυτο που λες,αν υπαρχει... PS: εχει δοκιμασει κανεις παραλληλα με το Cygwin κανα σοβαρο debugger?... γιατι μας εχουν φαει τα printf μην μου πειτε gdb και command line...θελω visual πραγματα τελος παντων! thnx strati που το τσεκαρες και εσυ! οποιος ακομα δεν χρησιμοποιησει το seed του πιτσιανη, θα το προσεξει.. Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: mysterious on November 07, 2009, 20:22:01 pm Πως δίνουμε σαν είσοδο το αρχείο με τα δεδομένα στο σειριακό πρόγραμμα?
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: Social_waste on November 07, 2009, 20:30:08 pm κανονικα.
(πχ ./a.out -i 51200.txt) Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: mysterious on November 07, 2009, 20:41:31 pm χμμμ..βασικά δε μου κάνει καν compile. Λέει "undefined reference to '_cluster' "
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: metafysico on November 08, 2009, 18:15:12 pm Το ίδιο πρόβλημα έχω και γω. Δεν μπορώ να κάνω compile τα αρχεία του καθηγητή και εμφανίζει το ίδιο error.. Any help?
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: ^^DaRk_HunTeR on November 08, 2009, 19:16:30 pm Δωστε μας καμια εικονα για το τι εντολες γραφεται και τι βγαζει το terminal
Για να κανουμε compile βαζουμε αυτο στο Cygwin η στο native (η αν υπαρχει η εντολη make) gcc -O3 example.c cluster.c getopt.c kmeans_clustering.c -o kmeans και για run ./kmeans -i onoma_arxeiou.txt (ολα αυτα αφου τα εχουμε βαλει στο φακελο home/owner του Cygwin) Υπο φυσιολογικες συν8ηκες στο κομπαιλ θα βγαζει δυο τρια γοουρνινγκς μονο Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: metafysico on November 08, 2009, 19:41:10 pm ΟΚ thanx.. ήσουν κατατοπιστικότατος...
Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: ^^DaRk_HunTeR on November 11, 2009, 23:52:02 pm Τσεκαρετε το μειλ με το οποιο ειστε γραμμενοι στο eTHMMY...
ο κ.Πιτσιανης μας εστειλε οδηγιες για προσβαση στο Quad Core συστημα Diades, το οποιο μπορουμε να χρησιμοποιησουμε για να τρεξουμε ολες τις εργασιες μας στο μαθημα... Οποιος καταφερει να το τρεξει ας πει... Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: ^^DaRk_HunTeR on November 12, 2009, 04:21:38 am Τελικα καταφερα να τρεξω το προγραμμα μου στον Diades στα windows
με τη βοηθεια του PuTTY και του Cygwin... Απο οτι διαπιστωσα απο τους χρονους που μου εβγαλε ειναι Quad Core με λειτουργια HyperThreading γιατι ο χρονος που μου βγαζε με 4 threads ηταν περιπου διπλασιος απο αυτον με 8 ... και με λιγο ψαξιμο βρηκα και την επιβεβαιωση των 8 CPU... https://mug7.ee.auth.gr/ganglia/?c=diades Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 1 Post by: akenatwn on November 13, 2009, 03:10:37 am Μόλις κατάφερα να λύσω ένα πρόβλημα, που με ταλαιπώρησε για πάρα πολλές ώρες και είπα να αναφέρω την λύση σε περίπτωση που έτυχε και σε κάποιον άλλο.
Το πρόβλημα ήταν ότι όταν πήγα να προσθέσω μια ακόμα επιλογή στο example.c για την ανάλυση των ορισμάτων της main (χρησιμοποιώντας τον έτοιμο κώδικα που μας δίνει), ώστε το πρόγραμμα να μπορεί να δέχεται σαν είσοδο το αριθμό των threads που θα δημιουργηθούν, μου χτυπούσε συνεχώς error σε κάποιο από τα ορίσματα, όχι πάντα το ίδιο. Τελικά από σκέτη έμπνευση βρήκα ότι το τρίτο όρισμα στην getopt που περιέχει την λίστα με τα γράμματα πρέπει να έχει και στο τέλος του ":" (μετά και το τελευταίο γράμμα), εκτός αν η τελευταία επιλογή είναι το b. |