Skip to main content

อัลกอริทึมแบบกระจายคืออะไร?

อัลกอริทึมแบบกระจายเป็นอัลกอริทึมประเภทเฉพาะที่ใช้กับซอฟต์แวร์คอมพิวเตอร์ที่ต้องใช้โปรเซสเซอร์ที่เชื่อมต่อระหว่างกันอัลกอริทึมแบบกระจายมีหน้าที่รับผิดชอบในการเรียกใช้ส่วนต่าง ๆ ของอัลกอริทึมในเวลาเดียวกันแต่ละตัวในโปรเซสเซอร์ที่แตกต่างกันโปรเซสเซอร์จะต้องสื่อสารซึ่งกันและกันเพื่อให้ซอฟต์แวร์ทำงานได้อย่างถูกต้อง

เพื่อทำความเข้าใจอัลกอริทึมแบบกระจายซึ่งง่ายที่สุดในการตรวจสอบว่าอัลกอริทึมทั่วไปคืออะไรอัลกอริทึมเป็นกระบวนการที่กำหนดไว้ซึ่งสรุปตั้งแต่ต้นจนจบขั้นตอนที่ต้องดำเนินการเพื่อให้กระบวนการที่ต้องการเสร็จสิ้นหรือแก้ปัญหาตัวอย่างเช่นอัลกอริทึมสำหรับการส่งจดหมายจะไปตามสายของ:

1รับซอง
2.เปิดซองจดหมาย
3แทรกตัวอักษร
4ซองจดหมายปิด
5แนบแสตมป์

สิ่งนี้จะดำเนินต่อไปจนกว่ากระบวนการจะเสร็จสมบูรณ์ขั้นตอนบางอย่างอาจแยกออกเป็นขั้นตอนอื่น ๆสิ่งเหล่านี้จะบอกบุคคลว่าจะทำอย่างไรถ้าเขาไม่สามารถทำขั้นตอนหลักได้อย่างใดอย่างหนึ่งและในที่สุดก็จะนำเขากลับไปสู่อัลกอริทึมดั้งเดิมสิ่งสำคัญคืออัลกอริทึมจะต้องมีจุดจบในที่สุดไม่ว่าเส้นทางใดที่บุคคลนั้นจะไปถึงมัน

ทางเทคนิคทุกสิ่งที่เป็นกระบวนการที่กำหนดอาจเป็นอัลกอริทึมเช่นตัวอย่างข้างต้นสำหรับการส่งจดหมายอัลกอริทึมคอมพิวเตอร์เป็นอัลกอริทึมที่ออกแบบมาเพื่อบอกคอมพิวเตอร์ว่าต้องทำอะไรมันมีจุดเริ่มต้นและขั้นตอนจบด้วยหลายขั้นตอนในระหว่างมันช่วยให้คอมพิวเตอร์ดำเนินการและสั่งให้ทำสิ่งที่ต้องทำหากมีอะไรผิดพลาดหากไฟล์ความต้องการของคอมพิวเตอร์หายไปอาจสั่งให้ข้ามขั้นตอนนั้นหรือทำขั้นตอนอื่นในสถานที่

ความแตกต่างระหว่างอัลกอริทึมและอัลกอริทึมแบบกระจายเป็นเพียงว่าอัลกอริทึมแบบกระจายถูกออกแบบมาเพื่อทำงานบนโปรเซสเซอร์แยกต่างหากในขณะที่อัลกอริทึมคอมพิวเตอร์ทั่วไปจะไม่เป็นโปรเซสเซอร์แต่ละตัวกำลังดำเนินการส่วนที่แตกต่างกันของอัลกอริทึมโดยรวมในเวลาเดียวกันจากนั้นส่งผลลัพธ์

มีปัญหาหลายอย่างที่เกิดขึ้นเมื่อใช้อัลกอริทึมแบบกระจายหนึ่งในโปรเซสเซอร์อาจล้มเหลวทำให้ส่วนหนึ่งของอัลกอริทึมหยุดทำงานนอกจากนี้ยังอาจมีปัญหาการสื่อสารระหว่างโปรเซสเซอร์ซึ่งจะทำให้อัลกอริทึมแบบกระจายไม่ให้ถึงจุดสิ้นสุดของกระบวนการโปรแกรมเมอร์การศึกษาจำนวนมากกระจายอัลกอริทึมเพื่อหาวิธีที่จะเอาชนะปัญหาเหล่านี้และตรวจสอบให้แน่ใจว่าอัลกอริทึมเสร็จสมบูรณ์แม้ว่าจะมีข้อผิดพลาดทางเทคนิค