एक सीपीयू के साथ वास्तव में दकियानूसी डेटा दौड़ को विकसित करना बहुत कठिन है। मेरा मतलब है, निश्चित रूप से, यदि आप एक सीपीयू को बाधित करते हैं, तो आप शब्दों के बीच फाड़ को खींच सकते हैं, लेकिन क्या आप विदेशी परिदृश्यों का निर्माण कर सकते हैं जहां धागों की एक भी इंटरलेविंग नहीं होती है जो आपको चाहिए?
ठीक है, शायद कपटी बग बनाने से बहु-कोड प्रगति का एक वैध उपयोग के रूप में गिनती नहीं होती है। जैसा कि यह पता चला है, ऐसा नहीं है कि उत्परिवर्ती-कोर ऐसा कर सकते हैं कि एकल कोर को समय नहीं दिया जा सकता है। वजह साफ है। यदि आप उन दुष्ट डेटा दौड़ से बचने की कोशिश करते हैं, तो आपको अपने कोड में सिंक्रोनाइज़ेशन पॉइंट रखना होगा। यदि आप अपने कोड को गणनाओं के एक जाली के रूप में मॉडल करते हैं, जहां इनपुट्स को गणना करने और आउटपुट उत्पन्न करने से पहले पूर्ण और सिंक्रनाइज़ होना चाहिए, तो यह देखना आसान है कि एक एकल सीपीयू बस जाली के साथ अपने तरीके से काम कर सकता है, अगले उपलब्ध ब्लॉक की गणना कर सकता है ।
वास्तव में, यदि आप प्रदर्शित कर सकते हैं कि आपके एल्गोरिथ्म को ट्यूरिंग मशीन द्वारा हल किया जा सकता है (जो कि लगभग हर एल्गोरिथ्म जिसकी हमें परवाह है), तो यह साबित किया जा सकता है कि एल्गोरिथ्म न केवल एक कोर सीपीयू द्वारा किया जा सकता है, बल्कि वास्तव में एक स्मृति के लिए टेप का एक बहुत लंबा टुकड़ा के साथ राज्य मशीन!
CHESS दौड़ डिटेक्टर वास्तव में इस का लाभ उठाता है दौड़ मामलों खोजने के लिए। यह सब कुछ चलाता है और व्यवस्थित रूप से धागे के बीच सभी संभावित इंटरलेव्स की खोज करता है, उन मामलों को खोजने की कोशिश करता है जहां एक दौड़ के मामले के कारण एक परीक्षा विफल हो जाती है। CHESS इस तथ्य पर निर्भर करता है कि आप किसी भी मल्टीथ्रेड एप्लिकेशन को किसी एक कोर पर चला सकते हैं।
ऐसे मामले जहां आपको मल्टीकोर की जरूरत होती है, जब आप हार्डवेयर की सीमा खींचना शुरू करते हैं। स्पष्ट एक है जब आपके पास समय की कमी है। रीयलटाइम टाइम की कमी के साथ कुछ समस्याएं सिंगल कोर को करना असंभव हैं क्योंकि वे केवल एक कोर की घड़ी को तेजी से ड्राइव नहीं कर सकते हैं। एक कारण है कि सीपीयू 4 जीएचज तक चढ़ गया और फिर कम गति पर अधिक कोर को प्राथमिकता देते हुए थोड़ा नीचे बस गया।
इस समय की कमी का एक अधिक विदेशी संस्करण कठिन-वास्तविक समय प्रणालियों में है। कुछ कठिन वास्तविक समय प्रणालियों में, इंटरप्ट की सेवा इतनी मांग है कि आपको वास्तव में एक मल्टी-कोर सीपीयू चुनना होगा जो आपको कोरप में इंटरप्ट को विभाजित करने देता है, या आप समय सीमा में चलते हैं।
डेटा बूस के साथ एक और सीमा उत्पन्न होती है। एक उदाहरण के रूप में ब्लू जीन / पी पर विचार करें। विशेष रूप से ब्लू जीन / पी सुपरकंप्यूटर की JUGENE में 144 टेराबाइट्स मेमोरी है। वे बस एक ही सीपीयू कंप्यूटर नहीं बनाते हैं जो कि सभी मेमोरी को एक्सेस कर सके।