Dokumen ini memberikan gambaran umum tentang esProc SPL, middleware komputasi data yang kuat dan gudang data efisiensi tinggi, dan Mitsuba 3, sistem rendering yang berorientasi pada penelitian. Ini merinci fitur, fungsi, dan sumber belajarnya, menawarkan wawasan untuk pengguna pemula dan berpengalaman. Informasi tersebut mencakup panduan instalasi, contoh penggunaan, dan teknik pengoptimalan kinerja.
Tentang esProc SPL
Sederhananya, esProc SPL adalah bahasa pemrograman yang menarik dan middleware komputasi data yang kuat, dan juga dapat berfungsi sebagai gudang data dengan efisiensi tinggi: temukan lebih lanjut di Memahami SPL dalam tiga aspek.
Berbeda dari bahasa pemrograman berbasis teks, SPL menulis kode dalam garis kisi: temukan lebih banyak di Bahasa pemrograman yang mengkode dalam kotak; sebagai mesin komputasi data, SPL dapat menghasilkan efisiensi tinggi dengan biaya jauh lebih rendah: esProc SPL, mesin analisis data yang mengurangi biaya aplikasi sebanyak N kali lipat.
esProc SPL adalah perpustakaan kelas komputasi data berbasis JVM: SPL: Perpustakaan Java Sumber Terbuka untuk Memproses Data Terstruktur. Ini memiliki fungsi yang jauh lebih banyak dan lebih baik daripada bahasa pemrosesan data lainnya berdasarkan JVM (Seperti Kotlin dan Scala): Persaingan bahasa pemrosesan data di JVM: Kotlin, Scala, dan SPL. Ia dapat melakukan komputasi gaya SQL tanpa database: SPL sumber terbuka yang dapat mengeksekusi SQL tanpa RDB, menyediakan kemampuan komputasi campuran multi/beragam sumber: Alat Mana yang Ideal untuk Komputasi Campuran Sumber Beragam, dan mendukung komputasi langsung pada file: Komputasi mesin pada file format terbuka dan di WEB: Mesin komputasi di WEB. Khususnya, esProc SPL memungkinkan layanan mikro yang lebih fleksibel: SPL sumber terbuka Menjadikan Layanan Mikro Lebih "Mikro" dan pemrosesan persiapan data yang nyaman untuk kueri laporan: SPL Sumber Terbuka Mengoptimalkan Aplikasi Laporan dan Menangani Kebutuhan Pengembangan Laporan yang Tak Ada Habisnya. esProc juga dapat disematkan ke dalam aplikasi untuk bertindak sebagai database bawaan: esProc SPL, penantang SQLite.
esProc SPL memperkaya konsep middleware: DCM: Anggota Baru Keluarga Middleware.
Saat bekerja sebagai gudang data, esProc SPL tidak mengadopsi sintaks SQL berbasis aljabar relasional. Ia menciptakan sistem aljabar yang disebut kumpulan data diskrit: SPL: bahasa database yang menampilkan penulisan yang mudah dan pengoperasian yang cepat (Dokumentasi: Makalah Kumpulan Data Diskrit) untuk memecahkan masalah SQL kompleks yang sulit dikodekan (Mengapa Pernyataan SQL Sering Terdiri dari Ratusan Garis, Diukur dengan KB?).
SPL memudahkan untuk mencapai algoritma berkinerja tinggi dan dengan demikian memperoleh kinerja komputasi yang jauh lebih tinggi daripada gudang data relasional tradisional: Bagaimana peningkatan kinerja dengan urutan besarnya terjadi. Temukan laporan pengujian di Pengujian Kinerja SPL. Itu dapat memanfaatkan sumber daya perangkat keras secara maksimal dengan menggunakan algoritma kreatif. Berdasarkan banyak contoh praktis, esProc dapat mencapai, bahkan melebihi, kinerja yang dimiliki database terdistribusi pada satu mesin.
Sebagai gudang data, esProc meninggalkan konsep “rumah”, mematahkan ketertutupan yang ditampilkan oleh database konvensional dan menciptakan sistem komputasi terbuka: Gudang data dengan “tanpa rumah” berkinerja lebih baik daripada gudang data dengan “rumah”, menjadikannya berkualitas untuk menggantikan sebagian besar gudang data MPP dengan biaya sumber daya yang lebih rendah dan kerangka kerja yang lebih ringan: Dengan tersedianya SPL yang ringan, seberapa pentingkah MPP? .
Untuk Mempelajari esProc SPL
Buku ini: Pemrograman SPL adalah awal yang baik untuk mempelajari sintaksis SPL. Buku ini ditujukan untuk pemula yang tidak memiliki pengalaman pemrograman. Pelajarilah dengan cepat jika Anda seorang veteran, namun pemahaman objek yang dijelaskan di bagian 4.4 layak untuk dipelajari. Bab 5 juga penting. Ini menjelaskan cara berpikir SPL yang berorientasi pada himpunan, yang sangat berbeda dari bahasa lain. Namun begitu Anda memahami dan menguasai SPL, Anda dapat menulis kode yang elegan. Bab 8-10 merupakan pokok pembelajaran SPL. Ini menganggap komputasi data terstruktur dalam perspektif yang berbeda dari SQL. Ini penting bahkan bagi programmer profesional! Dari sudut pandang SPL, SQL sedikit sederhana dalam memahami data terstruktur karena dunianya kompleks. Ilmu yang diperoleh dari berbagai kursus database kurang luas dan mendalam! Anda perlu peninjauan dan pemolesan!
Temukan konsep dasar SPL di postingan ini: Konsep SPL untuk pemula. Untuk pemula, Anda dapat menemukan karakteristik perhitungan dasar SPL di Operasi SPL untuk Pemula. Pemrogram berpengalaman dapat dengan cepat memahami perbedaan antara SPL dan SQL. Seorang arsitek perangkat lunak dapat memahami perbedaan antara SPL dan database tradisional setelah membaca Tanya Jawab Arsitektur esProc.
Temukan dokumentasi SPL yang komprehensif dalam materi Pembelajaran SPL. Secara umum, seorang pemrogram aplikasi dapat memulai menangani operasi dasar mulai dari koneksi database: SPL: Menghubungkan ke Database dan membaca/menulis database SPL: Membaca dan Menulis Data Database atau akses dan komputasi file SPL: Membaca dan Menulis File Teks Terstruktur. Kemudian Anda dapat mempelajari cara mengintegrasikan SPL dalam aplikasi Java. Cara Memanggil Script SPL di Java. Itu membuat putaran pembelajaran sederhana.
Komputasi berkinerja tinggi relatif sulit, tetapi terdapat buku sistematis tentang algoritme: Optimasi Kinerja. Algoritme pengoptimalan kinerja tidak hanya ada pada SPL. Anda dapat mengimplementasikan komputasi performa tinggi menggunakan bahasa pemrograman lain (kecuali SQL) setelah Anda mempelajari algoritme ini. Kuncinya terletak pada algoritma, bukan sintaksis. Namun, Anda perlu memahami konsep dan sintaksis SPL dengan baik untuk lebih memahami algoritmanya.
Postingan pembelajaran SPL di atas juga berisi penerapan algoritma optimasi kinerja.
Penyimpanan merupakan landasan komputasi berkinerja tinggi. Posting berikut memperkenalkan skema penyimpanan berpemilik yang umum digunakan di SPL untuk pemula: Cara menggunakan penyimpanan SPL untuk pemula. Biasanya, langkah pertama optimasi kinerja adalah merancang skema penyimpanan yang sesuai.
Anda dipersilakan untuk memposting kesulitan dan masalah Anda ketika mencoba mencapai komputasi kinerja tinggi dan berdiskusi dengan kami untuk menemukan solusinya: Dicari! Pekerjaan kueri dan batch yang sangat lambat.
Tautan Berguna
Lisensi
esProc berada di bawah lisensi Apache 2.0. Lihat file LISENSI untuk detailnya.
Penyaji Mitsuba 3
Dokumentasi
Video tutorial
Linux
macOS
jendela
PyPI
️
Peringatan
️
Saat ini terdapat sejumlah besar pekerjaan tidak terdokumentasi dan tidak stabil yang terjadi
cabang utama. Kami sangat menyarankan Anda menggunakan kami
rilis terbaru
sampai pemberitahuan lebih lanjut.
Jika Anda sudah ingin mencoba perubahan yang akan datang, silakan lihat
panduan porting ini.
Ini harus mencakup sebagian besar fitur baru dan perubahan penting yang akan datang.
Perkenalan
Mitsuba 3 adalah sistem rendering berorientasi penelitian untuk cahaya maju dan mundur
simulasi transportasi dikembangkan di EPFL di Swiss.
Ini terdiri dari perpustakaan inti dan satu set plugin yang mengimplementasikan fungsionalitas
mulai dari bahan dan sumber cahaya hingga algoritma rendering lengkap.
Mitsuba 3 dapat ditargetkan ulang: ini berarti implementasi yang mendasarinya dan
struktur data dapat bertransformasi untuk menyelesaikan berbagai tugas berbeda. Untuk
Misalnya, kode yang sama dapat mensimulasikan transpor RGB skalar (klasik satu sinar pada satu waktu).
atau transportasi spektral diferensial pada GPU. Ini semua didasarkan pada
Dr.Jit, kompiler just-in-time (JIT) khusus yang dikembangkan khusus untuk proyek ini.
Fitur Utama
Lintas platform: Mitsuba 3 telah diuji di Linux (x86_64), macOS
(aarch64, x8664), dan Windows (x8664).
Performa tinggi: Kompiler Dr.Jit yang mendasarinya menggabungkan kode rendering
menjadi kernel yang mencapai kinerja canggih dengan menggunakan
backend LLVM yang menargetkan CPU dan backend CUDA/OptiX
menargetkan GPU NVIDIA dengan akselerasi perangkat keras ray tracing.
Python pertama: Mitsuba 3 terintegrasi secara mendalam dengan Python. Bahan,
tekstur, dan bahkan algoritma rendering penuh dapat dikembangkan dengan Python,
yang dikompilasi oleh sistem JIT (dan secara opsional dibedakan) dengan cepat.
Hal ini memungkinkan eksperimen yang diperlukan untuk penelitian dalam grafik komputer dan
disiplin ilmu lainnya.
Diferensiasi: Mitsuba 3 adalah penyaji yang dapat dibedakan, artinya itu
dapat menghitung turunan dari keseluruhan simulasi sehubungan dengan masukan
parameter seperti pose kamera, geometri, BSDF, tekstur, dan volume. Dia
mengimplementasikan algoritma rendering terdiferensiasi terbaru yang dikembangkan di EPFL.
Spektral & Polarisasi: Mitsuba 3 dapat digunakan sebagai monokromatik
penyaji, penyaji berbasis RGB, atau penyaji spektral. Setiap varian bisa
secara opsional memperhitungkan efek polarisasi jika diinginkan.
Video tutorial, dokumentasi
Kami telah merekam beberapa video YouTube yang memberikan pengenalan lembut
Mitsuba 3 dan Dr.Jit. Selain itu, Anda dapat menemukan buku catatan Juypter lengkap
mencakup berbagai aplikasi, panduan cara kerja, dan dokumentasi referensi
di readthedocs.
Instalasi
Kami menyediakan roda biner yang telah dikompilasi sebelumnya melalui PyPI. Menginstal Mitsuba dengan cara ini semudah menjalankannya
pip instal mitsuba
pada baris perintah. Paket Python mencakup tiga belas varian secara default:
skalar_rgb
skalar_spektral
skalarspektralterpolarisasi
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Dua yang pertama melakukan simulasi klasik satu sinar pada satu waktu menggunakan RGB
atau representasi warna spektral, sedangkan dua yang terakhir dapat digunakan untuk invers
rendering pada CPU atau GPU. Untuk mengakses varian tambahan, Anda perlu melakukannya
kompilasi versi khusus Dr.Jit menggunakan CMake. Silakan lihat
dokumentasi
untuk rincian tentang ini.
Persyaratan
Piton >= 3.8
(opsional) Untuk komputasi pada GPU: driver Nvidia >= 495.89
(opsional) Untuk komputasi vektor/paralel pada CPU: LLVM >= 11.1
Penggunaan
Berikut adalah contoh sederhana "Hello World" yang menunjukkan betapa sederhananya merender a
adegan menggunakan Mitsuba 3 dari Python:
# Impor perpustakaan menggunakan alias "mi"impor mitsuba sebagai mi# Atur varian renderermi.setvariant('scalarrgb')# Muat scene = mi.loaddict(mi.cornellbox())# Render sceneimg = mi. render(adegan)# Tulis gambar yang dirender ke file EXRmi.Bitmap(img).write('cbox.exr')
Tutorial dan contoh buku catatan yang mencakup berbagai aplikasi dapat ditemukan
dalam dokumentasi.
Tentang
Proyek ini dibuat oleh Wenzel Jakob.
Fitur-fitur penting dan/atau perbaikan pada kode disumbangkan oleh
Sébastien Speierer,
Nicolas Roussel,
Merlin Nimier-David,
Delio Vicini,
Tizian Zeltner,
Baptiste Nicolet,
Miguel Crespo,
Vincent Leroy, dan
Ziyi Zhang.
Saat menggunakan Mitsuba 3 dalam proyek akademik, harap kutip:
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob dan Sébastien Speierer dan Nicolas Roussel dan Merlin Nimier-David dan Delio Vicini dan Tizian Zeltner dan Baptiste Nicolet dan Miguel Crespo dan Vincent Leroy dan Ziyi Zhang},catatan = {https://mitsuba-renderer.org},versi = {3.1.1},tahun = 2022}