Έχουν δημοσιευτεί Τετάρτη, 12 Σεπτεμβρίου 2007 8:59 μμ από το μέλος PALLADIN

Parallel Reduce

Σήμερα ολοκλήρωσα το απαραίτητο refactoring και την υλοποίηση της Parallel Reduce extension method.

Συνεχίζοντας το coding, υλοποίησα με την Reduce τις Parallel versions των Min και Max, με σκοπό να δείξω την εκφραστική δύναμη του Reduce pattern.

public static T Max<T>(this IParallelEnumerable<T> data) where T : IComparable<T>
{
  return data.Aggregate(data.First(), (accumulate, value) => (accumulate.CompareTo(value) > 0)? accumulate : value);
}

public static T Min<T>(this IParallelEnumerable<T> data) where T : IComparable<T>
{
  return data.Aggregate(data.First(), (accumulate, value) => (accumulate.CompareTo(value) < 0)? accumulate : value);
}


(Σημείωση: Στο LINQ η Reduce method ονομάζεται Aggregate)

Share



Attachment(s): Parallel.zip

Ενημέρωση για Σχόλια

Αν θα θέλατε να λαμβάνετε ένα e-mail όταν γίνονται ανανεώσεις στο περιεχόμενο αυτής της δημοσίευσης, παρακαλούμε γίνετε συνδρομητής εδώ

Παραμείνετε ενήμεροι στα τελευταία σχόλια με την χρήση του αγαπημένου σας RSS Aggregator και συνδρομή στη Τροφοδοσία RSS με σχόλια

Σχόλια:

 

pgrontas έγραψε:

Συγχαρητήρια πολύ καλή δουλειά!

Έχω ξεκινήσει να διαβάζω τον κώδικα σου και χρησιμεύει ως  παράδειγμα προς μίμηση.

Σε περίπτωση που δεν το ξέρεις υπάρχει σχετικό άρθρο για Parallel Linq στο τρέχον MSDN Mag.

Σεπτεμβρίου 13, 2007 3:56 μμ
 

PALLADIN έγραψε:

Σε ευχαριστω πολύ φιλε μου.

Ειλικρινά, τα λόγια σου αποτελούν μεγάλη τιμή για μένα.

Το διάβασα το άρθρο και μπορώ να πω ότι πολλές απο τις ιδέες είναι πολύ κοντά με αυτό που έχω

υλοποιήσει.

Περιμένω να λάβω τα πρώτα real bits στα χερια μου... Σε αναμονή...

Σεπτεμβρίου 13, 2007 4:21 μμ
 

Mitsaras έγραψε:

Είμαι στον debugger και προσπαθώ να αποκωδικοποιήσω το... spell πίσω από τον κώδικά της PLinq υλοποίησής σου! Άλλη μια εκπληκτική δουλειά.

Ιανουαρίου 8, 2008 12:41 μμ

Ποιά είναι η άποψή σας για την παραπάνω δημοσίευση;

(απαιτούμενο)
απαιτούμενο
προαιρετικό
απαιτούμενο
ÅéóÜãåôå ôïí êùäéêü:
CAPTCHA Image