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


