Devito ist ein Python-Paket zur Implementierung optimierter Schablonenberechnungen (z. B. endliche Differenzen, Bildverarbeitung, maschinelles Lernen) aus symbolischen Problemdefinitionen auf hoher Ebene. Devito baut auf SymPy auf und nutzt automatisierte Codegenerierung und Just-in-Time-Kompilierung, um optimierte Rechenkerne auf mehreren Computerplattformen, einschließlich CPUs, GPUs und deren Clustern, auszuführen.
Devito bietet eine funktionale Sprache zur Implementierung anspruchsvoller Operatoren, die aus mehreren Schablonenberechnungen, Randbedingungen, dünn besetzten Operationen (z. B. Interpolation) und vielem mehr bestehen können. Ein typischer Anwendungsfall sind explizite Finite-Differenzen-Methoden zur Approximation partieller Differentialgleichungen. Beispielsweise kann ein 2D-Diffusionsoperator mit Devito wie folgt implementiert werden
>> > grid = Grid ( shape = ( 10 , 10 ))
>> > f = TimeFunction ( name = 'f' , grid = grid , space_order = 2 )
>> > eqn = Eq ( f . dt , 0.5 * f . laplace )
>> > op = Operator ( Eq ( f . forward , solve ( eqn , f . forward )))
Ein Operator
generiert Low-Level-Code aus einer geordneten Sammlung von Eq
(das obige Beispiel bezieht sich auf eine einzelne Gleichung). Dieser Code kann auch kompiliert und ausgeführt werden
>> > op ( t = timesteps , dt = dt )
Der Komplexität eines Operator
sind praktisch keine Grenzen gesetzt – der Devito-Compiler analysiert automatisch die Eingabe, erkennt und wendet Optimierungen an (einschließlich Parallelität mit einem und mehreren Knoten) und generiert schließlich Code mit geeigneten Schleifen und Ausdrücken.
Zu den Hauptmerkmalen gehören:
Der einfachste Weg, Devito auszuprobieren, ist über Docker mit den folgenden Befehlen:
# get the code
git clone https://github.com/devitocodes/devito.git
cd devito
# start a jupyter notebook server on port 8888
docker-compose up devito
Nachdem Sie den letzten Befehl oben ausgeführt haben, zeigt das Terminal eine URL wie https://127.0.0.1:8888/?token=XXX
an. Kopieren Sie diese URL und fügen Sie sie in ein Browserfenster ein, um eine Jupyter-Notebook-Sitzung zu starten, in der Sie die mit Devito bereitgestellten Tutorials durchgehen oder Ihre eigenen Notebooks erstellen können.
Detaillierte Installationsanweisungen und andere Optionen finden Sie hier. Wenn während der Installation ein Problem auftritt, sehen Sie sich bitte die Installationsprobleme an, die wir in der Vergangenheit gesehen haben.
Um zu lernen, wie man Devito verwendet, finden Sie hier einen guten Ausgangspunkt mit vielen Beispielen und Tutorials.
Die Website bietet auch Zugriff auf andere Informationen, einschließlich Dokumentation und Anweisungen für die Zitierung von uns.
Einige FAQs werden hier besprochen.
Wenn Sie an einem der folgenden Themen interessiert sind
Dann sollten Sie einen Blick auf diese README-Datei werfen.
Wenn Sie Devito verwenden, würden wir gerne von Ihnen hören. Beteiligen Sie sich an der Unterhaltung, ganz gleich, ob Sie auf Probleme stoßen oder es einfach nur ausprobieren.
Das Tutorial-Jupyter-Notebook ist interaktiv im öffentlichen Ordner JupyterHub verfügbar.