Triển khai

Ngoài việc xác định các phép tính, TFF còn cung cấp các công cụ để thực hiện chúng. Trong khi trọng tâm chính là mô phỏng thì các giao diện và công cụ chúng tôi cung cấp lại tổng quát hơn. Tài liệu này phác thảo các tùy chọn để triển khai cho các loại nền tảng khác nhau.

Tổng quan

Có hai phương thức triển khai chính để tính toán TFF:

  • Các chương trình phụ trợ gốc . Chúng ta sẽ gọi một chương trình phụ trợ là bản địa nếu nó có khả năng diễn giải cấu trúc cú pháp của các phép tính TFF như được định nghĩa trong computation.proto . Một chương trình phụ trợ gốc không nhất thiết phải hỗ trợ tất cả các cấu trúc hoặc nội tại của ngôn ngữ. Các chương trình phụ trợ gốc phải triển khai một trong các giao diện thực thi TFF tiêu chuẩn, chẳng hạn như tff.framework.Executor để sử dụng bằng mã Python hoặc phiên bản độc lập với ngôn ngữ của nó được xác định trong executor.proto được hiển thị dưới dạng điểm cuối gRPC.

    Các chương trình phụ trợ gốc hỗ trợ các giao diện trên có thể được sử dụng một cách tương tác thay cho thời gian chạy tham chiếu mặc định, ví dụ: để chạy sổ ghi chép hoặc tập lệnh thử nghiệm. Hầu hết các chương trình phụ trợ gốc sẽ hoạt động ở chế độ thông dịch , tức là chúng sẽ xử lý định nghĩa tính toán như được xác định và thực thi nó theo từng bước, nhưng điều này không phải lúc nào cũng đúng. Một chương trình phụ trợ gốc cũng có thể biến đổi ( biên dịch hoặc biên dịch JIT) một phần của quá trình tính toán để có hiệu suất tốt hơn hoặc để đơn giản hóa cấu trúc của nó. Một ví dụ về cách sử dụng phổ biến của việc này là giảm tập hợp các toán tử liên kết xuất hiện trong tính toán, sao cho các phần của dòng phụ trợ của quá trình chuyển đổi không phải hiển thị với tập hợp đầy đủ.

  • Phần phụ trợ không phải bản địa . Các chương trình phụ trợ không phải gốc, trái ngược với các chương trình phụ trợ gốc, không thể diễn giải trực tiếp cấu trúc tính toán TFF và yêu cầu nó phải được chuyển đổi thành một biểu diễn mục tiêu khác mà chương trình phụ trợ có thể hiểu được. Một ví dụ đáng chú ý về phần phụ trợ như vậy sẽ là cụm Hadoop hoặc một nền tảng tương tự cho các đường dẫn dữ liệu tĩnh. Để một tính toán được triển khai vào một chương trình phụ trợ như vậy, trước tiên nó phải được chuyển đổi (hoặc được biên dịch ). Tùy thuộc vào thiết lập, việc này có thể được thực hiện một cách minh bạch đối với người dùng (nghĩa là phần phụ trợ không phải gốc có thể được gói trong giao diện thực thi tiêu chuẩn, chẳng hạn như tff.framework.Executor thực hiện các phép biến đổi bên trong) hoặc nó có thể được hiển thị dưới dạng một công cụ cho phép người dùng chuyển đổi thủ công một phép tính hoặc một tập hợp các phép tính thành biểu diễn mục tiêu phù hợp được hiểu bởi lớp phụ trợ cụ thể. Mã hỗ trợ các loại phụ trợ không phải gốc cụ thể có thể được tìm thấy trong không gian tên tff.backends . Tại thời điểm viết bài này, loại hỗ trợ duy nhất của các chương trình phụ trợ không phải gốc là một lớp hệ thống có khả năng thực thi MapReduce một vòng.

Phần cuối gốc

Thêm chi tiết đến sớm.

Phần cuối không phải bản địa

Bản đồGiảm

Thêm chi tiết đến sớm.