Επεξεργαστής υλικού
Όλα τα προγράμματα υπολογιστών, συμπεριλαμβανομένου του OghmaNano, εκτελούνται σε φυσικό υλικό υπολογιστή. Υπάρχουν πολλοί συνδυασμοί υλικού που μπορούν να υπάρχουν σε οποιονδήποτε υπολογιστή, με ορισμένους υπολογιστές να διαθέτουν μεγάλο αριθμό πυρήνων CPU, ενώ άλλοι μόνο έναν. Ομοίως, οι υπολογιστές διατίθενται με διαφορετικές ποσότητες μνήμης, χώρου στον σκληρό δίσκο και GPU. Για να βοηθήσουμε τον χρήστη να αξιοποιήσει στο έπακρο το OghmaNano, υπάρχει ένας επεξεργαστής υλικού όπου ο χρήστης μπορεί να διαμορφώσει τον τρόπο με τον οποίο το OghmaNano συμπεριφέρεται σε έναν συγκεκριμένο υπολογιστή. Αυτό είναι προσβάσιμο μέσω του παραθύρου της καρτέλας προσομοίωσης (??).
Αν κάνετε κλικ εδώ, θα ανοίξει το παράθυρο του επεξεργαστή υλικού (??).
Το παράθυρο ρυθμίσεων υλικού αποτελείται από διάφορες καρτέλες, οι οποίες επιτρέπουν στον χρήστη να επεξεργαστεί τις ρυθμίσεις και επίσης να πραγματοποιήσει δοκιμές απόδοσης στη συσκευή του.
Καρτέλα διαμόρφωσης CPU/GPU
Αυτή η καρτέλα χρησιμοποιείται για τη διαμόρφωση του τρόπου με τον οποίο το OghmaNano αλληλεπιδρά με την GPU και την CPU, και περιγράφεται στον πίνακα που ακολουθεί. Όπως περιγράφεται λεπτομερώς σε άλλα μέρη αυτού του εγχειριδίου, το OghmaNano αποτελείται από δύο μέρη: το oghma_core.exe, το οποίο είναι το υπολογιστικό τμήμα, και το oghma_gui.exe, το οποίο είναι το γραφικό περιβάλλον χρήστη. Εδώ μπορείτε να ρυθμίσετε με ακρίβεια τον τρόπο λειτουργίας και των δύο αυτών τμημάτων του μοντέλου.
- Αριθμός νημάτων που χρησιμοποιεί το backend: Αυτός είναι ο μέγιστος αριθμός νημάτων που μπορεί να χρησιμοποιήσει το OghmaNano oghma_core.exe. Αυτό καθορίζει: τον αριθμό των ταυτόχρονων προσαρμογών που μπορούν να εκτελεστούν, τον μέγιστο αριθμό των προσομοιώσεων βελτιστοποίησης που μπορούν να εκτελεστούν ταυτόχρονα, τον μέγιστο αριθμό των νημάτων που χρησιμοποιούνται για τις προσομοιώσεις FDTD, τον μέγιστο αριθμό των αρχείων προσωρινής μνήμης DoS που μπορούν να δημιουργηθούν ταυτόχρονα και τον αριθμό των σημείων στον τομέα συχνοτήτων που μπορούν να υπολογιστούν ταυτόχρονα.
- Μέγιστος αριθμός ενεργών διεργασιών: Αυτό καθορίζει τον μέγιστο αριθμό διεργασιών oghma_core.exe που μπορούν να εκκινηθούν από το GUI. Εάν εκτελείται μια παράμετρος σάρωσης, αυτό θα ελέγχει τον μέγιστο αριθμό ταυτόχρονων προσομοιώσεων που μπορούν να εκτελεστούν ταυτόχρονα. Εάν η τιμή του "Αριθμός νημάτων που χρησιμοποιούνται από το backend" έχει οριστεί σε 4 και εκτελείται μια προσομοίωση FDTD, τότε εάν οριστεί ο "Μέγιστος αριθμός ενεργών διεργασιών" σε 8, το GUI θα εκκινήσει 8 διεργασίες oghma_core.exe, καθεμία από τις οποίες θα χρησιμοποιεί 4 νήματα, απαιτώντας έτσι 32 πυρήνες CPU.
- Χρόνος αναμονής: Κατά την εκτέλεση του OghmaNano σε έναν υπερυπολογιστή χωρίς επίβλεψη, ενδέχεται να σταματήσει η εκτέλεση, πιθανώς λόγω σφάλματος εισόδου/εξόδου ή σφάλματος δικτύου. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί για τον καθορισμό της μέγιστης διάρκειας μιας μεμονωμένης προσομοίωσης. Με μεμονωμένη προσομοίωση εννοώ μια μεμονωμένη καμπύλη JV, μια μεμονωμένη προσομοίωση στον χρονικό τομέα ή μια μεμονωμένη προσομοίωση στον τομέα συχνοτήτων, αλλά όχι μια ολόκληρη προσαρμογή, η οποία θα περιλαμβάνει την εκτέλεση χιλιάδων μεμονωμένων προσομοιώσεων. Έτσι, με μια τιμή 2000 δευτερολέπτων, ο επιλυτής θα τερματιστεί, εάν για παράδειγμα μια μεμονωμένη προσομοίωση JV διαρκεί περισσότερο από 2000 δευτερόλεπτα. Στην πραγματικότητα, κάθε μεμονωμένη προσομοίωση θα πρέπει να διαρκεί μόνο λίγα δευτερόλεπτα, επομένως αυτή η επιλογή λειτουργεί ως ένα απόλυτο μέτρο ασφαλείας σε περίπτωση που κάτι έχει πάει πολύ στραβά.
- Μέγιστος χρόνος εκτέλεσης: Αυτός είναι ο μέγιστος χρόνος που το oghma_core.exe μπορεί να παραμείνει στη μνήμη. Εάν οποιαδήποτε προσομοίωση ή προσαρμογή διαρκέσει περισσότερο από αυτήν την τιμή, θα τερματιστεί. Αυτό λειτουργεί ως δικλείδα ασφαλείας για να αποτρέψει τις προσομοιώσεις από το να εκτελούνται επ' αόριστον. Η προεπιλεγμένη τιμή είναι 4 ημέρες.
- Επεξεργαστές Steel: Κατά την εκτέλεση του OghmaNano σε έναν κοινόχρηστο υπολογιστή, μπορεί να συμβεί να ξεκινήσει μια προσομοίωση ενώ ένας άλλος χρήστης χρησιμοποιεί σημαντικό αριθμό πυρήνων. Μετά από κάποιο χρονικό διάστημα, οι προσομοιώσεις του άλλου χρήστη θα ολοκληρωθούν, αφήνοντας τον υπολογιστή με αδρανείς επεξεργαστές. Εάν αυτή η επιλογή είναι ρυθμισμένη σε True, το OghmaNano θα παρακολουθεί τον αριθμό των διαθέσιμων επεξεργαστών και, εάν γίνει διαθέσιμος μεγαλύτερος αριθμός, θα τους χρησιμοποιήσει.
- Ελάχιστος αριθμός CPU: Χρησιμοποιείται μαζί με την παραπάνω επιλογή "Steel CPUs" για να οριστεί ο ελάχιστος αριθμός CPU που θα χρησιμοποιηθεί.
- Αποθήκευση δεδομένων DoS στον δίσκο: Το OghmaNano αποθηκεύει πίνακες αναζήτησης στον δίσκο για να επιταχύνει τις προσομοιώσεις. Εάν αυτή η επιλογή είναι ορισμένη σε "όχι", οι πίνακες αναζήτησης δεν θα αποθηκευτούν.
- Επιτάχυνση GPU μέσω OpenCL: Αυτή η ρύθμιση ενεργοποιεί ή απενεργοποιεί την επιτάχυνση μέσω GPU, η οποία χρησιμοποιείται κυρίως κατά τη διάρκεια των προσομοιώσεων FDTD.
- Όνομα GPU: Επιλέγει την GPU που θα χρησιμοποιηθεί.
Μνήμη Newton
Όταν εκτελούνται προσομοιώσεις με μεγάλο αριθμό ODE (συνήθεις διαφορικές εξισώσεις), όπως σε 1D συσκευές με πολλά επίπεδα παγίδευσης και πολλά χωρικά σημεία, ή όταν εκτελούνται προσομοιώσεις 2D OFET, κάθε βήμα τάσης μπορεί να απαιτεί αρκετό χρόνο για να υπολογιστεί. Αυτό συμβαίνει επειδή ο επιλυτής πρέπει να επιλύσει κάθε βήμα τάσης χρησιμοποιώντας τη μέθοδο του Newton μέχρι να επιτευχθεί σύγκλιση. Για κάθε βήμα του επιλυτή, πρέπει να κατασκευαστεί η Ιακωβιανή μήτρα, να αντιστραφεί, να πολλαπλασιαστεί με τα υπόλοιπα και να υπολογιστούν οι ενημερώσεις για όλες τις μεταβλητές του επιλυτή. Αυτό μπορεί να απαιτεί σημαντικό χρόνο ανά βήμα (2000ms). Μια προσέγγιση για να παρακαμφθεί αυτό είναι να αποθηκευτούν οι προηγουμένως υπολογισμένες απαντήσεις στον δίσκο και, στη συνέχεια, όταν ο χρήστης ζητά από τον επιλυτή να υπολογίσει ένα πρόβλημα που έχει ήδη υπολογιστεί, η απάντηση μπορεί να ανακτηθεί αντί να υπολογιστεί ξανά. Αυτό είναι πολύ χρήσιμο στον σχεδιασμό OLED, όπου προσπαθεί κανείς να βελτιστοποιήσει την οπτική δομή της συσκευής, αλλά αφήνει την ηλεκτρική δομή αμετάβλητη. Μπορεί να εκτελεστούν νέες οπτικές προσομοιώσεις με ήδη προϋπολογισμένες ηλεκτρικές λύσεις. Οι επιλογές διαμόρφωσης εμφανίζονται στον πίνακα που ακολουθεί.
Η χρήση της προσωρινής μνήμης Newton συνεπάγεται κάποιο κόστος, επομένως θα τη συνιστούσα μόνο όταν η επίλυση του ηλεκτρικού προβλήματος είναι εξαιρετικά αργή. Τεχνικά, η προσωρινή μνήμη Newton λειτουργεί υπολογίζοντας το άθροισμα MD5 των επιπέδων Fermi και των δυναμικών για να δημιουργήσει μια κατακερματισμένη τιμή του ηλεκτρικού προβλήματος. Αυτή στη συνέχεια συγκρίνεται με τα δεδομένα που υπάρχουν στον δίσκο. Εάν βρεθεί μια προϋπολογισμένη απάντηση, τα επίπεδα Fermi/οι δυναμικές ενημερώνονται με τις τιμές που βρέθηκαν στον δίσκο. Η προσωρινή μνήμη αποθηκεύεται στην προσωρινή μνήμη oghma_local, όπου κάθε προηγουμένως επιλυμένη λύση αποθηκεύεται ως ένα νέο δυαδικό αρχείο. Κάθε εκτέλεση προσομοίωσης δημιουργεί ένα αρχείο ευρετηρίου όπου αποθηκεύονται όλα τα αθροίσματα MD5 από αυτήν την προσομοίωση. Όταν η προσωρινή μνήμη γεμίσει, το OghmaNano διαγράφει τα αποτελέσματα της προσομοίωσης σε παρτίδες, με βάση τα αρχεία ευρετηρίου.
- Μέγιστο μέγεθος προσωρινής μνήμης: Καθορίζει το μέγιστο μέγεθος της προσωρινής μνήμης σε Mb. Θα συνιστούσα περίπου 1Gb.
- Ελάχιστος ελεύθερος χώρος δίσκου: Καθορίζει την ελάχιστη ποσότητα χώρου δίσκου που απαιτείται για τη χρήση της προσωρινής μνήμης. Αυτή η επιλογή έχει σχεδιαστεί για να αποτρέπει την υπερφόρτωση του δίσκου από την προσωρινή μνήμη. Θα συνιστούσα να οριστεί περίπου στα 5 GB.
- Αριθμός προσομοιώσεων που θα διατηρηθούν: Αυτό θα ορίσει τον μέγιστο αριθμό εκτελέσεων προσομοίωσης που θα διατηρηθούν. Θα συνιστούσα να οριστεί μεταξύ 20 και 100.
- Ενεργοποίηση προσωρινής μνήμης: Αυτή η επιλογή ενεργοποιεί ή απενεργοποιεί την προσωρινή μνήμη του Newton. Η προεπιλεγμένη και συνιστώμενη ρύθμιση είναι "Απενεργοποίηση".
Δοκιμή υλικού (benchmark)
Στην επάνω αριστερή γωνία του παραθύρου υλικού (??) υπάρχει ένα κουμπί με την ονομασία "Έλεγχος απόδοσης υλικού". Εάν κάνετε κλικ σε αυτό, το OghmaNano θα εκτελέσει έναν έλεγχο απόδοσης του υλικού σας και τα αποτελέσματα θα εμφανίζονται στο (??). Αυτός ο έλεγχος μετρά την ικανότητα της CPU σας να υπολογίζει τις συναρτήσεις sin και exp, καθώς και να διανέμει και να απελευθερώνει μνήμη σε μπλοκ. Εμφανίζει τον χρόνο που χρειάστηκε για να εκτελεστούν μερικές χιλιάδες λειτουργίες, καθώς και μια τιμή R (γνωστή και ως τιμή Roderick). Αυτή ορίζεται ως R = Χρόνος που χρειάστηκε για την εκτέλεση του υπολογισμού στον υπολογιστή σας / Χρόνος που χρειάστηκε για την εκτέλεση του υπολογισμού στον δικό μου υπολογιστή. Επομένως, μικρότερες τιμές σημαίνουν ότι ο υπολογιστής σας είναι ταχύτερος από τον δικό μου. Ο υπολογιστής μου είναι ένας Intel(R) Core(TM) i7-4900MQ CPU @ 2.80GHz σε ένα φορητό υπολογιστή Lenovo του 2017. Επομένως, οι περισσότεροι σύγχρονοι υπολογιστές θα πρέπει να είναι ταχύτεροι. Εάν έχετε καλή απόδοση CPU, αλλά οι προσομοιώσεις σας εκτελούνται πιο αργά από τα βίντεο που έχω στο YouTube, τότε αυτό οφείλεται αναπόφευκτα σε χαμηλή ταχύτητα εισόδου/εξόδου (IO), που προκαλείται από προγράμματα προστασίας από ιούς, αποθήκευση των προσομοιώσεων στο OneDrive, χρήση δικτυακών δίσκων ή χρήση αργών συσκευών αποθήκευσης USB κ.λπ.