Jump to content


ARMageddon: Cluster Building Project


qbiefox

Recommended Posts

Φίλε μου να σε ρωτήσω κάτι σε αυτό. Στις GPUs θα τρέχεις είτε OpenCL είτε CUDA. Σε ένα cluster, ποιος είναι αυτός που θα αναλαμβάνει το διαμοιρασμό των εργασιών στα nodes και τελικά θα τρέξει κώδικας στη GPU; Υπάρχει κάποια υλοποίηση σε sw που κάνει αυτή τη δουλειά;

Γράφεις MPI + OpenCL ή MPI + CUDA. To MPI αναλαμβάνει το μοίρασμα την δουλείας στα nodes και το OpenCL/CUDA την επεξεργασία των δεδομένων σε κάθε node ;)

Link to comment
Share on other sites

Πολύ ενδιαφέρον πρότζεκτ, θα ήθελα να συμμετάσχω κάποτε σε κάτι τέτοιο αν μου δινόταν η ευκαιρία (ή καλύτερα πριν απο 2 χρονια που είχα φρέσκια την παραλληλη επεξεργασία :p)

Σκέφτεστε να αλλάξετε τοπολογία διασύνδεσης;

Η επιλογή ανάθεσης εργασίας στο Pandaboard ή το Carma γίνεται από το raspberry ή από το χρήστη που κάνει αίτηση;

Link to comment
Share on other sites

Σκέφτεστε να αλλάξετε τοπολογία διασύνδεσης;

Η επιλογή ανάθεσης εργασίας στο Pandaboard ή το Carma γίνεται από το raspberry ή από το χρήστη που κάνει αίτηση;

Όχι δεν έχουμε σκεφτεί για αλλαγή διασύνδεσης. Έχεις κάτι να προτείνεις? :p

Ο χρήστης συνδέεται στο raspberry και τρέχει τις εργασίες τους μέσω batch system. Αυτή τη στιγμή είμαστε σε δοκιμαστικό στάδιο ακόμα, αλλά ο σκοπός είναι να υπάρχουν 3 ουρές, 1 για τα pandas, 1 για τα carmas και 1 για όλα μαζί. Οπότε ο χρήστης ζητάει σε ποια ουρά θέλει να τρέξει η δουλειά του, και το batch system αναλαμβάνει την δρομολόγηση στις ουρές.

Παιδιά συγγνώμη που δεν έχω κάνει update ακόμα, όμως έχει πέσει πολύ δουλειά. Στην πρώτη ευκαιρία θα εξηγήσω τι έγινε τις υπόλοιπες μέρες και τι δουλειές υπάρχουν ακόμα. :)

Link to comment
Share on other sites

Όχι δεν έχουμε σκεφτεί για αλλαγή διασύνδεσης. Έχεις κάτι να προτείνεις? :p

Ο χρήστης συνδέεται στο raspberry και τρέχει τις εργασίες τους μέσω batch system. Αυτή τη στιγμή είμαστε σε δοκιμαστικό στάδιο ακόμα, αλλά ο σκοπός είναι να υπάρχουν 3 ουρές, 1 για τα pandas, 1 για τα carmas και 1 για όλα μαζί. Οπότε ο χρήστης ζητάει σε ποια ουρά θέλει να τρέξει η δουλειά του, και το batch system αναλαμβάνει την δρομολόγηση στις ουρές.

Παιδιά συγγνώμη που δεν έχω κάνει update ακόμα, όμως έχει πέσει πολύ δουλειά. Στην πρώτη ευκαιρία θα εξηγήσω τι έγινε τις υπόλοιπες μέρες και τι δουλειές υπάρχουν ακόμα. :)

Κάτι συγκεκριμένο όχι δεν έχω να προτείνω απλά για θέματα πειραματισμού θα δοκίμαζα πχ τοπολογία ring ή συνδυασμού αστέρα-ring. :turn:

Δηλαδή αν εγώ στείλω προς εκτέλεση τον πολλαπλασιασμό 2 πολύ μεγάλων πινάκων, το batch θα διακρίνει το είδος της πληροφορίας και θα το στείλει πχ στα carmas ή θα πρέπει να του δώσω κάποιο flag που να λεει στειλτο εκει; Θελω να ξέρω δλδ αν σκέφτεστε να κάνετε κάποιου είδους αξιολόγηση του φόρτου εργασίας για βέλτιστη αξιοποιηση των πόρων.

Link to comment
Share on other sites

Βασικά θέλουμε κάτι πολύ απλό για να είναι όσο το δυνατόν πιο ελαφρύ. Σκοπός μας είναι να μάθουμε να στήνουμε τέτοια μηχανήματα, και να επιτύχουμε όσο το δυνατόν λιγότερη κατανάλωση ενέργειας.

Να σου πω την αλήθεια δεν το έχω δει να γίνεται αυτό που λες (χωρίς να σημαίνει ότι δεν είναι εφικτό). Αυτό που σίγουρα γίνεται πάντως, είναι να καταλάβει ότι τα carmas έχουν quad cpu, άρα να τους στείλει διπλάσια δουλειά από τα pandas :)

Link to comment
Share on other sites

Γινεται,αλλα ειναι θεμα auto-tuning,πολυ ενδιαφερον θεμα παντως μιας και εχει και το data-transfer overhead της GPU μεσα.

