-sdy-aggressive-propagate

ज़्यादा ज़रूरत पड़ने पर, ज़्यादा डेटा को अलग-अलग हिस्सों में बांटने का एल्गोरिदम चलाता है.

शार्डिंग का प्रचार करने के लिए एक आक्रामक कारक प्रचार की रणनीति का इस्तेमाल करें. बुनियादी रणनीति का इस्तेमाल, बिना किसी संघर्ष के शार्डिंग करती है, जबकि असरदार रणनीति से विवादों को सुलझाने में मदद मिलती है. ज़्यादा एग्रेसिव होने से, मेमोरी फ़ुटप्रिंट कम हो सकता है. हालांकि, बातचीत शुरू करने में लगने वाला समय भी कम हो सकता है.

विकल्प:

  • BasicPropagationPass से शुरू होने वाले सभी विकल्प
  • -propagation-strategy : फ़ैक्टर प्रॉपेगेशन की कौनसी रणनीति का इस्तेमाल करना है ### -sdy-basic-propagate

शर्डिंग प्रॉपेगेशन का बुनियादी एल्गोरिदम चलाता है.

बेसिक प्रमोशन एल्गोरिदम, हैरारकी में प्रमोशन की वह सबसे कम रणनीति है जो किसी तरह के विवाद का समाधान नहीं करती. इसके बजाय, यह ऐसे ऐक्सिस तैयार करता है जो सभी ऑपरेंड और नतीजों के साथ काम करते हैं.

विकल्प:

  • -keep-sharding-rules : मौजूदा और बनाए गए ऑप्टिमाइज़ेशन के लिए, डेटा को अलग-अलग हिस्सों में बांटने के नियमों को बनाए रखना है या नहीं
  • -module-dump-directory : डीबग करने के लिए, फिर से लिखे गए मॉड्यूल को कहां डालना है
  • -conservative-propagation : प्रॉपेगेशन के दौरान, स्प्लिट ऐक्स और ऐसे ऐक्स जिनके लिए शीयरिंग की सुविधा उपलब्ध नहीं है, इस्तेमाल करने की अनुमति है या नहीं ### -sdy-op-priority-propagate

ऑप्टिमाइज़ेशन की प्राथमिकता का प्रॉपेगेशन एल्गोरिदम चलाता है.

ऑपरेशन के लिए इस्तेमाल होने वाले हेयुरिस्टिक्स के सेट के आधार पर, इटरेटेशन में शर्डिंग को प्रॉपगेट करता है. हर हेयुरिस्टिक्स यह तय करता है कि किसी ऑपरेशन के लिए, डेटा को आगे, पीछे या दोनों दिशाओं में प्रॉपेगेट करना है या नहीं.

यह ऑप-प्राथमिकता 0 से शुरू होता है और तब तक बढ़ता रहता है, जब तक सभी ऑपहेंसिविटी खत्म नहीं हो जातीं और प्रोग्राम एक तय पॉइंट तक नहीं पहुंच जाता.

प्राथमिकता p के लिए, सभी ऑपरेशन के अनुभव की गणना 0 <= i < p से की जाती है. BOTH > BACKWARD == FORWARD > NONE के साथ, हर ऑपरेशन के लिए सबसे बेहतर डायरेक्शन चुना जाता है. अगर इस बार में, FORWARD/BACKWARD को पहले देखा जाता है, तो BACKWARD/FORWARD को देखा जाता है. इसका मतलब है कि दिशा BOTH है.

प्रमोशन के लिए यह रणनीति, एग्रेसिव प्रोपगेशन रणनीति को आगे बढ़ा देती है. इसका मतलब है कि हर ऑप-प्राथमिकता के बार में, पूरी तरह एग्रेसिव प्रमोशन लागू किया जाता है (AggressivePropagationPass देखें).

विकल्प:

  • AggressivePropagationPass से शुरू होने वाले सभी विकल्प
  • -run-op-priority-propagation : अप-प्राथमिकता को चलाना है या नहीं चलाना है ### -sdy-populate-op-sharding-rules

रजिस्टर किए गए सभी ऑपरेशन को OpShardingRuleAttr से पॉप्युलेट करता है.

रजिस्टर किए गए सभी ऑपरेशन को OpShardingRuleAttr से पॉप्युलेट करता है. इसका इस्तेमाल, रजिस्टर किए गए शर्डिंग नियमों को डीबग करने/जांच करने के लिए किया जाता है. प्रोपेगेशन पहले से ही, ज़रूरत के हिसाब से ऐसा करता है. हालांकि, यह पास एक साथ ऐसा करता है.

विकल्प

-conservative-propagation : whether to disllow rules that can propagate non-divisible sharding axes

-sdy-user-priority-propagate

उपयोगकर्ता की प्राथमिकता के हिसाब से प्रॉपर्टी को प्रसारित करने वाला एल्गोरिदम चलाता है.

सबसे ज़्यादा प्राथमिकता (सबसे कम संख्या, आम तौर पर p0) से लेकर सबसे कम प्राथमिकता (सबसे ज़्यादा संख्या) तक, शार्डिंग को बार-बार दोहराता है. दूसरे शब्दों में, i-th बार-बार दोहराए जाने पर, सिर्फ़ प्राथमिकता वाले डाइमेंशन शार्डिंग <=i ही लागू किए जाते हैं.

प्रॉपेगेशन की यह रणनीति, ऑपरेशन की प्राथमिकता के हिसाब से प्रॉपेगेशन की रणनीति को बढ़ाती है. इसका मतलब है कि उपयोगकर्ता की प्राथमिकता के हिसाब से हर बार बदलाव करने पर, ऑपरेशन की प्राथमिकता के हिसाब से पूरा प्रॉपेगेशन लागू होता है (OpPriorityPropagationPass देखें).

विकल्प:

  • OpPriorityPropagationPass से शुरू होने वाले सभी विकल्प