Skip to content

ariskaratzikos/CloudSimPy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Πλαίσιο προσομοίωσης χρονοπρογραμματισμού εργασιών κέντρου δεδομένων CloudSimPy

Το σύστημα που αναπτύξαμε βασίζεται στο πλαίσιο προσομοίωσης διακριτών γεγονότων SimPy και υλοποιείται με τη χρήση της γλώσσας Python, Το σύστημα μας, μπορεί να ενσωματωθεί καλά με πλαίσια βαθιάς μάθησης (π.χ. TensorFlow, PyTorch) που έχουν υποστήριξη της γλώωσας Python, γεγονός που μπορεί να βοηθήσει στη μελέτη της μηχανικής μάθησης ή της διαχείρισης πόρων με βάση τη βαθιά μάθηση.

Ο αλγόριθμος χρονοπρογραμματισμού εργασιών του κέντρου δεδομένων που βασίζεται στη βαθιά ενισχυτική μάθηση στο CloudSimPy/playground/DAG/algorithm/DeepJS/DQLAgent.py & ../DQLScheduler.py υλοποιούνται με τη χρήση της βιβλιοθήκης pytorch.

CloudSimPy

Ως πλαίσιο προσομοίωσης χρονοπρογραμματισμού εργασιών κέντρου δεδομένων, το CloudSimPy περιέχει δύο πακέτα Python core και playground.

Core

Το πακέτο core αφηρημένο και μοντελοποιεί τις οντότητες (entity) σε ένα πρόβλημα χρονοπρογραμματισμού εργασιών ενός κέντρου δεδομένων, το πακέτο core περιέχει τις ακόλουθες ενότητες:

  • Τα TaskInstanceConfig, TaskConfig, JobConfig στο config δίνουν τη διαμόρφωση (απαιτήσεις πόρων, διάρκεια κ.λπ.) των περιπτώσεων εργασιών, των εργασιών και των θέσεων εργασίας, αντίστοιχα.
  • job όπου TaskInstance, Task, Job αποτελούν τη δομή της μοντελοποίησης των περιπτώσεων εργασιών.
  • machine μοντελοποιεί τη μηχανή.
  • Το node μοντελοποιεί μια υπολογιστική συστάδα που αποτελείται από τρία μηχανήματα.
  • Το cluster μοντελοποιεί μια υπολογιστική συστάδα, η κλάση Cluster διατηρεί έναν κατάλογο των κόμβων πυ περιέχει.
  • αλγόριθμος ορίζει τη διεπαφή με τον αλγόριθμο χρονοπρογραμματισμού, ο οποίος πρέπει να υλοποιείται από αλγόριθμους χρονοπρογραμματισμού που ορίζονται από τον χρήστη, και είναι το κλειδί για την υλοποίηση του μοντέλου.
  • scheduler μοντελοποιεί τον χρονοπρογραμματιστή, ένα πρότυπο σχεδίασης που επιτρέπει σε διαφορετικές περιπτώσεις του Scheduler να προγραμματίζονται με διαφορετικούς αλγορίθμους χρονοπρογραμματισμού.
  • broker υλοποιεί την κλάση Broker, η οποία υποβάλλει εργασίες στη συστάδα υπολογιστών για λογαριασμό του χρήστη.
  • monitor υλοποιεί την κλάση Monitor, η οποία χρησιμοποιείται για την παρακολούθηση και την καταγραφή της κατάστασης μιας προσομοίωσης κατά τη διάρκεια της διαδικασίας προσομοίωσης.
  • Η simulation μοντελοποιεί μια προσομοίωση, η οποία πρέπει να κατασκευάσει μια περίπτωση συστάδας Cluster, να κατασκευάσει μια σειρά από περιπτώσεις διαμόρφωσης εργασιών JobConfig και να χρησιμοποιήσει αυτές τις περιπτώσεις διαμόρφωσης εργασιών για να κατασκευάσει μια περίπτωση Broker, να κατασκευάσει μια περίπτωση χρονοπρογραμματιστή Scheduler.

Playground

Το πακέτο playground έχει σχεδιαστεί για να διευκολύνει τον πειραματισμό από τους χρήστες του πακέτου και αποτελείται από το πακέτο DAG. To 'auxiliary' περιέχει συναρτήσεις που έχουν βοηθητικό ρόλο στην ανάπτυξη του συστήματος του δρομολογητή και του μοντέλου ενισχυτικής μάθησης. Το DAG είναι προ-υλοποιημένo με ορισμένους ευρετικούς αλγορίθμους χρονοπρογραμματισμού εργασιών καθώς και με αλγορίθμους χρονοπρογραμματισμού εργασιών που βασίζονται σε βαθιά ενισχυτική μάθηση, αντίστοιχα.

  • ευφυές σώμα πράκτορα, το οποίο υλοποιεί την βαθμίδα πολιτικής στην ενισχυτική μάθηση
  • εγκέφαλος TensorFlow που υλοποιεί τη δομή του νευρωνικού δικτύου
  • D

About

CloudSimPy: Datacenter job scheduling simulation framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%