dimitris kalamaras

mathematics, social network analysis, free software…

Σπιτικό Clustering με Linux…

Αν και η επεξεργαστική ισχύς των σύγχρονων υπολογιστών αυξάνεται ταχύτατα, υπάρχουν πάρα πολλές εφαρμογές που απαιτούν πολύ μεγαλύτερη ισχύ από εκείνην του μέσου PC, όπως η κωδικοποίηση βίντεο σε MPEG, η συμπίεση μεγάλων αρχείων ήχου σε OGG ή MP3, το rendering μιας 3D εικόνας ή ενός animation, η διεξαγωγή ενός υπολογιστικού πειράματος, ο μεταγλωτισμός ενός σύνθετου προγράμματος κ.α. Σε αυτές τις περιπτώσεις χρειάζεστε πολύ ισχυρούς επεξεργαστές με αποτέλεσμα να πρέπει να ξοδέψετε ένα σωρό χρήματα.

Ευτυχώς, υπάρχει μια εναλλακτική και συνάμα «οικολογική» λύση, με την οποία μπορείτε να εκμεταλλευθείτε παλιό υλικό που έχετε στην αποθήκη ή μερικά παλιά μηχανήματα που μπορείτε να βρείτε σε εξευτελιστικές τιμές για να πετύχετε αύξηση της ταχύτητας των παραπάνω διαδικασιών. Η μέθοδος αυτή είναι η δημιουργία μιας συστοιχίας (cluster) υπολογιστών. Εν συντομία, πρόκειται για την διασύνδεση ενός αριθμού υπολογιστών, που λέγονται κόμβοι, μέσω τοπικού δικτύου και τη χρήση ενός κατάλληλου λειτουργικού συστήματος που μπορεί να κάνει χρήση της δομής cluster έτσι ώστε οι εφαρμογές να εκτελούνται ταχύτερα.

Μαντέψτε ποιο είναι το λειτουργικό σύστημα που μπορεί να το κάνει εύκολα, γρήγορα και δωρεάν… Φυσικά, το Linux. Υπάρχουν πολλές διανομές Linux που παρέχουν ενδογενή υποστήριξη για clustering. Εμείς επιλέξαμε να χρησιμοποιήσουμε μια live διανομή Linux, το ClusterKNOPPIX, το ΙSO image της οποίας μπορείτε να βρείτε στο http://clusterknoppix.sw.be. Εάν ενδιαφέρεστε να δείτε κάποιο άλλο Linux με δυνατότητες clustering, δείτε την ιστοσελίδα: http://lcic.org/distros.html.

Το ClusterKNOPPIX είναι live CD, δηλαδή τρέχει εξολοκλήρου από το CD που θα κάψετε και έτσι δεν θα χρειαστεί ούτε καν να πειράξετε τα δεδομένα των δίσκων των υπολογιστών που θα χρησιμοποιήσετε… Στην πραγματικότητα, μπορείτε να φτιάξετε μια συστοιχία όπου μόνο ένας υπολογιστής έχει σκληρό δίσκο, απ’ όπου θα τρέχετε τις εφαρμογές σας. Τα υπόλοιπα μηχανάκια της συστοιχίας αρκεί να έχουν 128ΜΒ μνήμης και bootable CD, όσα δηλαδή χρειάζεται το ClusterKNOPPIX για να ξεκινήσει.

Σε αυτό το άρθρο θα σας δείξουμε τα βασικά για να φτιάξετε το δικό σας «σπιτικό» cluster.

ΤΙ ΘΑ ΧΡΕΙΑΣΤΕΙΤΕ

Για τη δοκιμή μας, χρειάζεστε μόνο 2 PC με Ethernet κάρτες δικτύου συνδεδεμένα με ένα crossover UTP καλώδιο, δηλαδή ένα καλώδιο που ενώνει απευθείας δύο PC. Crossover καλώδια μπορείτε να βρείτε στο εμπόριο αλλά μπορείτε να κατασκευάσετε και οι ίδιοι αν έχετε utp καλώδιο, 2 RJ-11 Jacks και την κατάλληλη «πένσα», ακολουθώντας την συνδεσμολογία της εικ. 1.


