grigfor Δημοσ. 27 Ιανουαρίου 2010 Δημοσ. 27 Ιανουαρίου 2010 Καλησπέρααα!! Έχω αρκετές απορίες όσον αφορά μία εργασία που έχει να κάνει με την ΠΑΡΑΛΛΗΛΗ ΤΑΞΙΝΟΜΗΣΗ ΔΕΝΤΡΟΥ με C . Εχω κώδικα που υλοποιεί τον quicksort σε c και πρέπει να το παραλληλοποιήσω, αλλά η αληθεια είναι ότι δυσκολεύομαι αρκετά να τα βάλω σε μία σειρά και να τα καταλάβω. Δηλαδή ,τι θα στέλνω στις διεργασίες , κα .. Εδώ είναι κάποιεσ τοποθεσίες που μελετάω για να επιλύσω το πρόβλημα.. Οποιαδήποτε βοήθεια ,θα ήταν πολύ χρήσιμη .. Ευχαριστώ... http://www.codeproject.com/KB/threads/Parallel_Quicksort.aspx http://www.it.uom.gr/project/parallel/Probl/parall.htm
dop Δημοσ. 29 Ιανουαρίου 2010 Δημοσ. 29 Ιανουαρίου 2010 Ξεκίνα με το να καταλάβεις ποια κομμάτια του κώδικα μπορούν να τρέξουν παράλληλα. Βάλε τα σε συναρτήσεις μόνα τους και κοίτα πόσες κλήσεις από αυτές τις συναρτήσεις είναι ανεξάρτητες. Συνέχισε από εκεί...
godlike Δημοσ. 30 Ιανουαρίου 2010 Δημοσ. 30 Ιανουαρίου 2010 Το OpenMPI είναι κυρίως για συστήματα με ανεξάρτητη μνήμη ενώ το OpenMP αποκλειστικά για κοινή μνήμη. Και με τα 2 μπορείς να κάνεις περίπου το ίδιο πράγμα αλλά με διαφορετικό τρόπο. Το OpenMP είναι βέβαια λιγάκι πιο εύκολο νομίζω γ αυτό που θες
dop Δημοσ. 30 Ιανουαρίου 2010 Δημοσ. 30 Ιανουαρίου 2010 @godlike: Το OpenMPI είναι μια υλοποίηση του MPI. H διαφορά των δύο έγκειται στο ότι το MPI είναι SPMD τρόπος προγραμματισμού με explicit message passing. Το πρόγραμμά σου ξεκινάει SPMD και παραμένει για όλη τη διάρκεια της εκτέλεσης. Το OpenMP βασίζεται στο μοντέλο fork-join, δηλαδή ο κώδικάς σου είναι σειριακός μέχρι να συναντήσεις OpenMP εντολές. Μόλις γίνει το fork το πρόγραμμα είναι SPMD μέχρι να συναντήσεις το join. Υπάρχουν MPI υλοποιήσεις για shared-memory όπως υπάρχει και υλοποίηση OpenMP για distributed.
godlike Δημοσ. 30 Ιανουαρίου 2010 Δημοσ. 30 Ιανουαρίου 2010 @godlike: Το OpenMPI είναι μια υλοποίηση του MPI. H διαφορά των δύο έγκειται στο ότι το MPI είναι SPMD τρόπος προγραμματισμού με explicit message passing. Το πρόγραμμά σου ξεκινάει SPMD και παραμένει για όλη τη διάρκεια της εκτέλεσης. Το OpenMP βασίζεται στο μοντέλο fork-join, δηλαδή ο κώδικάς σου είναι σειριακός μέχρι να συναντήσεις OpenMP εντολές. Υπάρχουν MPI υλοποιήσεις για shared-memory όπως υπάρχει και υλοποίηση OpenMP για distributed. Βασικά για το OpenMPI το ήξερα αλλά για το ότι το OpenMP κάνει και για distributed ομολογώ ότι το αγνοούσα. Άλλωστε στην wikepedia γράφει: The OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming
dop Δημοσ. 30 Ιανουαρίου 2010 Δημοσ. 30 Ιανουαρίου 2010 Το Cluster OpenMP (http://software.intel.com/en-us/articles/cluster-openmp-for-intel-compilers/) είναι μία υλοποίηση του OpenMP γιαdistributed memory αρχιτεκτονικές. Αναφέρεται και στο άρθρο στη wikipedia. Εν πάση περιπτώση, ναι βολεύει για shared-memory αρχιτεκτονικές, αλλά είναι αρκετά γενικό για να τρέχει σε distributed memory.
tespa_2002 Δημοσ. 31 Ιανουαρίου 2010 Δημοσ. 31 Ιανουαρίου 2010 Το Cluster OpenMP (http://software.intel.com/en-us/articles/cluster-openmp-for-intel-compilers/) είναι μία υλοποίηση του OpenMP γιαdistributed memory αρχιτεκτονικές. Αναφέρεται και στο άρθρο στη wikipedia. Εν πάση περιπτώση, ναι βολεύει για shared-memory αρχιτεκτονικές, αλλά είναι αρκετά γενικό για να τρέχει σε shared memory. Τώρα δε θα το έλεγες και "τρέχει" σε distributed memory. Μουσουλάει ή σέρνεται θα ήταν πιο ακριβές
dop Δημοσ. 31 Ιανουαρίου 2010 Δημοσ. 31 Ιανουαρίου 2010 Εξαρτάται το πως είναι γραμμένο το πρόγραμμα. Αν δεν έχεις shared variables, τότε δεν υπάρχει λόγος να είναι πιο αργό από το MPI. Αλλά και πάλι, αν κάνεις emulation των shared variables σε MPI θα καταλήξεις στην ίδια αργή λειτουργία. Και εν πάση περιπτώση, όλοι συμφωνούν πως οι shared variables είναι κακές όταν τρέχεις παράλληλα προγράμματα
grigfor Δημοσ. 4 Φεβρουαρίου 2010 Μέλος Δημοσ. 4 Φεβρουαρίου 2010 δεν καταφερα να το υλοποιήσω... Σας ευχαριστώ όμως , για ολα αυτά που λέτε , δεν τα γνώριζα ομολογώ ..
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.