Περίληψη |
Ένας από τους βασικούς στόχους του MPI και των υλοποιήσεων του, είναι το
performance portability. Με την ταχεία διάδοση των muli/many-core επεξεργαστών,
εμφανίζονται εμπόδια που περιορίζουν την κλιμάκωση απόδοσης, και θέτουν σε κίνδυνο
αυτό τον στόχο. Για να εγγυηθούμε τις προσδοκίες υψηλής απόδοσης και σε αυτούς τους
επεξεργαστές, υλοποιούμε εντός του Open MPI, το XHC (XPMEM-based Hierarchical
Collectives), ένα component για intra-node collectives, που λαμβάνει υπ όψει του τις
ιδιαιτερότητες των μοντέρνων επεξεργαστών.
Το XHC κατασκευάζει μια πολυεπίπεδη ιεραρχία που ανταποκρίνεται στα τοπολογικά
χαρακτηριστικά του εκάστοτε επεξεργαστή, και η οποία καθορίζει τη ροή δεδομένων των
αλγόριθμων του. Τα δεδομένα αποστέλλονται μέσω μνήμης, χωρίς περιττές αντιγραφές,
μέσω user-level shared address space απεικονίσεων, κατασκευασμένων με χρήση του
XPMEM. Ο συγχρονισμός επίσης επιτυγχάνεται μέσω της μνήμης, με την αξιοποίηση
υψηλά αποδοτικών lock-free μεθόδων.
Παρέχουμε υλοποιήσεις για τα Broadcast, Barrier, και Allreduce, και τις αξιολογούμε σε
τρία διαφορετικά υπολογιστικά συστήματα με μεγάλο αριθμό πυρήνων και με διάφορες
τοπολογίες, συμπεριλαμβανομένου πολλαπλών πακέτων επεξεργαστών και πολλαπλών
κόμβων NUMA. Χρησιμοποιούμε τα MPI microbenchmarks του OSU, αλλά και
πραγματικές εφαρμογές HPC, για να παρέχουμε συγκρίσεις με τις υπόλοιπες
υλοποιήσεις collectives εντός του Open MPI. Παρουσιάζουμε σημαντικά ευρήματα
σχετικά με τη λειτουργία των microbenchmark, και τους κεντρικούς παράγοντες που
επηρεάζουν τα αποτελέσματα τους. Τέλος, παραθέτουμε στατιστικά σχετικά με το
ποσοστό χρήσης της κάθε λειτουργίας colletive στις HPC εφαρμογές μας.
Η προτεινόμενη μας υλοποίηση, επιτυγχάνει σε microbenchmarks, σε σχέση με την
αμέσως καλύτερη, speedups 3x, 2x, και 8x για τα Broadcast, Barrier, και Allreduce
αντίστοιχα. Στο miniAMR κατορθώνουμε speedup 4.8x, και στο CTNK μειώνουμε τον
χρόνο απαιτούμενο για την εκμάθηση του νευρωνικού δικτύου AlexNet κατά 8%.
Τα αποτελέσματα της πειραματικής μας αποτίμησης επισημάνουν την ανάγκη για
συγκεκριμένες τεχνικές, όπως την επίγνωση της τοπολογίας του επεξεργαστή, και τις
μεταφορές δεδομένων με τεχνικές single-copy, οποτεδήποτε αναζητείται μέγιστη
απόδοση για MPI collectives σε multi/many-core επεξεργαστές.
|