Το default ειναι να λες οτι θελω να το τρεξω στο ταδε μηχανιμα και να περιμενει ο scheduler να ελευθεροθουν ποροι.

Link to comment
Share on other sites

Καλή αρχή και καλό κουράγιο!

My 2 cents: Καταρχάς, το batch system αυτή τη στιγμή είναι το λάθος μέρος να ξεκινήσετε. Ξεκινήστε από τα βασικά.

1) Bρείτε τρόπο να κάνετε network boot (σημ. βλέπω ότι το Uboot το υποστηρίζει). Δείτε τι κάνει και το ROCKS (http://www.rocksclusters.org/). Κάθε φορά που θα αναβαθμίζετε κάτι, θα πρέπει να μαζεύετε τις SD-cards και να τις ξαναγράφετε = χαμένος χρόνος και not scalable.

2) Στήστε MPI: το MPICH και το OpenMPI υποστηρίζουν ARM στις τελευταίες εκδόσεις. Το MPICH μάλιστα έχει και extensions που επιτρέπει DMA από μία GPU σε ένα node σε GPU σε άλλο node (πολύ χρήσιμο για heterogeneous computing)

3) Τρέξτε μετροπρογράμματα: LAMMPS, NAS benchmarks, Graph500. Δείτε τα speedups, την κατανάλωση, την συμπεριφορά. Κάντε ένα burn-in test για το cluster. Δίνει την απόδοση που περιμένετε; Πόσο καίει; Θερμική συμπεριφορά;

4) Όταν τελειώσετε με αυτά και έχετε σταθερό σύστημα που αποδίδει, είναι έτοιμο να δεχτεί batch system.

Link to comment
Share on other sites

Καλή αρχή και καλό κουράγιο!

My 2 cents: Καταρχάς, το batch system αυτή τη στιγμή είναι το λάθος μέρος να ξεκινήσετε. Ξεκινήστε από τα βασικά.

1) Bρείτε τρόπο να κάνετε network boot (σημ. βλέπω ότι το Uboot το υποστηρίζει). Δείτε τι κάνει και το ROCKS (http://www.rocksclusters.org/). Κάθε φορά που θα αναβαθμίζετε κάτι, θα πρέπει να μαζεύετε τις SD-cards και να τις ξαναγράφετε = χαμένος χρόνος και not scalable.

2) Στήστε MPI: το MPICH και το OpenMPI υποστηρίζουν ARM στις τελευταίες εκδόσεις. Το MPICH μάλιστα έχει και extensions που επιτρέπει DMA από μία GPU σε ένα node σε GPU σε άλλο node (πολύ χρήσιμο για heterogeneous computing)

3) Τρέξτε μετροπρογράμματα: LAMMPS, NAS benchmarks, Graph500. Δείτε τα speedups, την κατανάλωση, την συμπεριφορά. Κάντε ένα burn-in test για το cluster. Δίνει την απόδοση που περιμένετε; Πόσο καίει; Θερμική συμπεριφορά;

4) Όταν τελειώσετε με αυτά και έχετε σταθερό σύστημα που αποδίδει, είναι έτοιμο να δεχτεί batch system.

Ευχαριστώ :)

Το ROCKS το γνωρίζω, είναι ότι πρέπει για quick'n'dirty setups. Δεν υποστηρίσει ARM, οπότε δεν δοκιμάσαμε τίποτε τέτοιο. OpenMPI και MPICH2 εννοείται ότι είναι τα πρώτα που στήθηκαν. Απλά δεν το ανέφερα, γιατί απλά 2 εγκαταστάσεις πακέτων είναι από το repository. Αργότερα ενδέχεται να τα κάνουμε και compile εξ' ολοκλήρου για τα μηχανήματα.

Link to comment
Share on other sites

Θα είναι δύσκολο να κάνεις cross-compile το ROCKS (βασικά CentOS στη βάση του) αλλά μπορείς να πάρεις ιδέες από το configuration του.

Δε γνωρίζω ποιες οι διαφορές μεταξύ του επεξεργαστή του Pandaboard (TI OMAP) και του Carma (nVidia Tegra) αλλά υπάρχει περίπτωση να χρειάζεσαι διαφορετικά binaries για πλήρη εκμετάλευση των δυνατοτήτων τους - αν και το MPI υποστηρίζει τέτοια set-ups, οι applications θα σου κάνουν τη ζωή δύσκολη (συνήθως είναι γραμμένες για clusters ομοειδών αρχιτεκτονικών/επεξεργαστών).

Για επιπλέον υλικό μπορείτε να δείτε και τα

1) [Phoronix] 12-Core ARM Cluster Benchmarked Against Intel Atom, Ivy Bridge, AMD Fusion (12-Core ARM Cluster με Pandaboards)

2) [Phoronix] Building A 96-Core Ubuntu ARM Solar-Powered Cluster (96-core solar powered ARM cluster)

Αν θέλετε πραγματικά να λάμψει, δώστε βάρος στις GPUs.

Link to comment
Share on other sites

Cortex A9 cores έχουν και τα carma και τα panda. Οπότε δεν ξέρω κατά πόσο χρειάζεται διαφορετικά binaries. Σίγουρα πάντως είναι κάτι που θα δοκιμαστεί.

Το phoronix γενικά έχει λιώσει σε testing ARM. Έχει πάρα πολλά άρθρα :)

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.