Μετάβαση στο περιεχόμενο

Διαμέριση περιοχής

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

Στον παράλληλο υπολογισμό του FrontISTR, το hecmw_part1 διαιρεί ένα πλέγμα μίας περιοχής σε υποπεριοχές και δημιουργεί κατανεμημένα δεδομένα πλέγματος. Τα παραγόμενα κατανεμημένα δεδομένα πλέγματος διαβάζονται από το παράλληλο fistr1 και χρησιμοποιούνται από τον παράλληλο επιλυτή μαζί με τις πληροφορίες που απαιτούνται για την επικοινωνία μεταξύ περιοχών.

Η σελίδα αυτή περιγράφει τον τύπο διαμέρισης, τη μέθοδο διαμέρισης, το βάθος επικάλυψης και τον χειρισμό σημείων επαφής που επιλέγονται κατά τη διαμέριση περιοχής. Για τη διαδικασία εκτέλεσης του hecmw_part1, τη συγκεκριμένη σύνταξη του αρχείου ελέγχου και τα μηνύματα σφάλματος, ανατρέξτε στα σχετικά θέματα.

Επισκόπηση λειτουργιών

Η διαμέριση περιοχής είναι η διαδικασία διαίρεσης ενός πλέγματος μίας περιοχής σε πολλαπλές υποπεριοχές. Το FrontISTR δημιουργεί κατανεμημένα δεδομένα πλέγματος συνδυάζοντας έναν τύπο διαμέρισης, μία μέθοδο διαμέρισης, έναν αριθμό περιοχών και ένα βάθος επικάλυψης.

Άξονας επιλογής Κύριες επιλογές Ρόλος
Τύπος διαμέρισης Διαμέριση βάσει κόμβων, διαμέριση βάσει στοιχείων Καθορίζει αν η ιδιοκτησία ανατίθεται ανά κόμβο ή ανά στοιχείο.
Μέθοδος διαμέρισης RCB, METIS (pMETIS / kMETIS) Καθορίζει πώς δημιουργούνται τα όρια των περιοχών.
Αριθμός περιοχών Οποιοσδήποτε θετικός ακέραιος (\(2^n\) για RCB) Καθορίζει τον αριθμό υποπεριοχών στα κατανεμημένα δεδομένα πλέγματος. Συνήθως αντιστοιχίζεται στον αριθμό διεργασιών MPI.
Βάθος επικάλυψης Ακέραιος 1 ή μεγαλύτερος Καθορίζει την περιοχή που διατηρείται πλεοναστικά από γειτονικές περιοχές. Καθορίζεται για διαμέριση βάσει κόμβων.
Πίνακες επικοινωνίας Πληροφορίες εισαγωγής/εξαγωγής, κοινόχρηστες πληροφορίες Ορίζουν την ανταλλαγή δεδομένων που απαιτείται μεταξύ γειτονικών υποπεριοχών. Δημιουργούνται αυτόματα κατά τη διαμέριση περιοχής.

Επειδή οι πίνακες επικοινωνίας περιλαμβάνονται στα κατανεμημένα δεδομένα πλέγματος, ο χρήστης συνήθως δεν χρειάζεται να τους επεξεργάζεται άμεσα. Το παράλληλο fistr1 διαβάζει τα κατανεμημένα δεδομένα πλέγματος και επιλύει τις γραμμικές εξισώσεις χρησιμοποιώντας έναν παράλληλο άμεσο επιλυτή όπως το MUMPS ή μία επαναληπτική μέθοδο.

Επιλογή διαμόρφωσης διαμέρισης περιοχής

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

Επιλέξτε τη μέθοδο διαμέρισης με βάση τη γεωμετρία και τον αριθμό περιοχών. Για απλές γεωμετρίες όπου ο αριθμός περιοχών μπορεί να είναι \(2^n\), η RCB είναι απλή και σταθερή επιλογή. Για σύνθετες γεωμετρίες ή όταν απαιτείται αυθαίρετος αριθμός περιοχών, υποψήφια επιλογή είναι η METIS, η οποία βασίζεται σε διαμέριση γράφου.

