Deployment

Selain mendefinisikan komputasi, TFF menyediakan alat untuk mengeksekusinya. Meskipun fokus utamanya adalah pada simulasi, antarmuka dan alat yang kami sediakan lebih umum. Dokumen ini menguraikan opsi penerapan ke berbagai jenis platform.

Ringkasan

Ada dua mode penerapan utama untuk komputasi TFF:

  • Backend asli . Kami akan menyebut backend sebagai backend asli jika backend tersebut mampu menafsirkan struktur sintaksis komputasi TFF seperti yang didefinisikan dalam computation.proto . Backend asli tidak harus mendukung semua konstruksi bahasa atau intrinsik. Backend asli harus mengimplementasikan salah satu antarmuka eksekutor TFF standar, seperti tff.framework.Executor untuk digunakan oleh kode Python, atau versi independen bahasa yang ditentukan dalam executor.proto yang diekspos sebagai titik akhir gRPC.

    Backend asli yang mendukung antarmuka di atas dapat digunakan secara interaktif sebagai pengganti runtime referensi default, misalnya, untuk menjalankan buku catatan atau skrip eksperimen. Sebagian besar backend asli akan beroperasi dalam mode interpretasi , yaitu, mereka akan memproses definisi komputasi sebagaimana didefinisikan, dan menjalankannya secara bertahap, namun hal ini tidak selalu harus terjadi. Backend asli juga dapat mengubah ( kompilasi , atau kompilasi JIT) bagian komputasi untuk performa yang lebih baik, atau untuk menyederhanakan strukturnya. Salah satu contoh penggunaan umum dari hal ini adalah untuk mengurangi kumpulan operator gabungan yang muncul dalam komputasi, sehingga bagian backend hilir transformasi tidak harus diekspos ke kumpulan lengkap.

  • Backend non-asli . Backend non-asli, berbeda dengan backend asli, tidak dapat secara langsung menafsirkan struktur komputasi TFF, dan mengharuskannya diubah menjadi representasi target berbeda yang dipahami oleh backend. Contoh penting dari backend tersebut adalah cluster Hadoop, atau platform serupa untuk pipeline data statis. Agar komputasi dapat diterapkan ke backend tersebut, komputasi harus diubah (atau dikompilasi ) terlebih dahulu. Tergantung pada pengaturannya, hal ini dapat dilakukan secara transparan kepada pengguna (yaitu, backend non-native dapat dibungkus dalam antarmuka eksekutor standar seperti tff.framework.Executor yang melakukan transformasi secara tersembunyi), atau dapat diekspos sebagai alat yang memungkinkan pengguna mengonversi komputasi, atau serangkaian komputasi, secara manual ke dalam representasi target yang sesuai dan dipahami oleh kelas backend tertentu. Kode yang mendukung tipe backend non-native tertentu dapat ditemukan di namespace tff.backends . Pada saat penulisan ini, satu-satunya jenis dukungan backend non-native adalah kelas sistem yang mampu mengeksekusi MapReduce satu putaran.

Backend Asli

Detail lebih lanjut akan segera hadir.

Backend Non-Asli

Pengurangan Peta

Detail lebih lanjut akan segera hadir.