มันยากมากที่จะพัฒนาการแข่งขันข้อมูลที่เลวร้ายจริงๆด้วย CPU ตัวเดียว ฉันหมายความว่าคุณสามารถดึงออกมาระหว่างคำถ้าคุณขัดจังหวะซีพียูเดี่ยว แต่คุณสามารถสร้างสถานการณ์ที่แปลกใหม่โดยที่ไม่มีการสอดแทรกเธรดเดี่ยวที่คุณต้องการ?
โอเคการทำข้อบกพร่องที่ร้ายกาจอาจไม่ถือว่าเป็นการใช้ความก้าวหน้าหลายโค้ดที่ถูกต้อง ตามที่ปรากฎมีไม่มากที่ mutli-core สามารถทำเช่นนั้นแกนเดียวไม่สามารถให้เวลา เหตุผลง่าย ๆ หากคุณพยายามหลีกเลี่ยงการแข่งขันข้อมูลที่ชั่วร้ายคุณจะต้องมีจุดประสานในรหัสของคุณ หากคุณจำลองรหัสของคุณเป็นโครงร่างการคำนวณที่อินพุตต้องสมบูรณ์และซิงโครไนซ์ก่อนที่คุณจะสามารถคำนวณและสร้างผลลัพธ์ได้ง่ายที่จะเห็นว่า CPU ตัวเดียวสามารถทำงานตามแนวตาข่ายได้โดยคำนวณบล็อกที่มีอยู่ถัดไป .
ในความเป็นจริงหากคุณสามารถแสดงให้เห็นว่าอัลกอริทึมของคุณสามารถแก้ไขได้โดยเครื่องทัวริง (ซึ่งเป็นอัลกอริธึมที่เราใส่ใจ) มันสามารถพิสูจน์ได้ว่าอัลกอริทึมสามารถทำได้โดยไม่เพียง แต่ CPU แกนเดียวเท่านั้น เครื่องรัฐด้วยเทปที่ยาวมากสำหรับหน่วยความจำ!
หมากรุกตรวจจับการแข่งขันจริงยกระดับนี้เพื่อหากรณีการแข่งขัน มันรันทุกอย่างที่มีเธรดเดียวและสำรวจ interleaves ที่เป็นไปได้ทั้งหมดระหว่างเธรดพยายามหาเคสที่การทดสอบล้มเหลวเนื่องจากเคสเรซ CHESS ขึ้นอยู่กับความจริงที่ว่าคุณสามารถเรียกใช้แอพพลิเคชั่นแบบมัลติเธรดบนแกนเดียวได้
เคสที่คุณต้องการมัลติคอร์จะปรากฏขึ้นเมื่อคุณเริ่มขยายขีด จำกัด ของฮาร์ดแวร์ สิ่งที่ชัดเจนคือเมื่อคุณมีเวลา จำกัด ปัญหาบางอย่างเกี่ยวกับข้อ จำกัด ของเวลาแบบเรียลไทม์นั้นเป็นไปไม่ได้ที่จะทำแกนเดี่ยวเพราะพวกมันไม่สามารถขับเคลื่อนนาฬิกาของแกนเดียวได้เร็วพอ มีเหตุผลหลายประการที่ทำให้ซีพียูปีนขึ้นไปที่ 4Ghz แล้วตกลงลงเล็กน้อยเลือกแกนที่มากขึ้นด้วยความเร็วที่ต่ำกว่า
เวอร์ชันที่แปลกใหม่ของข้อ จำกัด เรื่องเวลานี้อยู่ในระบบเวลาจริง ในระบบเรียลไทม์ที่ยากลำบากบริการขัดจังหวะนั้นต้องการให้คุณต้องเลือกซีพียูแบบมัลติคอร์ที่ช่วยให้คุณแบ่งอินเทอร์รัปต์ข้ามคอร์หรือคุณมีข้อ จำกัด ด้านเวลา
ข้อ จำกัด อื่นเกิดขึ้นกับบัสข้อมูล พิจารณา Blue Gene / P เป็นตัวอย่าง JUGENE ซึ่งเป็นซุปเปอร์คอมพิวเตอร์ Blue Gene / P โดยเฉพาะมีหน่วยความจำ144 เทราไบต์ พวกเขาไม่ได้สร้างคอมพิวเตอร์ซีพียูเดี่ยวที่สามารถเข้าถึงหน่วยความจำทั้งหมดนั้นได้