Χαρακτηριστικά προβλήματος Συνιστώμενη επιλογή
Τυπική παράλληλη δομική ανάλυση ή ανάλυση αγωγής θερμότητας Διαμέριση βάσει κόμβων
Εφαρμογές που χρησιμοποιούν κατανεμημένες πληροφορίες επικεντρωμένες στα στοιχεία, όπως συζευγμένη ανάλυση Διαμέριση βάσει στοιχείων
Απλή γεωμετρία κοντά σε ορθογώνιο παραλληλεπίπεδο, με \(2^n\) περιοχές RCB
Σύνθετη γεωμετρία ή αυθαίρετος αριθμός περιοχών METIS
Προβλήματα επαφής ή περιορισμών MPC που χρησιμοποιούν τον προρρυθμιστή SAINV Χρησιμοποιήστε διαμέριση βάσει κόμβων με βάθος επικάλυψης 2 ή μεγαλύτερο

Ο αριθμός περιοχών αντιστοιχίζεται συνήθως στον αριθμό διεργασιών MPI. Για τη διαδικασία παράλληλης εκτέλεσης και τον καθορισμό του αριθμού διεργασιών, ανατρέξτε στην Παράλληλη ανάλυση. Για τη σχέση μεταξύ του προρρυθμιστή SAINV και του βάθους επικάλυψης, ανατρέξτε επίσης στην ενότητα Επιλυτής και προρρυθμιστές.

Τύποι διαμέρισης

Ο τύπος διαμέρισης καθορίζει σε ποια οντότητα πλέγματος ανατίθεται μοναδική ιδιοκτησία από μία υποπεριοχή. Η διαμέριση βάσει κόμβων αναθέτει ιδιοκτησία στους κόμβους, ενώ η διαμέριση βάσει στοιχείων αναθέτει ιδιοκτησία στα στοιχεία. Και στις δύο περιπτώσεις, οι πληροφορίες που απαιτούνται για υπολογισμούς με γειτονικές υποπεριοχές διατηρούνται ως δεδομένα επικάλυψης.

Διαμέριση βάσει κόμβων

Στη διαμέριση βάσει κόμβων, κάθε κόμβος ανατίθεται ακριβώς σε μία υποπεριοχή-ιδιοκτήτη. Τα στοιχεία διατηρούνται με επικάλυψη στις γειτονικές υποπεριοχές. Στην είσοδο, αυτό καθορίζεται με !PARTITION, TYPE=NODE-BASED.

Έννοια της διαμέρισης βάσει κόμβων

Σχήμα 10.1 Έννοια της διαμέρισης βάσει κόμβων

Κάθε υποπεριοχή διατηρεί τους εσωτερικούς της κόμβους, τα στοιχεία που περιέχουν αυτούς τους εσωτερικούς κόμβους και τους κόμβους που συνθέτουν αυτά τα στοιχεία.

Κόμβοι και στοιχεία που διατηρούνται από κάθε υποπεριοχή στη διαμέριση βάσει κόμβων

Σχήμα 10.2 Κόμβοι και στοιχεία που διατηρούνται από κάθε υποπεριοχή στη διαμέριση βάσει κόμβων

Οι πίνακες επικοινωνίας για διαμέριση βάσει κόμβων περιέχουν τις ακόλουθες πληροφορίες.

  • Κόμβοι εισαγωγής: Κόμβοι που χρησιμοποιούνται σε μία υποπεριοχή αλλά ανήκουν σε άλλη υποπεριοχή.
  • Κόμβοι εξαγωγής: Εσωτερικοί κόμβοι που είναι κόμβοι εισαγωγής άλλης υποπεριοχής.
  • Κοινόχρηστα στοιχεία: Στοιχεία που είναι κοινά με άλλες υποπεριοχές.

Κόμβοι εισαγωγής στη διαμέριση βάσει κόμβων

