क्या LINQ के withDegreeOfParallelism
पर स्कैला समांतर संग्रहों में कोई समतुल्य है जो क्वेरी चलाने वाले धागे की संख्या निर्धारित करता है? मैं समानांतर में एक ऑपरेशन चलाने के लिए चाहता हूं जिसके लिए सेट की संख्या निर्धारित होनी चाहिए।समानांतरता की स्केल समांतर संग्रह की डिग्री
उत्तर
, JVM 1.6 या नए का उपयोग कर, का उपयोग करें:
collection.parallel.ForkJoinTasks.defaultForkJoinPool.setParallelism(parlevel: Int)
यह भविष्य में बदलाव के लिए एक विषय है, हालांकि हो सकता है। सभी स्काला कार्य समांतर एपीआई को कॉन्फ़िगर करने के लिए एक और एकीकृत दृष्टिकोण अगले रिलीज के लिए योजनाबद्ध है।
नोट, हालांकि, यह निर्धारित करेगा कि यह पूछताछ प्रोसेसर की संख्या निर्धारित करेगा, यह क्वेरी चलाने में शामिल थ्रेड की वास्तविक संख्या नहीं हो सकती है। चूंकि समांतर संग्रह नेस्टेड समांतरता का समर्थन करते हैं, इसलिए वास्तविक थ्रेड पूल कार्यान्वयन क्वेरी को चलाने के लिए अधिक थ्रेड आवंटित कर सकता है यदि यह पता चलता है कि यह आवश्यक है।
संपादित करें:
स्काला 2.10 से शुरू, समानांतरवाद स्तर सेट करने के लिए पसंदीदा तरीका निम्न उदाहरण में, एक नया TaskSupport
वस्तु को tasksupport
क्षेत्र की स्थापना के माध्यम से है:
scala> import scala.collection.parallel._
import scala.collection.parallel._
scala> val pc = mutable.ParArray(1, 2, 3)
pc: scala.collection.parallel.mutable.ParArray[Int] = ParArray(1, 2, 3)
scala> pc.tasksupport = new ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(2))
pc.tasksupport: scala.collection.parallel.TaskSupport = [email protected]
scala> pc map { _ + 1 }
res0: scala.collection.parallel.mutable.ParArray[Int] = ParArray(2, 3, 4)
instantiating जबकि एक फोर्क जॉइन पूल के साथ ForkJoinTaskSupport
ऑब्जेक्ट, फोर्क में शामिल पूल के समांतरता स्तर को वांछित मान (2
उदाहरण में) पर सेट किया जाना चाहिए।
स्काला 2.9+ (शुरू की समानांतर संग्रह) के साथ JVM संस्करण, की स्वतंत्र रूप से, आप भी grouped(Int)
और par
कार्यों का एक संयोजन इस तरह, छोटे-छोटे टुकड़ों पर समानांतर नौकरियों निष्पादित करने के लिए उपयोग कर सकते हैं:
scala> val c = 1 to 5
c: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5)
scala> c.grouped(2).seq.flatMap(_.par.map(_ * 2)).toList
res11: List[Int] = List(2, 4, 6, 8, 10)
grouped(2)
लंबाई 2 या उससे कम के टुकड़े बनाता है, seq
यह सुनिश्चित करता है कि भाग का संग्रह समानांतर नहीं है (इस उदाहरण में बेकार), तो _ * 2
फ़ंक्शन को छोटे समांतर हिस्सों (par
के साथ बनाया गया) पर निष्पादित किया जाता है, इस प्रकार यह सुनिश्चित करता है कि अधिकतम 2 धागे समानांतर में निष्पादित किया जाता है।
हालांकि यह कार्यकर्ता पूल पैरामीटर सेट करने से थोड़ा कम कुशल हो सकता है, मुझे इसके बारे में निश्चित नहीं है।
- 1. समांतर संग्रह
- 2. स्कैला समांतर संग्रह रनटाइम गूढ़
- 3. समांतर बैच स्क्रिप्ट्स की प्रतीक्षा
- 4. जावा में पहले से उपलब्ध समांतर संग्रहों की तुलना में स्केल समानांतर संग्रह कुछ तरीकों से बेहतर हैं?
- 5. दशमलव अक्षांश/देशांतर डिग्री की अधिकतम लंबाई?
- 6. स्कैला 2.9 में समांतर संग्रह और अभिनेता
- 7. स्कैला समांतर संग्रह के साथ दौड़ की स्थिति से कैसे बचें
- 8. नीचे की दिशा में ऊपर की दिशा में स्केल div?
- 9. स्केल संग्रह में उत्परिवर्तनीय बनाम अपरिवर्तनीय
- 10. संग्रह की ग्रोवी मानचित्र विधि
- 11. स्केल में `टाइप` और` # `कीवर्ड की जांच
- 12. मोबाइल विकास में एंड्रॉइड की तरह एक मास्टर डिग्री है?
- 13. स्केल
- 14. समांतर
- 15. समांतर
- 16. समांतर
- 17. समांतर
- 18. समांतर
- 19. समांतर
- 20. समांतर। संग्रह में कई बार आइटमरिंग आइटमों के लिए
- 21. सूची <T> है।() संग्रह संग्रह की गणना?
- 22. 180 डिग्री
- 23. ओपनएमपी: समानांतरता घोंसले का क्या फायदा है?
- 24. समांतर
- 25. 45 डिग्री
- 26. मूर के कानून को समांतर कंप्यूटिंग की आवश्यकता क्यों है?
- 27. स्केल
- 28. 360 डिग्री
- 29. समांतर
- 30. समांतर
मुझे संदेह है कि यह वास्तव में आपको कुछ भी प्राप्त करेगा। मुझे इसे साबित करने वाले बेंचमार्क नंबरों को देखना होगा। –