Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
Χρήση του λογισμικού OpenCARP στην υποδομή "Αριστοτέλης"
Γενικά περί αξιοποίησης Η/Υ για ερευνητικές ανάγκες
- Η εκάστοτε θεωρία μας δίνει εξισώσεις που είτε λύνονται αναλυτικά είτε αριθμητικά
- Οι αναλυτικές επιλύσεις είναι σπάνιες
- Οι αριθμητικές επιλύσεις απαιτούν υπολογιστικό κόστος ώστε να λυθούν οι εξισώσεις στο πεδίο. Η αριθμητική επίλυση ενός πεδίου ονομάζεται και προσομοίωση και απαιτεί υπολογιστική ισχύ.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Χρησιμοποιούμε Η/Υ για την αριθμητική επίλυση εξισώσεων.
Πεδία εφαρμογής
- Κλιματική αλλαγή και επιστήμες Γης
- Δομική ανάλυση
- Μετάδοση θερμότητας
- Ρευστοδυναμική
- Αστροφυσική
- Ηλεκτρομαγνητισμός
- Βιοπληροφορική κ.α.
Πλήθος αριθμητικών πράξεων στη μονάδα του χρόνου
- Το πλήθος των υπολογισμών στη μονάδα του χρόνου εξαρτάται από την ταχύτητα του επεξεργαστή και το εύρος διαμεταγωγής δεδομένων από και προς τη μνήμη RAM
- Μετριέται σε FLOPs (Floating Point Operations per second) και συνήθως μας ενδιαφέρει το πλήθος πράξεων με double precision floating points
- Το θεωρητικό μέγιστο εξαρτάται κυρίως από τα χαρακτηριστικά του επεξεργαστή
- Η πραγματική (μετρούμενη) τιμή εξαρτάται από τον κώδικα, από τις βελτιστοποιήσεις που θα κάνει ο compiler (μεταγλωττιστής) ή και όσες έχει υλοποιήσει ο προγραμματιστής (code optimization).
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Με τον όρο κώδικα αναφερόμαστε στον πηγαίο κώδικα μίας εφαρμογής. Συνήθως ο κώδικας μεταγλωτίζεται σε γλώσσα μηχανής (εκτελέσιμο) με τη χρήση ενός compiler (μεταγλωτιστή). Παραδείγματα τέτοιων γλωσσών είναι η C, C++, FORTRAN κ.α.. Υπάρχουν και interpreted γλώσσες προγραμματισμού (π.χ. Python, MATLAB κ.α.) στις οποίες η μεταγλώτιση γίνεται δυναμικά στο runtime οπότε δεν παρεμβάλεται μεταγλωτιστής που να παράγει ένα εκτελέσιμο. Συνήθως οι compiled γλώσσες παράγουν ταχύτερα εκτελέσιμα σε σύγκριση με τις interpreted γλώσσες.
Περί παράλληλου προγραμματισμού
- Από το ~2005 και έκτοτε δεν αυξάνεται η συχνότητα των επεξεργαστών αλλά το πλήθος τους (multi core αρχιτεκτονικές).
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
- Αυτή η εξέλιξη έχει οδηγήσει στην υιοθέτηση μεθόδων παράλληλου προγραμματισμού όπου ζητούμενο είναι η ταυτόχρονη εκμετάλευση των πολλών επεξεργαστών.
- Τα βασικά μοντέλα παραλληλίας είναι:
- Shared memory parallel processing ή SMP με βιβλιοθήκες όπως OpenMP, pThreads κ.α.
- Distributed memory parallel processing ή DMP με βιβλιοθήκες όπως MPI
- Το DMP μοντέλο μπορεί να κάνει scale σε πολλά μηχανήματα ενώ το SMP μπορεί να κάνει scale μόνο εντός ενός H/Y
- Σε μεγάλους υπερυπολογιστές είναι σύνηθες να χρησιμοποιούνται και τα δύο επίπεδα παραλληλίας (DMP accross nodes και SMP inter node)
- Επιπέον τα τελευταία χρόνια έχει βρει έδαφος η χρήση Co-processors όπως GPUs (π.χ. CUDA, OpenACC κ.α.) ή/και FPGAs (programmable chips) για την επιτάχυνση των υπολογισμών
- Για να είναι αποδοτική η DMP παραλληλία απαιτείται η διασύνδεση των Η/Υ να γίνεται με δικτύωση χαμηλής απόκρισης (~μs)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Υποδομές που διαθέτουν τα παραπάνω χαρακτηριστικά αναφέρονται γενικώς ως συστοιχίες υπολογιστών. Επίσης χρησιμοποιούνται οι όροι HPC (High Performance Computing) ή Supercomputer (υπερυπολογιστής) όταν αναφερόμαστε σε συστοιχίες υπολογιστών.
Οι σημερινοί (Απρίλιος 2024) υπερυπολογιστές "σπάνε" το φράγμα του HFlop δηλαδή 10^18 υπολογισμών ανά δευτερόλεπτο. Η ταξινόμησή τους βασίζεται στο Linpack benchmark και η λίστα των κορυφαίων υπερυπολογιστών ενημερώνεται δύο φορές ετησίως στο top500.org.
Υποδομή HPC του ΑΠΘ "Αριστοτέλης"
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Η/Υ (server) ίδιων χαρακτηριστικών ομαδοποιούνται σε partitions (ή ουρές)
Partition Name |
Number of nodes |
Number of CPU Cores per node |
Memory per node |
CPU/GPU Type |
login nodes |
3 |
64 |
64GB |
AMD Epyc Rome/- |
batch |
20 |
20 |
128GB |
Intel Broadwell/- |
rome |
17 |
256 |
256GB/1TB |
AMD Epyc Rome/- |
ondemand |
12 |
12 |
48GB |
Intel Cascade Lake/RTX 6000 |
… |
… |
… |
… |
|
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Πιο λεπτομερής καταγραφή: https://hpc.it.auth.gr/nodes-summary/
Πρόσβαση στον "Αριστοτέλη"
- Πρόσβαση δικαιούνται όλα τα μέλη του ΑΠΘ.
- Μέσω γραμμής εντολών (Windows Powershell, MacOS Terminal, Linux Terminal)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Οδηγίες πρόσβασης με γραμμή εντολών: https://hpc.it.auth.gr/intro/
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Οδηγίες πρόσβασης μέσω browser: https://hpc.it.auth.gr/web-portal/
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Εισαγωγή στη γραμμή εντολών του Linux: https://hackmd.io/@pkoro/H1bqSpwXp
Διαθέσιμα λογισμικά
- Στη συστοιχία "Αριστοτέλης" υπάρχει διαθέσιμη μία πλειάδα λογισμικών. Από βασικές υπολογιστικές βιβλιοθήκες (π.χ.
fftw
, openblas
), μεταγλωτιστές (π.χ. gcc
, intel
), interpreters (π.χ. python
, mathematica
, matlab
, R
), βιβλιοθήκες παράλληλου προγραμματισμού (π.χ. openmpi
, julia
), διεπαφές χρηστών (π.χ. Jyputer
, RStudio
, PyCharm
) εώς και ολοκληρωμένα πακέτα εφαρμογών (π.χ. ANSYS
, OpenFOAM
, OpenCARP
, Einstein Toolkit
).
- Καθώς ένα πακέτο λογισμικού μπορεί να είναι (και συνήθως είναι) εγκατεστημένο σε πολλαπλές εκδόσεις χρησιμοποιούνται modulefiles για τη διαχείριση λογισμικών. Δηλαδή π.χ. για να "φορτώσουμε" την εντολή
R
στο περιβάλλον χρήσης είναι απαραίτητο να έχουμε φορτώσει πρώτα το σχετικό modulefile.
- Παράδειγμα χρήσης
R
(έκδοση 4.3.0
)
Δομή modulefiles
Η δομή των modulefiles είναι ιεραρχική, έτσι οι βιβλιοθήκες ή εφαρμογές που έχουν γίνει compile με ένα συγκεκριμένο compiler γίνονται διαθέσιμες μόνο εφόσον έχουμε φορτώσει στο περιβάλλον το δεδομένο compiler.
Στο πρώτο επίπεδο της ιεραρχίας βρίσκονται οι compilers.
Στο δεύτερο επίπεδο βρίσκονται οι περισσότερες εφαρμογές. Για να τις δούμε όμως θα πρέπει πρώτα να φορτώσουμε ένα compiler.
Κάποιες εφαρμογές που είναι παράλληλες (αξιοποιούν τη χρήση μίας mpi βιβλιοθήκης) βρίσκονται σε τρίτο επίπεδο.
Χρήση spider
Για να δούμε ποιά modulefiles θα χρειαστεί πρώτα να φορτώσουμε προκειμένου να κάνουμε μία εφαρμογή διαθέσιμη στο περιβάλλον χρήσης μπορούμε να χρησιμοποιούμε την module spider
. Π.χ. για να δούμε ποιές επιλογές έχουμε διαθέσιμες για να "φορτώσουμε" την βιβλιοθήκη fftw
(Fastest Fourier Transform in the West) μπορούμε να εκτελέσουμε την εξής εντολή:
Βλέπουμε ότι η συγκερκιμένη βιβλιοθήκη (fftw/3.3.8
) υπάρχει τέσσερις φορές εγκατεστημένη και για να την φέρουμε στο περιβάλλον χρήσης θα πρέπει να φορτώσουμε πρώτα ένα συνδυασμό του gcc και του openmpi, π.χ.:
Slurm scheduler
- Προκειμένου οι χρήστες του "Αριστοτέλη" να μην χρησιμοποιούν ταυτόχρονα τους ίδιους πόρους "μπροστά" από τα partitions βρίσκεται ένας χρονοδρομολογητής (scheduler) εργασιών που αποφασίζει ποιά εργασία ποιού/-ας χρήστη θα τρέξει σε ποιό (ή ποιά) μηχανήματα.
- Ο χρήστης καθορίζει τις απαιτήσεις του εκάστοτε job με κατάλληλες ντιρεκτίβες που ο slurm scheduler αντιλαμβάνεται. Με βάση αυτές κάνει το matchmaking χρηστών, εργασιών και διαθέσιμων πόρων. Στόχος του scheduler είναι να χρησιμοποιούνται οι πόροι στο maximum.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Αναλυτική τεκμηρίωση slurm directives: https://hpc.it.auth.gr/jobs/slurm/
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Παράδειγμα εργασίας που θέλουμε να εκτελεστεί παράλληλα (DMP) σε 4 μηχανήματα του batch partition
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Παράδειγμα εργασίας που θέλουμε να εκτελεστεί παράλληλα (SMP) σε "μισό" μηχάνημα του rome partition
Υποβολή εργασιών
- Εφόσον έχουμε ετοιμάσει ένα script (έστω
run.sh
) η υποβολή γίνεται με την εντολή sbatch
, π.χ.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Στην έξοδό της η sbatch
επιστρέφει ένα ID (auto increment integer) που είναι μοναδικό για κάθε εργασία (job) που υποβάλλουμε με sbatch
.
- Για να δούμε την κατάσταση της εργασίας χρησιμοποιούμε την
squeue
, π.χ.
- Όσο εκτελείται μία εργασία μπορούμε να παρακολουθούμε την έξοδό της από το login node
- Αν θέλουμε να σταματήσουμε την εκτέλεση μίας εργασίας την κάνουμε cancel με την εντολή
scancel
Έλεγχος απόδοσης μιάς ολοκληρωμένης εργασίας
Για να δούμε μία εργασία που έχει ολοκληρωθεί πόσους πόρους αξιοποίησε πραγματικά (σε σχέση με όσους δεσμεύτηκαν) και αν τελικά ήταν αποδοτική μπορούμε να χρησιμοποιήσουμε την εντολή seff
, π.χ. ως εξής:
Έλεγχος κατάστασης ενός partition
Για να δούμε την καταληψιμότητα ενός partition μπορούμε να χρησιμοποιήσουμε την εντολή sinfo
, π.χ. ως εξής:
OpenCARP
- Front page: https://opencarp.org/
openCARP
is an open cardiac electrophysiology simulator for in-silico experiments
- https://www.sciencedirect.com/science/article/pii/S0169260721002972
- Ο solver (
openCARP simulator
) είναι υλοποιημένος σε C++ και χρησιμοποιεί τη μέθοδο των πεπερασμένων στοιχείων (FEM) για την επίλυση των ηλεκτροχημικών και ρευστοδυναμικών πεδίων. Η άδεια χρήσης είναι ανοιχτή για ακαδημαϊκή χρήση.
- Για παραλληλία χρησιμοποιείται η βιβλιοθήκη MPI (DMP μοντέλο παραλληλίας)
- Τα
carputils
είναι υλοποιημένα σε python (Apache 2.0 open source)
- Υποστηρίζονται αρκετές επιλογές για δεδομένα εισόδου (π.χ.
CellML
) και για δεδομένα εξόδου (π.χ. VTK
format)
Demo @"Αριστοτέλης"
Η προεγκατεστημένη έκδοση που θα χρησιμοποιήσουμε στα παραδείγματα είναι η 11.0
.
Αρχικοποίηση ρυθμίσεων
- Για την εκτέλεση της εφαρμογής openCARP χρειάζεται να έχουμε φτιάξει ένα αρχείο ρυθμίσεων στο φάκελο
~/.config/carputils/settings.yaml
. Εάν το αρχείο αυτό υπάρχει ήδη τότε το βήμα αυτό μπορεί να παραληφθεί. Αν όχι το βήμα αυτό θα χρειαστεί να το εκτελέσετε μόνο μία φορά πριν την εκτέλεση των παραδειγμάτων που ακολουθούν.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Έλεγχος ύπαρξης αρχείου ρυθμίσεων
Για να δούμε αν υπάρχει το αρχείο ρυθμίσεων εκτελούμε την παρακάτω εντολή:
Αν υπάρχει τότε μπορούμε να προχωρήσουμε παρακάτω
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Εφόσον το αρχείο ρυθμίσεων δεν υπάρχει για να το κατασκευάσουμε κατόπιν νέου login εκτελούμε διαδοχικά τις εξής δύο εντολές:
Παραδείγματα χρήσης
Ξεκινάμε κάνοντας clone το openCARP experiments repository.
Single Cell
Έπειτα μεταβαίνουμε στο φάκελο του παραδείγματος
Για να αποθηκεύονται τα plots που παράγονται από την batch εργασία, μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή:
Με την παραπάνω αντικαθιστούμε τις εντολές plt.show
της matplotlib
που χρησιμοποιούνται για την εμφάνιση μίας γραφικής παράστασης, με εντολές plt.savefig
που αποθηκεύουν σε ένα αρχείο το ίδιο αποτέλεσμα. Έτσι, αφού ολοκληρωθεί η εργασία, θα πρέπει να έχει παραχθεί το αρχείο myplot.png
.
Στην συνέχεια, συντάσουμε ένα νέο αρχείο (έστω run.sh
) με τα εξής περιεχόμενα:
η υποβολή της εργασίας γίνεται με την εντολή sbatch
ως εξής:
Παρακολουθούμε με την εντολή squeue
την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
Μόλις η εργασία ολοκληρωθεί, μπορούμε να δούμε ότι στον φάκελο υποβολής έχει παραχθεί το directory με τα αρχεία εξόδου exp01
.
Μπορούμε να δούμε και το περιεχόμενά του, για παράδειγμα ως εξής:
Basic tissue EP
Μεταβαίνουμε στο φάκελο όπου περιέχεται το συγκεκριμένο παράδειγμα
Για το συγκεκριμένο παράδειγμα το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:
Η υποβολή της εργασίας γίνεται με την εντολή sbatch
, όπως στο προηγούμενο παράδειγμα.
Λίστες δημοσιεύσεων
Οι ερευνητικές δημοσιεύσεις που προκύπτουν από την αξιοποίηση των πόρων της συστοιχίας "Αριστοτέλης" αναρτόνται στον εξής σύνδεσμο:
Ερωτήσεις/Απαντήσεις