ΕΙΚΟΝΑ 1
Η συνδεσμολογία για να φτιάξετε το crossover καλώδιο είναι ιδιαίτερα απλή.

Στην πραγματικότητα, τα αξιόλογα clusters δεν φτιάχνονται με δύο PC και δεν χρησιμοποιούν 100Mbps Ethernet, όπως εμείς. Τα clusters ξεδιπλώνουν τις αρετές τους όταν αποτελούνται από πολλά PC συνδεδεμένα με Gigabit Ethernet μέσω Gigabit switch. Όμως, ένα πεντάπορτο Gigabit switch κοστίζει από 85 Ευρώ (όπως το NetGear GS 105GE, τιμή από το Πλαίσιο) ενώ κάθε κάρτα Gigabit Ethernet ξεκινάει από 30 Ευρώ (NetGear 10/100/1000 PCI GA311 από το Πλαίσιο). Επομένως για 5 PC χρειάζεστε γύρω στα 240 ευρώ χωρίς να υπολογίζουμε τα καλώδια Cat 6. Επιπλέον, τα σοβαρά clusters (εικ. 2) χρησιμοποιούνται για να «τρέχουν» εφαρμογές που είναι κατασκευασμένες κατάλληλα ώστε να εκμεταλλεύονται την αρχιτεκτονική αυτή. Επιλέξαμε λοιπόν να σας επιδείξουμε ένα πολύ απλό και «πρωτόγονο» cluster με 2 PC για να σας μυήσουμε στην υπόθεση «clustering» με μερικές απλές εφαρμογές. Αν διαπιστώσετε ότι σας ενδιαφέρει μπορείτε να συνεχίσετε δριμύτεροι με κανονικές συστοιχίες υπολογιστών.


ΕΙΚΟΝΑ 2
Η συστοιχία 16 υδρόψυκτων υπολογιστών που κατασκευάστηκε στο Εργαστήριο Πειραματικής Φυσικής Υψηλών Ενεργειών της Σχολής Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών του ΕΜΠ.

Επομένως, αν έχετε συνδέσει μέσω crossover καλωδίου τα δύο PC, το μόνο που έχετε να κάνετε είναι να κάψετε το ClusterKnoppix.iso με Burn Image σε δύο δισκάκια, αν ακολουθήσετε το παράδειγμα μας. Αν έχετε πιο «επεκτατικές» διαθέσεις και σκοπεύετε να δημιουργήσετε ένα πραγματικό cluster με πολλά PC, κάψτε περισσότερα CD.

Θεωρία

Καταρχήν, θα αναρωτιέστε τι κάνει ακριβώς το ClusterKNOPPIX και πως λειτουργεί. Για την ακρίβεια, το ClusterKnoppix είναι απλώς μια τροποποιημένη διανομή Knoppix Linux με πάρα πολλά προγράμματα, που περιέχει τον πυρήνα openMosix. Ο πυρήνας αυτός είναι ένας πυρήνας Linux στον οποίον έχει συμπεριληφθεί η τεχνολογία openMosix, μια επέκταση για Single-System Image (SSI) clustering, και χάρη σε αυτήν ένα δίκτυο από συνηθισμένους υπολογιστές μπορεί να «μετατραπεί» σε έναν υπερυπολογιστή όπου τρέχουν εφαρμογές Linux. Η τεχνολογία openMosix αποτελείται από σύγχρονους αλγόριθμους διαμοιρασμού πόρων (load-balancing, memory-depletion prevention και scheduling) και από έναν μηχανισμό μετανάστευσης διεργασιών (Preemptive Process Migration, PPM). Οι αλγόριθμοι έχουν σχεδιαστεί έτσι ώστε να προσαρμόζονται αυτόματα και να αντιδρούν ανάλογα στις διακυμάνσεις του υπολογιστικού φόρτου ανάμεσα στους κόμβους που αποτελούν το cluster.