Σχήμα 10.3 Κόμβοι εισαγωγής στη διαμέριση βάσει κόμβων

Κόμβοι εξαγωγής στη διαμέριση βάσει κόμβων

Σχήμα 10.4 Κόμβοι εξαγωγής στη διαμέριση βάσει κόμβων

Κοινόχρηστα στοιχεία στη διαμέριση βάσει κόμβων

Σχήμα 10.5 Κοινόχρηστα στοιχεία στη διαμέριση βάσει κόμβων

Διαμέριση βάσει στοιχείων

Στη διαμέριση βάσει στοιχείων, κάθε στοιχείο ανατίθεται ακριβώς σε μία υποπεριοχή-ιδιοκτήτη. Οι κόμβοι διατηρούνται με επικάλυψη στις γειτονικές υποπεριοχές. Στην είσοδο, αυτό καθορίζεται με !PARTITION, TYPE=ELEMENT-BASED.

Έννοια της διαμέρισης βάσει στοιχείων

Σχήμα 10.6 Έννοια της διαμέρισης βάσει στοιχείων

Κάθε υποπεριοχή διατηρεί τα εσωτερικά της στοιχεία, τους κόμβους που συνθέτουν αυτά τα εσωτερικά στοιχεία και τα στοιχεία που περιέχουν αυτούς τους κόμβους.

Κόμβοι και στοιχεία που διατηρούνται από κάθε υποπεριοχή στη διαμέριση βάσει στοιχείων

Σχήμα 10.7 Κόμβοι και στοιχεία που διατηρούνται από κάθε υποπεριοχή στη διαμέριση βάσει στοιχείων

Οι πίνακες επικοινωνίας για διαμέριση βάσει στοιχείων περιέχουν τις ακόλουθες πληροφορίες.

  • Στοιχεία εισαγωγής: Στοιχεία που χρησιμοποιούνται σε μία υποπεριοχή αλλά ανήκουν σε άλλη υποπεριοχή.
  • Στοιχεία εξαγωγής: Εσωτερικά στοιχεία που είναι στοιχεία εισαγωγής άλλης υποπεριοχής.
  • Κοινόχρηστοι κόμβοι: Κόμβοι που είναι κοινοί με άλλες υποπεριοχές.

Στοιχεία εισαγωγής στη διαμέριση βάσει στοιχείων

Σχήμα 10.8 Στοιχεία εισαγωγής στη διαμέριση βάσει στοιχείων

Στοιχεία εξαγωγής στη διαμέριση βάσει στοιχείων

Σχήμα 10.9 Στοιχεία εξαγωγής στη διαμέριση βάσει στοιχείων

Κοινόχρηστοι κόμβοι στη διαμέριση βάσει στοιχείων

Σχήμα 10.10 Κοινόχρηστοι κόμβοι στη διαμέριση βάσει στοιχείων

Για οποιονδήποτε τύπο διαμέρισης, το hecmw_part1 δημιουργεί αυτόματα τους πίνακες επικοινωνίας και τους γράφει στα κατανεμημένα δεδομένα πλέγματος. Επομένως, ο χρήστης συνήθως δεν χρειάζεται να δημιουργεί απευθείας πληροφορίες εισαγωγής/εξαγωγής.

Μέθοδοι διαμέρισης

Η μέθοδος διαμέρισης καθορίζει τον τρόπο δημιουργίας των ορίων των υποπεριοχών. Το FrontISTR υποστηρίζει την RCB που βασίζεται σε συντεταγμένες και τη METIS που βασίζεται σε διαμέριση γράφου.

