Intel Threading Building Blocks
Η Intel Threading Building Blocks (γνωστή και ως TBB) είναι βιβλιοθήκη προτύπων (templates) της C++ που έχει αναπτυχθεί από την Intel και βοηθά στη συγγραφή λογισμικού που εκμεταλλεύεται τους πολυπύρηνους επεξεργαστές. Η βιβλιοθήκη αποτελείται από δομές δεδομένων και αλγορίθμους που επιτρέπουν στον προγραμματιστή να αποφύγει την πολυπλοκότητα που μπορεί να έχει η χρήση νημάτων όπως τα νήματα POSIX ή τα νήματα των Windows ή τα Boost Threads, όπου πρέπει να δημιουργεί, να συγχρονίζει και να καταστρέφει νήματα με ρητό τρόπο. Αντίθετα, στην περίπτωση της TBB, η βιβλιοθήκη δίνει έναν αφαιρετικό τρόπο όσον αφορά την πρόσβαση σε πολλαπλούς επεξεργαστές, επιτρέποντας στις λειτουργίες του προγράμματος να θεωρούνται "εργασίες" ("tasks"), οι οποίες και μπορούν να κατανεμηθούν δυναμικά στους πυρήνες από τη μηχανή χρόνου εκτέλεσης της βιβλιοθήκης, ενώ χρησιμοποιείται αποδοτικά η κρυφή μνήμη του επεξεργαστή. Ένα πρόγραμμα που χρησιμοποιεί την TBB δημιουργεί, συγχρονίζει και καταστρέφει γράφους αλληλεξαρτώμενων εργασιών σύμφωνα με κάποιους αλγόριθμους, οι οποίοι είναι παραδείγματα προγραμματισμού υψηλού (αλγοριθμικοί σκελετοί, Algorithmic Skeletons). Οι εργασίες εκτελούνται τότε ακολουθώντας τις εξαρτήσεις μεταξύ των κόμβων του γράφου. Η προσέγγιση αυτή τοποθετεί την TBB σε μια οικογένεια εργαλείων που προσπαθούν να λύσουν το πρόβλημα του παράλληλου προγραμματισμού διαχωρίζοντας τον ίδιο τον προγραμματισμό από τις λεπτομέρειες χαμηλού επιπέδου του εκάστοτε υπολογιστή.
Δείτε επίσης
- Αλγοριθμικός σκελετός
- Παράλληλος προγραμματισμός
- Grand Central Dispatch
- List of C++ template libraries
- Intel Array Building Blocks
- Cilk
- Intel Cilk Plus
- Intel Concurrent Collections
- Intel Parallel Building Blocks
- Intel Parallel Studio
- Intel Software Network (support and discussion)
Παραπομπές
Αναφορές
- Reinders, James (2007, July). Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism (Paperback) Sebastopol: O'Reilly Media, ISBN 978-0-596-51480-8.
- Voss, M. (2006, October). "Demystify Scalable Parallelism with Intel Threading Building Blocks' Generic Parallel Algorithms."
- Voss, M. (2006, December). "Enable Safe, Scalable Parallelism with Intel Threading Building Blocks' Concurrent Containers."
- Hudson, R. L., B. Saha, et al. (2006, June). "McRT-Malloc: a scalable transactional memory allocator." Proceedings of the 2006 International Symposium on Memory Management. New York: ACM Press, pp. 74-83.
![]() ![]() | Στο λήμμα αυτό έχει ενσωματωθεί κείμενο από το λήμμα Intel Threading Building Blocks της Αγγλικής Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 4.0. (ιστορικό/συντάκτες). |