בנוסף להגדרת חישובים, TFF מספק כלים לביצועם. בעוד שההתמקדות העיקרית היא בסימולציות, הממשקים והכלים שאנו מספקים הם כלליים יותר. מסמך זה מתאר את אפשרויות הפריסה לסוגים שונים של פלטפורמות.
סקירה כללית
ישנם שני אופני פריסה עיקריים עבור חישובי TFF:
אחוריים מקוריים . אנו נתייחס ל-backend כמקורי אם הוא מסוגל לפרש את המבנה התחבירי של חישובי TFF כפי שהוגדרו ב-
computation.proto. קצה אחורי מקורי לא בהכרח חייב לתמוך בכל מבני השפה או המרכיבים הפנימיים. חלקים עורפיים מקוריים חייבים ליישם את אחד ממשקי ה-executor הסטנדרטיים של TFF, כגוןfederated_language.framework.Executorלצריכה על ידי קוד Python, או הגרסה הבלתי תלויה בשפה שלו המוגדרת ב-executor.protoחשופה כנקודת קצה gRPC.ניתן להשתמש בממשקים מקוריים התומכים בממשקים שלעיל באופן אינטראקטיבי במקום ברירת המחדל של זמן הריצה להפניה, למשל, להפעלת מחברות או סקריפטים של ניסוי. רוב הקצה האחורי המקורי יפעלו במצב המפורש , כלומר, הם יעבדו את הגדרת החישוב כפי שהיא מוגדרת, ויבצעו אותה בהדרגה, אבל זה לא תמיד חייב להיות המקרה. קצה אחורי מקורי יכול גם להפוך ( קומפילציה , או JIT-compile) חלק מהחישוב לביצועים טובים יותר, או כדי לפשט את המבנה שלו. שימוש נפוץ אחד לדוגמה הוא לצמצם את קבוצת האופרטורים המאוחדים המופיעים בחישוב, כך שחלקים מהזרם האחורי של הטרנספורמציה לא צריכים להיות חשופים לסט המלא.
גיבויים לא מקוריים . גיבויים לא מקוריים, בניגוד לאלו המקוריים, אינם יכולים לפרש ישירות את מבנה החישוב של TFF, ודורשים להמיר אותו לייצוג יעד אחר המובן על ידי הקצה האחורי. דוגמה בולטת ל-backend כזה תהיה אשכול Hadoop, או פלטפורמה דומה לצינורות נתונים סטטיים. על מנת שחישוב ייפרס ל-backend כזה, תחילה יש להפוך אותו (או להידור ). בהתאם להגדרה, ניתן לעשות זאת בשקיפות למשתמש (כלומר, קצה עורפי שאינו מקורי יכול להיות עטוף בממשק executor סטנדרטי כגון
federated_language.framework.Executorשמבצע טרנספורמציות מתחת למכסה המנוע), או שהוא יכול להיחשף בתור כלי המאפשר למשתמש להמיר באופן ידני חישוב, או קבוצה של חישובים, לייצוג היעד המתאים המובן על ידי המחלקה המסוימת של backends. ניתן למצוא קוד התומך בסוגים ספציפיים של קצה קצה שאינם מקוריים במרחב השמותtff.backends. בזמן כתיבת שורות אלה, סוג התמיכה היחיד של קצה גחור לא מקורי הוא סוג של מערכות המסוגלות לבצע MapReduce בסיבוב אחד.
אחוריים מקוריים
פרטים נוספים בקרוב.
גיבויים לא מקוריים
MapReduce
פרטים נוספים בקרוב.