मैं एक थ्रेड पूल के लिए विभिन्न शेड्यूलिंग एल्गोरिदम की जांच कर रहा हूं जिसे मैं कार्यान्वित कर रहा हूं। समस्या की प्रकृति के कारण मैं हल कर रहा हूं, मैं मान सकता हूं कि समानांतर में चल रहे कार्यों स्वतंत्र हैं और किसी भी नए कार्य को नहीं बढ़ाते हैं। कार्य विभिन्न आकारों का हो सकता है।क्या काम हमेशा सबसे उपयुक्त उपयोगकर्ता-स्तरीय थ्रेड शेड्यूलिंग एल्गोरिदम चोरी कर रहा है?
मैं स्थानीय नौकरी कतारों के लिए लॉक-फ्री डेक का उपयोग करके सबसे लोकप्रिय शेड्यूलिंग एल्गोरिदम "काम चोरी" के लिए तुरंत गया, और मैं इस दृष्टिकोण से अपेक्षाकृत खुश हूं। हालांकि मैं सोच रहा हूं कि क्या कोई आम मामला है जहां काम-चोरी सबसे अच्छा तरीका नहीं है।
इस विशेष समस्या के लिए मेरे पास प्रत्येक व्यक्तिगत कार्य के आकार का एक अच्छा अनुमान है। कार्य-चोरी इस जानकारी का उपयोग नहीं करती है और मैं सोच रहा हूं कि कोई शेड्यूलर है जो इस जानकारी के साथ काम-चोरी के मुकाबले बेहतर भार-संतुलन प्रदान करेगा (जाहिर है उसी दक्षता के साथ)।
एनबी। यह प्रश्न पिछले question से जुड़ा हुआ है।
मुझे इस उप-विषय के बारे में बहुत कुछ पता है, लेकिन शायद इस संबंधित प्रश्न पर कुछ उत्तर उपयोगी होंगे: http://stackoverflow.com/questions/2552810/work-stealing-vs-work-shrugging –