Devito adalah paket Python untuk mengimplementasikan komputasi stensil yang dioptimalkan (misalnya, perbedaan terbatas, pemrosesan gambar, pembelajaran mesin) dari definisi masalah simbolik tingkat tinggi. Devito dibangun di atas SymPy dan menggunakan pembuatan kode otomatis dan kompilasi just-in-time untuk mengeksekusi kernel komputasi yang dioptimalkan pada beberapa platform komputer, termasuk CPU, GPU, dan clusternya.
Devito menyediakan bahasa fungsional untuk mengimplementasikan operator canggih yang dapat terdiri dari beberapa perhitungan stensil, kondisi batas, operasi renggang (misalnya interpolasi), dan banyak lagi. Kasus penggunaan yang umum adalah metode beda hingga eksplisit untuk memperkirakan persamaan diferensial parsial. Misalnya, operator difusi 2D dapat diimplementasikan dengan Devito sebagai berikut
>> > 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 )))
Operator
menghasilkan kode tingkat rendah dari kumpulan Eq
yang diurutkan (contoh di atas adalah untuk persamaan tunggal). Kode ini juga dapat dikompilasi dan dieksekusi
>> > op ( t = timesteps , dt = dt )
Kompleksitas Operator
hampir tidak ada batasnya -- compiler Devito akan secara otomatis menganalisis input, mendeteksi dan menerapkan optimasi (termasuk paralelisme node tunggal dan multi-node), dan pada akhirnya menghasilkan kode dengan loop dan ekspresi yang sesuai.
Fitur utama meliputi:
Cara termudah untuk mencoba Devito adalah melalui Docker menggunakan perintah berikut:
# 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
Setelah menjalankan perintah terakhir di atas, terminal akan menampilkan URL seperti https://127.0.0.1:8888/?token=XXX
. Salin-tempel URL ini ke jendela browser untuk memulai sesi buku catatan Jupyter tempat Anda dapat mengikuti tutorial yang disediakan dengan Devito atau membuat buku catatan Anda sendiri.
Lihat di sini untuk petunjuk instalasi terperinci dan opsi lainnya. Jika Anda mengalami masalah saat instalasi, silakan lihat masalah instalasi yang pernah kita lihat sebelumnya.
Untuk mempelajari cara menggunakan Devito, berikut adalah tempat yang baik untuk memulai, dengan banyak contoh dan tutorial.
Situs web ini juga menyediakan akses ke informasi lain, termasuk dokumentasi dan instruksi untuk mengutip kami.
Beberapa FAQ dibahas di sini.
Jika Anda tertarik pada salah satu hal berikut ini
maka Anda harus melihat README ini.
Jika Anda menggunakan Devito, kami ingin mendengar pendapat Anda. Apakah Anda menghadapi masalah atau hanya mencobanya, bergabunglah dalam percakapan.
Tutorial jupyter notebook tersedia secara interaktif di public binder jupyterhub.