Όταν οι υπολογιστές του δικτύου τρέχουν το ClusterKNOPPIX, στην ουσία χρησιμοποιούν το openMosix για να επικοινωνούν μεταξύ τους μέσω SSH και η συστοιχία προσαρμόζεται αυτόματα στον συνολικό υπολογιστικό φόρτο. Η αυτόματη προσαρμογή γίνεται με «μετανάστευση» διεργασιών από έναν κόμβο, που είναι φορτωμένος σε σχέση με τους υπόλοιπους, προς οποιοδήποτε άλλον. Το openMosix προσπαθεί συνέχεια να βελτιστοποιεί την κατανομή των συνολικών πόρων της συστοιχίας (load-balancing). Η μετανάστευση γίνεται συνήθως αυτόματα βάσει των πληροφοριών που παρέχουν οι αλγόριθμοι διαμοιρασμού πόρων, ωστόσο ο χρήστης μπορεί να παρακάμψει τις αποφάσεις του συστήματος του και να στείλει μια διεργασία από τον κόμβο του σε έναν άλλο (όχι το αντίθετο). Σημειώστε όμως ότι δεν είναι εφικτό να μεταναστεύσει κάθε διεργασία ενός κόμβου, μια και κάποιες υποχρεωτικά τρέχουν μόνο τοπικά σε κάθε κόμβο της συστοιχίας.

Ο μηχανισμός PPM αποφασίζει να «μεταφέρει» μια διεργασία από ένα κόμβο σε έναν άλλο όταν οι απαιτήσεις (ή φόρτος) σε επεξεργαστική ισχύ ή μνήμη των διεργασιών που τρέχουν στον αρχικό κόμβο ξεπερνούν ένα συγκεκριμένο όριο. Όσο ο φόρτος του συστήματος μένει κάτω από το όριο αυτό, δεν μεταναστεύει καμιά διεργασία. Εάν κατά την διάρκεια της εκτέλεσης γίνουν διαθέσιμοι νέοι πόροι (π.χ. συνδέσετε ένα νέο PC στη συστοιχία) τότε ο αλγόριθμος load-balancing θα χρησιμοποιήσει αυτόματα τους νέους πόρους με πιθανή επανατοποθέτηση των διεργασιών ανάμεσα στους κόμβους. Και αντίστροφα, η συστοιχία θα προσαρμοστεί αυτόματα αν αποσυνδεθεί ένας κόμβος.

