2010-11-21 9 views
8

बहु-कोर प्राप्त करने के लिए जावा में सबसे आसान तरीका क्या है? और इसके द्वारा, मेरा मतलब है, विशेष रूप से इस परियोजना के कुछ हिस्सों को निष्पादित करने के लिए कोर को इंगित करने के लिए, इसलिए पुराने "सामान्य" जावा धागे एक विकल्प नहीं हैं।जावा में बहु-कोर प्राप्त करना - कैसे?

अब तक, मुझे जेकोनकुर (जो जावा में बहु-कोर प्रोग्रामिंग के लिए एक ग्रहण टूलकिट है), जैम्प (जो ओपनएमपी के लिए जावा बढ़ाता है) और एमपीजे एक्सप्रेस का सुझाव दिया गया था, जिसमें से मुझे ज्यादा नहीं पता था। आप इनमें से कौन सा सर्वश्रेष्ठ मानते हैं, या आपके पास अन्य सुझाव हैं? किसी भी तरह प्रदर्शन प्रदर्शन/लाभ को सुनिश्चित करने के लिए बेहतर होगा, लेकिन अनन्य नहीं।

किसी भी मदद की बहुत सराहना की जाएगी। धन्यवाद, twentynine।

+5

क्या वह शब्दावली ("बहु-कोर प्राप्त करना") कहीं भी उपयोग की जाती है? मैं इस प्रश्न को "जावा में विशिष्ट कोरों पर चलने वाले थ्रेड" में बदल दूंगा। – ripper234

+2

मेरा मानना ​​है कि यह शब्द "प्रोसेसर एफ़िनिटी" है, जो कोर और प्रोसेसर पर लागू होता है। – ide

+0

आपको थ्रेड के लिए प्रोसेसर एफ़िनिटी सेट करने में सक्षम होने की आवश्यकता क्यों है? क्यों JVM उन निर्णयों को संभालने नहीं देते? – Darien

उत्तर

0

स्कैला इसके लिए काफी लोकप्रिय है। यह जेवीएम पर चलता है और जावा के लिए एक साथ उन्हें हुक करने के लिए बाइंडिंग करता है।

+0

बात यह है कि मुझे जावा का उपयोग करना है। कोई अन्य भाषा की अनुमति नहीं है। – twentynine

2

हालांकि जावा में बहु-थ्रेडेड कोड लिखना आसान है, जावा मानक रनटाइम में कुछ भी नहीं है जो सामान्य रूप से आपको जेवीएम या ऑपरेटिंग सिस्टम को आपके प्रोग्राम को शेड्यूल करने की अनुमति देता है।

इसलिए आपको विशेष रूप से अपने जेवीएम और/या अपने ऑपरेटिंग सिस्टम के लिए कोड होना होगा, और वह कोड जावा में करने योग्य नहीं हो सकता है (जब तक आप जेएनआई या जेएनए में नहीं जाते)। बाहरी प्रोग्राम कई यूनिक्स संस्करणों (और शायद विंडोज़) में एक सीपीयू को प्रक्रियाओं को पिन कर सकते हैं, लेकिन मुझे नहीं लगता कि आप इसे व्यक्तिगत धागे के लिए कर सकते हैं।

+0

हाँ, जावा इसका समर्थन करने के लिए "बहुत क्रॉस-प्लेटफ़ॉर्म" है ... – khachik

+0

@khachik, मुझे विश्वास नहीं है कि यही कारण है। जावा एकीकरण सुविधाओं को देखें जो जावा 6 के साथ आए हैं। असल में जावा के डिजाइनरों ने जानबूझकर प्रोग्राम चलाने से कार्यान्वयन विवरणों के _lot_ को छुपाया है। यह जेवीएम को उन तरीकों से ऑप्टिमाइज़ करने की इजाजत देता है जब तक ऐसा नहीं होता है। –

संबंधित मुद्दे