athanatos Δημοσ. 31 Αυγούστου 2004 Δημοσ. 31 Αυγούστου 2004 λοιπόν έχω μπροστά μου έναν αλγόριθμο sum ο οποίος είναι για εκτέλεση σε παράλληλα συστήματα. Η εκφώνηση λέει Είσοδος:Ένα διάνυσμα αριθμών A[1...n], n=2^k (2 στην k) αποθηκευμένο σε μία pram με p=2^m (2 στην m) επεξεργαστές (k και m είναι ακέραιοι αριθμοί) Έξοδος:Το άθροισμα των n αριθμών ,αποθηκευμένο στο A[1] (το i είναι ο αριθμός του εκάστοτε επεξεργαστή .Ο πρώτος cpu έχει i=1 kok) ο αλγόριθμος είναι begin 1.sum:=0 2.for h:=(i-1)n/p to in/p do begin global_read(A[h],w) sum:=sum+w end 3.global_write(sum,A) 4.for j:=1 to log p do if (i<=p/2^j) then begin global_read(A[2i-1],x) global_read(A[2i],y) z:=x+y global_write(z,A) end end ps η εντολή global_read(A,x) αντιγράφει την τιμή της μεταβλητής Α της κοινής μνήμης στην μεταβλητή x της τοπικής. η εντολή global_write(y, αντιγράφει την μεταβλητή y που βρίσκεται στην τοπική μνήμη στην μεταβλητή A που βρίσκεται στην κοινή μνήμη. Η απορία μου είναι η εξής Αν τρέξουμε τον αλγόριθμο για n=16 και p=4 ο επεξεργαστής i=1 (πρώτος) θα γράψει 2.for h:=(1-1)*16/4 to 1*16/4 do δηλαδή for h=0 to 4 και θα διαβάζει τις θέσεις (μέσω της global_read(A[h],w)) Α[0] Α[1] Α[2] Α[3] Α[4] πρώτη απορία .Η εκφώνηση λέει πως το πρώτο στοιχείο του πίνακα είναι το Α[1] όχι το Α[0] Κάθε cpu πρέπει να διαβάζει 4 στοιχεία απο τον πίνακα γιατι n/p=16/4=4 και όχι 5 που διαβάζει ο αλγόριθμος..... Τι έχετε να πείτε.
sotris99 Δημοσ. 31 Αυγούστου 2004 Δημοσ. 31 Αυγούστου 2004 se ti glossa?? Χαχαχα. Η αλήθεια είναι ότι μας έμπλεξες λίγο... Δεν ανεβάζεις κάπου το αρχείο να το δουλέψω... :roll:
athanatos Δημοσ. 31 Αυγούστου 2004 Μέλος Δημοσ. 31 Αυγούστου 2004 re paidia ti se ti glwssa?????????ALGORITHMOS EINAI.
georgepetrou Δημοσ. 31 Αυγούστου 2004 Δημοσ. 31 Αυγούστου 2004 Nomizo oti to sosto tha itan na grafei: 2.for h:=1+[(i-1)n/p] to in/p do... Etsi kathe fora tha diavazei n/p theseis apo to dianisma (to opoio einai kai pio logiko), kai oxi (n/p)+1 pou diavazei tora. Simfoneis athanatos?
athanatos Δημοσ. 31 Αυγούστου 2004 Μέλος Δημοσ. 31 Αυγούστου 2004 symfwnw........auto pou den mporw na katalabw einai giati to grafei etsi to biblio.Mallon tha xei lathos.
georgepetrou Δημοσ. 31 Αυγούστου 2004 Δημοσ. 31 Αυγούστου 2004 Sinithos sta for loop den diavazoume kai tin arxiki kai tin teliki timi. Pantos den einai kai poli simantiko lathos... To exei kai se programma meta? Ekei mporei na einai sosto!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.