Το openMosix δεν έχει κάποιον κεντρικό έλεγχο ούτε προϋποθέτει κάποια δομή master/slave ανάμεσα στους κόμβους της συστοιχίας. Κάθε κόμβος είναι ένα αυτόνομο σύστημα που λαμβάνει τις δικές του ανεξάρτητες αποφάσεις, επιτρέποντας την δυναμική ρύθμιση του δικτύου. Oι κόμβοι προστίθενται ή αφαιρούνται σε πραγματικό χρόνο χωρίς να επηρεάζεται η καλή λειτουργία της συστοιχίας.
Σύμφωνα με την ιστοσελίδα του openMosix (http://openmosix.sourceforge.net/) “δεν είναι απαραίτητο να γραφούν εφαρμογές ειδικά σχεδιασμένες για το openMosix”. Αυτό οφείλεται στο γεγονός ότι οι επεκτάσεις περιλαμβάνονται στον πυρήνα του ClusterKNOPPIX και έτσι “κάθε εφαρμογή ωφελείται από την κατανεμημένη επεξεργαστική ισχύ”. Η συστοιχία, επομένως, συμπεριφέρεται σαν ένας Symmetric Multi-Processor (SMP) και μάλιστα έχει την δυνατότητα κλιμάκωσης σε πάνω από 1000 σταθμούς (nodes) που με τη σειρά τους μπορεί να είναι SMPs.

Το καλό με την τεχνολογία openMosix είναι ότι εκδίδεται υπό την άδεια GPL, όπως και ο πυρήνας Linux, με αποτέλεσμα να είναι δωρεάν και ταυτόχρονα να διανέμεται εντελώς ελεύθερα ο κώδικάς του.

Στην πράξη
Αφού περιηγηθήκαμε στις βασικές τεχνικές του openMosix είναι καιρός να περάσουμε στην πράξη. Θεωρούμε, λοιπόν, ότι έχετε δύο PC, με 128ΜΒ μνήμης τουλάχιστον, συνδεδεμένα μέσω Ethernet με ένα σωστά φτιαγμένο crossover UTP καλώδιο και ότι έχετε κάψει δύο δισκάκια με το ClusterKNOPPIX. Επίσης, θα πρέπει να έχετε ρυθμίσει τα δύο PC να ξεκινούν από το CD.

Εκκινείστε τα δύο PC (δεν έχει σημασία η σειρά) και θα πρέπει να δείτε το όμορφο λογότυπο του ClusterKNOPPIX με ένα boot prompt κάτω αριστερά. Πατήστε Enter και το ClusterKNOPPIX θα ξεκινήσει. Το λειτουργικό θα ανιχνεύσει το υλικό του υπολογιστή σας και θα προσπαθήσει να το ρυθμίσει αυτόματα. Το κρίσιμο σημείο είναι η ανίχνευση της κάρτας δικτύου. Εάν δεν τα καταφέρει σε αυτό το σημείο, τότε δεν θα μπορέσετε να κάνετε τίποτε. Εμείς το δοκιμάσαμε με επιτυχία σε 4 διαφορετικά PC. Αμέσως μετά την ανίχνευση, θα φορτωθεί το γραφικό περιβάλλον KDE, που μοιάζει πολύ με Windows (εικ. 3). Στο κάτω μέρος, υπάρχει η κεντρική μπάρα με το Κ μενού (το αντίστοιχο Start), εικονίδια εφαρμογών, taskbar, ρολόι κτλ, ενώ στην επιφάνεια εργασίας θα βρείτε τα εικονίδια των σκληρών δίσκων του μηχανήματος, απ’ όπου μπορείτε να ανοίγετε (όχι να γράφετε) τα αρχεία σας.


ΕΙΚΟΝΑ 3
Το γραφικό περιβάλλον του ClusterKNOPPIX θυμίζει Windows και διαθέτει αυτόματα εργαλεία ρύθμισης της κάρτας δικτύου.

Για να διαπιστώσετε εάν έγινε ρύθμιση της κάρτας δικτύου σας, ανοίξτε μια κονσόλα (το έκτο εικονίδιο από αριστερά στην κεντρική μπάρα) και εκεί δώστε την εντολή

dmesg | grep eth

Θα πρέπει να σας εμφανίσει μερικές γραμμές με στοιχεία για την κάρτα σας. Αν δεν εμφανίσει τίποτε, δοκιμάστε την εντολή:

lspci | grep Ethernet

Αν και πάλι δεν δείτε την κάρτα σας τότε μάλλον το Linux δεν κατάφερε να την αναγνωρίσει. Σε αυτό το άρθρο δεν θα μπούμε σε λεπτομέρειες για την περίπτωση αυτή. Για περισσότερες πληροφορίες για τέτοια προβλήματα, διαβάστε το How-To που θα βρείτε στη σελίδα: http://www.tldp.org/HOWTO/Ethernet-HOWTO.html

Έχοντας κάνει εκκίνηση και στους δύο υπολογιστές από τα CD του ClusterKNOPPIX και αφού έχετε εξασφαλίσει την φυσική διασύνδεσή τους μέσω Ethernet, είναι ώρα να βάλετε τη μικρή συστοιχία σας σε λειτουργία.

Πηγαίνετε στο πρώτο PC (δεν έχει σημασία η σειρά), κάντε κλικ στο εικονίδιο του χαρούμενου πιγκουίνου που βρίσκεται στην κεντρική μπάρα και στο μικρό μενού που θα εμφανιστεί επιλέξτε Root Shell (εικ. 4).


ΕΙΚΟΝΑ 4
Πατώντας το εικονίδιου του πιγκουίνου και επιλέγοντας Root Shell ανοίγετε μια γραμμή εντολών όπου ρυθμίζετε την IP της κάρτας δικτύου.

Θα ανοίξει ένα νέο παράθυρο γραμμής εντολών στο οποίο έχετε δικαιώματα υπερχρήστη (το αντίστοιχο του administrator των Windows). Στο ένα PC δώστε τις εντολές:

ifconfig eth0 192.168.1.10
route add –net 0.0.0.0 gw 192.168.1.1
omdiscd

Στον άλλο κόμβο δώστε τις ίδιες εντολές, αλλά με άλλη IP:

ifconfig eth0 192.168.1.20
route add –net 0.0.0.0 gw 192.168.1.1
omdiscd

Εν συντομία, ορίσατε στο ένα PC την στατική IP διεύθυνση 192.168.1.10 ενώ στο άλλο την 192.168.1.20. Η εντολή omdiscd κάνει αυτόματη ρύθμιση του openMosix για το τοπικό δίκτυο σας και δίνεται τελευταία.

Αυτό ήταν όλο. Η συστοιχία σας πρέπει να είναι σε λειτουργία. Για να το διαπιστώσετε κάντε κλικ στο λευκό εικονίδιο με τον πιγκουίνο (εικ. 5) στην κεντρική μπάρα για να τρέξετε το openMosixView, όπου θα πρέπει να δείτε και τους δύο κόμβους σας, δηλαδή και τις δύο IP διευθύνσεις. Αν τους δείτε, σημαίνει ότι είστε έτοιμοι. Αν όχι, θα πρέπει να δείτε μήπως υπήρξε κάποιο πρόβλημα με την κάρτα δικτύου κάποιου κόμβου, όπως περιγράψαμε παραπάνω.


ΕΙΚΟΝΑ 5
Το βασικό παράθυρο του openMosixView είναι λιτό αλλά σας δείχνει τα πάντα σχετικά με την κατάσταση της συστοιχίας.

Το openMosixView σας δείχνει πολύτιμες πληροφορίες για την απόδοση του load-balancing στη συστοιχία σας, τον φόρτο (συνολικό και μεμονωμένο) και την διαθέσιμη μνήμη (συνολική και ανά PC) της συστοιχίας. Επίσης, σας παρέχει και μια 5ψήφια «βαθμολόγηση» των κόμβων σας βάσει της ισχύος τους. Η λογική του openMosix είναι ότι οι διεργασίες
μεταναστεύουν ευκολότερα από έναν κόμβο με μικρότερη βαθμολογία (μικρότερη ισχύ) σε έναν άλλο με μεγαλύτερη βαθμολογία και όχι το αντίστροφο. Μπορείτε όμως να μειώσετε την βαθμολόγηση από τα sliders ή με την εντολή:

mosctl setspeed XXX

Πατώντας το 5ο εικονίδιο πάνω στην εργαλειοθήκη του openMosixView θα εμφανιστεί ένα νέο παράθυρο γραφικών με δύο πιγκουίνους (εικ. 6), που αναπαριστούν τους δύο υπολογιστές της συστοιχίας σας. Ο πιγκουίνος στο κέντρο είναι ο κόμβος που βρίσκεστε εκείνη τη στιγμή και οι μαύρες κουκίδες γύρω του είναι οι ενεργές διεργασίες του. Αυτές τις διεργασίες μπορείτε με drag’ n drop να τις μεταφέρετε στον άλλο κόμβο. Άψογο, ε; Καλό είναι, όμως, να αφήνετε την πρωτοβουλία στο openMosix που θα κάνει αυτόματα την μεταφορά όταν το συγκεκριμένο μηχάνημα φορτωθεί πολύ.


ΕΙΚΟΝΑ 6
Το migMon απεικονίζει με απλά γραφικά τη συστοιχία και τις διεργασίες που τρέχουν στον τοπικό κόμβο. Με drag’ n drop μεταφέρετε μια διεργασία αλλού.

Κάνοντας κλικ στο κουμπί all-nodes από το openMosixView, μπορείτε να ρυθμίσετε την αυτόματη μετανάστευση και να ξεκινήσετε ή να σταματήσετε το openMosix.
Με κλικ στο εικονίδιο με το γρανάζι βλέπετε όλες τις διεργασίες που τρέχει ο κόμβος ενώ πατώντας το κουμπί «manage procs from remote» θα εμφανιστούν οι διεργασίες που έχουν μεταφερθεί σε αυτό το PC από το άλλο. Στην αρχή δεν θα δείτε καμία διεργασία εκεί, φυσικά.

Για αρχή, ας δούμε το πρόγραμμα Kandel που παράγει fractal (εικ. 7) και έχει γραφτεί με βελτιστοποιήσεις για clustering.


ΕΙΚΟΝΑ 7
Για να τρέξετε το Kandel πηγαίνετε Κ Menu > Graphics > Kandel.

Τρέξτε το και πηγαίνετε Settings > Configure και στο νέο παράθυρο (εικ. 8 ) κάντε κλικ στο Colour Scheme. Τσεκάρετε την επιλογή Use palette και κάντε κλικ στο κουμπί Choose. Στο διάλογο που θα εμφανιστεί πηγαίνετε στον φάκελο /usr/share/doc/kandel και επιλέξτε το αρχείο pseudocolour.pal. Πατήστε ΟΚ. Κατόπιν, κάντε κλικ στο Processing και μειώστε τα image slices σε 2. Ακριβώς από κάτω υπάρχει μια επιλογή Concurrent Processes με τιμή 1. Απο εκεί ορίζετε τις ταυτόχρονες διεργασίες (όσοι και οι κόμβοι της συστοιχίας σας) για τον υπολογισμό του fractal. Αφήστε αρχικά την τιμή 1 για να χρονομετρήσετε το σύστημα μόνο του. Πατήστε Apply και μετά OK.


ΕΙΚΟΝΑ 8
Κάνοντας Settings > Configure, ρυθμίζετε τις παραμέτρους του Kandel.

Κάνοντας κλικ στο μπλε εικονίδιο με το σπιτάκι, θα ξεκινήσει ο υπολογισμός του Mandelbrot fractal (εικ. 9). Σημειώνουμε ότι το Kandel μας προβλημάτισε πολύ κατά τις δοκιμές μας.


ΕΙΚΟΝΑ 9
To Mandelbrot fractal που παράγεται εξορισμού από το Kandel. Η ύπαρξη συστοιχίας μείωσε το χρόνο παραγωγής.

Στη συνέχεια πηγαίνετε πάλι στο Settings > Configure > Processing και βάλτε την τιμή 2 στο Concurrent Processes. Ξανακάντε κλικ στο εικονίδιο παραγωγής του fractal και τώρα θα διαπιστώσετε ότι η δημιουργία του fractal ήταν πολύ πιο γρήγορη. Μάλιστα αν ταυτόχρονα ρίξετε μια ματιά στο openMosixView του άλλου υπολογιστή θα διαπιστώσετε ότι χρησιμοποιείται και η δικιά του CPU ενώ στο migMon του πρώτου κόμβου μπορεί να δείτε τη διεργασία Kandel να έχει μεταναστεύσει στον δεύτερο κόμβο (εικ 10).


ΕΙΚΟΝΑ 10
Κατά την κωδικοποίηση του WAV σε OGG, η διεργασία είχε μεταφερθεί αυτόματα από το AMD στο Celeron M.

Επειδή το Kandel μας ταλαιπώρησε αρκετά με συχνά και ανεξήγητα κολλήματα σκεφθήκαμε να προβούμε σε μια πιο ξεκάθαρη δοκιμή: την κωδικοποίηση ενός μεγάλου WAV αρχείου ήχου. Πράγματι, τα αποτελέσματα ήταν πολύ ενθαρρυντικά με το πολύ πρωτόγονο cluster μας, όπως φαίνεται στο παρακάτω πίνακα:

Αξιολόγηση της συστοιχίας με κωδικοποίηση ήχου

Αξιολόγηση της συστοιχίας με κωδικοποίηση ήχου

CPU/RAM

Αρχείο WAV 150MB σε OGG με ποιότητα 441 kbs

AMD 1.2 GHz

512MB

3΄ 56΄΄

Celeron M 1.4GHz

512 MB

1΄ 52
AMD Clustered 2΄ 19΄΄

Celeron M Clustered

1΄ 53΄΄

Παρατηρήστε ότι η κωδικοποίηση από τον AMD ωφελήθηκε κατά πολύ όταν η συστοιχία ήταν ενεργή: από τα 4 λεπτά έπεσε στα 2 και 20 δευτερόλεπτα. Αντίθετα, ο Celeron δεν έδειξε να ωφελείται αφού είτε μόνος του είτε σε cluster έκανε τον ίδιο χρόνο κωδικοποίησης χωρίς να χρησιμοποιεί καθόλου τον AMD που παρέμενε ανενεργός. Αυτό οφείλεται πιθανόν στο γεγονός ότι η ισχύς του Celeron M είναι μεγαλύτερη από του AMD με αποτέλεσμα το openMosix να επιλέξει τη μη μεταφορά της διεργασίας.

Μπορείτε να πειραματιστείτε περισσότερο πειράζοντας το όριο του φόρτου κάθε κόμβου με την εντολή moslimit. Για πληροφορίες δώστε στην κονσόλα την εντολή

man moslimit

Οι δυνατότητες που σας δίνει το ClusterKNOPPIX για να κάνετε κωδικοποίηση ήχου είναι απίστευτες. Αν θέλετε δείτε ένα πολύ καλό cluster (εικ. 11) που έφτιαξε ένας ερασσιτέχνης για CD ripping πηγαίνετε στην ιστοσελίδα: http://www.rimboy.com/cluster/


ΕΙΚΟΝΑ 11
Οι ερασσιτέχνες με μεράκι μεγαλουργούν, όπως φαίνεται στο παράδειγμα του CD-Ripping cluster που έφτιαξε κάποιος από παλιά μηχανήματα.

Τέλος, κάναμε μία δοκιμή με το POV-Ray, ένα υψηλής ποιότητας, εντελώς ελεύθερο εργαλείο για δημιουργία 3D γραφικών. To POV-Ray περιέχεται μέσα στο ClusterKNOPPIX και μπορείτε με μερικές μόνο εντολές να παράγετε πολύ όμορφα γραφικά και να επωφεληθείτε από τη συστοιχία που φτιάξατε.
Για να δοκιμάσετε την συστοιχία σας με το POV-Ray, ανοίξτε μια  κονσόλα ως root και δώστε τις εντολές:

cp /usr/share/doc/povray/pov3demo/showoff/matches.* .
gunzip matches.pov.gz
time povray matches.ini +w640 +h480 +FN

Οι 2 πρώτες εντολές θα αντιγράψουν ένα demo του POV-Ray από τον φάκελο με τα παραδείγματα και θα το αποσυμπιέσουν στο /home/knoppix. Η τρίτη εντολή κάνει το rendering, εξάγει το αποτέλεσμα σε μια PNG εικόνα 640×480 (εικ. 12) και ταυτόχρονα χρονομετρά την διαδικασία rendering.


ΕΙΚΟΝΑ 12
Η τελική εικόνα που κάναμε rendering στην δοκιμή μας με το POV-Ray. Στον ίδιο φάκελο pov3demo, θα βρείτε πολλά ακόμη παραδείγματα.

Στις δοκιμές μας με το POV-Ray τα αποτελέσματα ήταν τα ακόλουθα:

Αξιολόγηση της συστοιχίας με το POVRay

CPU/RAM

Rendering matches.pov

AMD 1.2 GHz

512MB

16΄ 41΄΄

Celeron M 1.4GHz

512 MB

9΄ 01΄΄

AMD Clustered

8΄ 56΄΄

Celeron M Clustered

9΄ 06΄΄

Νομίζουμε ότι οι χρόνοι μιλάνε από μόνοι τους. O AMD χρειάστηκε 16 λεπτά και 41 δευτερόλεπτα για να κάνει rendering την εικόνα μόνο του, ενώ όταν ήταν συνδεδεμένο ως κόμβος της συστοιχίας χρειάστηκε σχεδόν τον μισό χρόνο. Αντίθετα, όπως και πριν, ο Celeron M δεν ωφελήθηκε καθόλου από την ύπαρξη της συστοιχίας. Αυτό μας επιτρέπει να εικάσουμε ότι η ανωτερότητα του Celeron M αποτρέπει το openMosix του συστήματος αυτού να μεταφέρει τη διεργασία στον πιο αδύναμο κόμβο (το AMD).

Συνολικά, η δημιουργία μιας συστοιχίας με το ClusterKnoppix είναι μια πολύ εύκολη διαδικασία. Όμως μην περιμένετε να δείτε μεγάλη αύξηση της ταχύτητας σε όλες τις εφαρμογές καθώς οι περισσότερες επηρεάζονται από παράγοντες που αποτρέπουν την μεταφορά τους σε άλλους κόμβους ή απλά δεν είναι κατασκευασμένες γι’ αυτό το σκοπό. Ο πιο σημαντικός παράγοντας είναι ανάγκη κάποιων threads να επικοινωνούν μεταξύ τους. Όσο μεγαλύτερος είναι ο όγκος της επικοινωνίας τους, τόσο μεγαλύτερη ανάγκη υπάρχει για μεγάλη ταχύτητα σύνδεσης μεταξύ των κόμβων προκειμένου να μεταφέρονται κάποιες διεργασίες. Επομένως, μην περιμένετε πολλά με μια απλή 10/100 Ethernet σύνδεση. Αντίθετα, για εκείνες τις εφαρμογές που απαιτούν υπολογιστική ισχύ για μια συγκεκριμένη εργασία, όπως την κωδικοποίηση ήχου, βίντεο και την παραγωγή 3D γραφικών, τα αποτελέσματα είναι όντως καταπληκτικά.

ΣΥΜΒΟΥΛΗ
Αν οι συσκευές CD των κόμβων σας είναι αργές, μπορείτε να προχωρήσετε σε απευθείας εγκατάσταση του ClusterKNOPPIX στο δίσκο δίνοντας στην κονσόλα την εντολή:

knx2hd

και ακολουθώντας τις οδηγίες.
Περισσότερες πληροφορίες θα βρείτε στη σελίδα:
http://www.knoppix.net/forum/viewtopic.php?t=2461&postdays=0&postorder=asc&highlight=cluster+mfs&start=50

Αναδημοσίευση από άρθρο στο περιοδικό Computer για Όλους.

Previous

OGD1: Μια κάρτα γραφικών ανοικτού κώδικα

Next

Qt (Μέρος IIΙ): Αρχειοθέτης άρθρων

4 Comments

  1. Nik

    Πολύ ωραίο άρθρο

    +1

  2. TaSozzZ

    Συγχαρητήρια,
    Πολύ καλό άρθρο και άκρως διαφωτιστικό.

  3. fuesto

    Μπραβο για το αρθρο σου και ευχαριστω(εγω τουλαχιστον)για το χρονο που ξοδεψες για να το γραψεις.Πολυ καλο

  4. Ευχαριστώ πολύ!

Leave a Reply

Creative Commons License
Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License - Powered by Linux