Μέθοδος διαμέρισης Χαρακτηριστικά Κύριοι περιορισμοί και παρατηρήσεις
RCB Διχοτομεί αναδρομικά το πλέγμα με βάση τις τιμές των συντεταγμένων. Παρέχει γρήγορη διαμέριση για απλές γεωμετρίες. Ο αριθμός περιοχών περιορίζεται σε \(2^n\). Πρέπει να καθοριστούν οι άξονες διαμέρισης.
pMETIS Χρησιμοποιεί διαμέριση γράφου λαμβάνοντας υπόψη τη συνδεσιμότητα μεταξύ περιοχών. Διαθέσιμη σε εκδόσεις με ενεργοποιημένο METIS.
kMETIS Χρησιμοποιεί πολυμερή διαμέριση γράφου, κατάλληλη για δημιουργία ορίων περιοχών σε σύνθετες γεωμετρίες. Διαθέσιμη σε εκδόσεις με ενεργοποιημένο METIS.

RCB σημαίνει Recursive Coordinate Bisection και διχοτομεί επανειλημμένα το πλέγμα κατά μήκος αξόνων συντεταγμένων. Είναι κατάλληλη όταν ο αριθμός περιοχών μπορεί να είναι \(2^n\) και χρησιμοποιείται εύκολα για απλές γεωμετρίες τύπου κιβωτίου.

Η METIS αντιμετωπίζει τη συνδεσιμότητα του πλέγματος ως γράφο και δημιουργεί υποπεριοχές μέσω διαμέρισης γράφου. Είναι υποψήφια για σύνθετες γεωμετρίες ή όταν ο αριθμός περιοχών δεν πρέπει να περιορίζεται σε \(2^n\). Για χρήση της METIS, η βιβλιοθήκη METIS πρέπει να είναι ενεργοποιημένη κατά τη μεταγλώττιση. Για τη διαχείριση εξαρτήσεων, ανατρέξτε στις Απαιτούμενες και προαιρετικές εξαρτήσεις.

Βάθος επικάλυψης

Το βάθος επικάλυψης είναι ο αριθμός στρώσεων της περιοχής που διατηρείται πλεοναστικά από γειτονικές υποπεριοχές. Για διαμέριση βάσει κόμβων, το !PARTITION επιτρέπει να καθοριστεί με την παράμετρο DEPTH ακέραιος 1 ή μεγαλύτερος. Το προεπιλεγμένο βάθος επικάλυψης είναι 1.

Για συνήθη παράλληλη ανάλυση, το DEPTH=1 είναι επαρκές. Ωστόσο, όταν χρησιμοποιείται προρρυθμιστής της οικογένειας SAI, όπως SAINV, σε πρόβλημα επαφής ή σε πρόβλημα με περιορισμούς MPC, η αύξηση του βάθους επικάλυψης σε 2 ή περισσότερο μπορεί να βελτιώσει την ποιότητα της προρρύθμισης.

Βάθος επικάλυψης 2 ή μεγαλύτερο απαιτείται επίσης όταν η διατύπωση επιλεκτικής εξομάλυνσης ακμών/κόμβων (FORM341=SELECTIVE_ESNS) χρησιμοποιείται με το τετραεδρικό στοιχείο πρώτης τάξης 341 σε παράλληλο υπολογισμό MPI. Η εξομάλυνση βάσει ακμών και κόμβων υπολογίζει μέσους όρους μεγεθών στα στοιχεία που γειτνιάζουν με το στοιχείο-στόχο, επομένως η συναρμολόγηση της δυσκαμψίας μέσα σε μία υποπεριοχή απαιτεί πληροφορίες από στοιχεία σε απόσταση δύο επιπέδων γειτνίασης· με το προεπιλεγμένο DEPTH=1, η εξομάλυνση κοντά στα όρια περιοχών είναι ανεπαρκής. Για λεπτομέρειες της διατύπωσης στοιχείου, ανατρέξτε στη Βιβλιοθήκη στοιχείων.

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

Χειρισμός σημείων επαφής

Κατά τη διαμέριση πλέγματος που περιέχει ζεύγη επαφής, το !PARTITION επιτρέπει τη χρήση της παραμέτρου CONTACT για τον καθορισμό της πολιτικής τοποθέτησης των σημείων επαφής στις περιοχές. Η τοποθέτηση των σημείων επαφής επηρεάζει τη σταθερότητα και τον όγκο επικοινωνίας των παράλληλων αναλύσεων που περιλαμβάνουν αναζήτηση επαφής και περιορισμούς επαφής.

