التفعيل

بالإضافة إلى تعريف العمليات الحسابية، يوفر TFF أدوات لتنفيذها. في حين أن التركيز الأساسي ينصب على عمليات المحاكاة، فإن الواجهات والأدوات التي نقدمها أكثر عمومية. يوضح هذا المستند خيارات النشر إلى أنواع مختلفة من الأنظمة الأساسية.

ملخص

هناك وضعان رئيسيان لنشر حسابات TFF:

  • الواجهات الخلفية الأصلية . سنشير إلى الواجهة الخلفية على أنها أصلية إذا كانت قادرة على تفسير البنية النحوية لحسابات TFF كما هو محدد في computation.proto . ليس من الضروري أن تدعم الواجهة الخلفية الأصلية جميع بنيات اللغة أو جوهرها. يجب أن تقوم الواجهات الخلفية الأصلية بتنفيذ إحدى واجهات منفذ TFF القياسية، مثل tff.framework.Executor للاستهلاك بواسطة كود Python، أو الإصدار المستقل عن اللغة منه المحدد في executor.proto المكشوف كنقطة نهاية gRPC.

    يمكن استخدام الواجهات الخلفية الأصلية التي تدعم الواجهات المذكورة أعلاه بشكل تفاعلي بدلاً من وقت التشغيل المرجعي الافتراضي، على سبيل المثال، لتشغيل دفاتر الملاحظات أو البرامج النصية للتجربة. ستعمل معظم الواجهات الخلفية الأصلية في الوضع المفسر ، أي أنها ستقوم بمعالجة تعريف الحساب كما هو محدد، وتنفيذه بشكل تدريجي، ولكن ليس من الضروري أن يكون هذا هو الحال دائمًا. يمكن للواجهة الخلفية الأصلية أيضًا تحويل ( ترجمة أو JIT-compile) جزء من الحساب للحصول على أداء أفضل، أو لتبسيط هيكلها. أحد الأمثلة على الاستخدام الشائع لهذا هو تقليل مجموعة العوامل الموحدة التي تظهر في الحساب، بحيث لا يلزم تعريض أجزاء من مجرى الواجهة الخلفية للتحويل إلى المجموعة الكاملة.

  • الواجهات الخلفية غير الأصلية . لا تستطيع الواجهات الخلفية غير الأصلية، على عكس الواجهات الأصلية، تفسير بنية حساب TFF بشكل مباشر، وتتطلب تحويلها إلى تمثيل مستهدف مختلف تفهمه الواجهة الخلفية. ومن الأمثلة البارزة على هذه الواجهة الخلفية مجموعة Hadoop، أو منصة مماثلة لخطوط أنابيب البيانات الثابتة. من أجل نشر الحساب على مثل هذه الواجهة الخلفية، يجب أولاً تحويله (أو تجميعه ). اعتمادًا على الإعداد، يمكن القيام بذلك بشفافية للمستخدم (على سبيل المثال، يمكن تغليف الواجهة الخلفية غير الأصلية في واجهة منفذ قياسية مثل tff.framework.Executor الذي ينفذ التحويلات تحت الغطاء)، أو يمكن كشفها كـ أداة تسمح للمستخدم بتحويل الحساب يدويًا، أو مجموعة من الحسابات، إلى تمثيل الهدف المناسب الذي تفهمه فئة معينة من الواجهات الخلفية. يمكن العثور على التعليمات البرمجية التي تدعم أنواعًا محددة من الواجهات الخلفية غير الأصلية في مساحة الاسم tff.backends . في وقت كتابة هذه السطور، كان نوع الدعم الوحيد للواجهات الخلفية غير الأصلية هو فئة من الأنظمة القادرة على تنفيذ MapReduce في جولة واحدة.

الواجهات الخلفية الأصلية

مزيد من التفاصيل قريبا.

الواجهات الخلفية غير الأصلية

MapReduce

مزيد من التفاصيل قريبا.