Τιμή Ρόλος
DEFAULT Χρησιμοποιεί την τυπική πολιτική τοποθέτησης.
SIMPLE Χρησιμοποιεί τοποθέτηση κοντά στη συνήθη διαμέριση χωρίς ειδική στάθμιση των σημείων επαφής.
AGGREGATE Διαμερίζει με τρόπο που τείνει να ομαδοποιεί τους κόμβους που σχετίζονται με ζεύγη επαφής.
DISTRIBUTE Διαμερίζει έτσι ώστε οι κόμβοι επαφής της πλευράς master να είναι λιγότερο πιθανό να συγκεντρώνονται σε συγκεκριμένες υποπεριοχές.

Για πλέγματα χωρίς επαφή, η παράμετρος CONTACT γενικά δεν απαιτεί ιδιαίτερη προσοχή. Αν η σύγκλιση ή η εξισορρόπηση φορτίου είναι προβληματική σε παράλληλη ανάλυση με επαφή, επανεξετάστε την πολιτική τοποθέτησης σημείων επαφής. Για λεπτομέρειες της σύνταξης εισόδου, ανατρέξτε στο !PARTITION.

Ανεξάρτητα από αυτό, η παράμετρος CONTACT_OWNER μπορεί να χρησιμοποιηθεί για την επιλογή του σχήματος ιδιοκτησίας στην παράλληλη επαφή. Ενώ το CONTACT καθορίζει «πώς θα γίνει η διαμέριση», το CONTACT_OWNER καθορίζει «ποια πλευρά είναι υπεύθυνη μετά τη διαμέριση».

Τιμή Ρόλος
MASTER Σχήμα ιδιοκτησίας master (προεπιλογή). Η επιφάνεια master διαμερίζεται ανά περιοχές που κατέχουν τα στοιχεία και οι κόμβοι slave αντιγράφονται σε κάθε περιοχή που κατέχει τμήμα της master.
SLAVE Σχήμα ιδιοκτησίας slave. Κάθε κόμβος slave διατηρείται μόνο από την περιοχή που τον κατέχει και ολόκληρη η επιφάνεια master τοποθετείται σε αυτή την περιοχή.

Για πεπερασμένη ολίσθηση (INTERACTION=FSLID στο !CONTACT), όταν ένας κόμβος slave διασχίζει όριο διαμέρισης περιοχής στην επιφάνεια master, το σχήμα MASTER μπορεί να διακόψει την αναζήτηση γειτνίασης στο όριο, προκαλώντας απώλεια της κατάστασης επαφής και του ιστορικού τριβής και καθιστώντας τη λύση εξαρτώμενη από τον αριθμό περιοχών. Το σχήμα SLAVE αποφεύγει αυτό το πρόβλημα. Μπορεί να καθοριστεί μόνο όταν TYPE=NODE-BASED· η χρήση μνήμης αυξάνεται στις περιοχές που κατέχουν κόμβους slave.

Εξαγωγή εικόνας διαμέρισης περιοχής

Με το !PARTITION, ο καθορισμός της παραμέτρου UCD εξάγει αρχείο UCD για τον έλεγχο του αποτελέσματος διαμέρισης. Το αρχείο UCD μπορεί να χρησιμοποιηθεί με εργαλεία οπτικοποίησης όπως το MicroAVS για την επιθεώρηση αριθμών περιοχών και ορίων διαμέρισης.

Μετά την αλλαγή του αριθμού περιοχών, της μεθόδου διαμέρισης ή του βάθους επικάλυψης, είναι σημαντικό να ελέγχεται αν υπάρχει ανισορροπία μεταξύ των διαιρεμένων περιοχών ή αφύσικος κατακερματισμός. Η έξοδος UCD είναι βοηθητική λειτουργία για την επαλήθευση της εγκυρότητας της διαμέρισης πριν από την εκτέλεση της παράλληλης ανάλυσης.

Σχετικά θέματα