Parbegin/Parend เป็นโครงสร้างการเขียนโปรแกรมที่เกิดขึ้นพร้อมกันซึ่งใช้เพื่อระบุการดำเนินการแบบขนานของคำสั่งหรือกระบวนการต่างๆ 02รหัส> คำหลักทำเครื่องหมายจุดเริ่มต้นของบล็อกคู่ขนาน ในขณะที่ 10 เป็นจุดสิ้นสุดของมัน คำสั่งทั้งหมดภายในบล็อกนี้ดำเนินการพร้อมกันแทนที่จะดำเนินการตามลำดับ
วิธีการทำงานของ Parbegin/Parend
เมื่อโปรเซสเซอร์พบ 29 คำสั่งจะสร้างเธรดการดำเนินการแยกกันสำหรับแต่ละคำสั่งภายในบล็อก เธรดเหล่านี้ทำงานพร้อมกันจนกว่าการดำเนินการทั้งหมดจะเสร็จสมบูรณ์ ณ จุดควบคุมจะย้ายไปยังคำสั่งที่ตามหลัง 31 .
ลำดับการดำเนินการ Parbegin/Parend S1 parbegin S2 S3 S4 parend S5 ลำดับ การดำเนินการขนานตามลำดับ
ไวยากรณ์
begin S1; -- Sequential execution parbegin -- Start parallel block S2; -- Execute concurrently S3; -- Execute concurrently S4; -- Execute concurrently parend; -- End parallel block S5; -- Sequential execution end;
ตัวอย่าง Parbegin/Parend ที่ซ้อนกัน
begin S1; parbegin S3; begin S2; parbegin S4; S5; parend; S6; end; parend; S7; end;
ไทม์ไลน์การดำเนินการ ? เวลา Parbegin/Parend ที่ซ้อนกัน S1 S3 S2 S4 S5 S6 S7 S3 || (S2; S4||S5; S6) ลำดับการดำเนินการตามลำดับ:1. S1 ดำเนินการตามลำดับ 2. S3 และบล็อกที่ซ้อนกันดำเนินการในแบบคู่ขนาน 3. ภายในบล็อกที่ซ้อนกัน:S2 จากนั้น S4||S5 ขนาน จากนั้น S6
ข้อดี
-
การดำเนินการแบบขนาน กระบวนการหลายกระบวนการทำงานพร้อมกัน ปรับปรุงประสิทธิภาพโดยรวมและปริมาณงาน
-
การออกแบบแบบแยกส่วนทำให้สามารถแบ่งงานที่ซับซ้อนออกเป็นองค์ประกอบคู่ขนานที่เป็นอิสระเพื่อองค์กรที่ดีขึ้น
-
การใช้ทรัพยากรทำให้ใช้งานโปรเซสเซอร์แบบมัลติคอร์และสถาปัตยกรรมฮาร์ดแวร์แบบขนานได้ดีขึ้น
-
ความชัดเจนของโค้ด แสดงออกถึงเจตนาของการขนานอย่างชัดเจน ทำให้อัลกอริธึมที่เกิดขึ้นพร้อมกันสามารถอ่านได้ง่ายขึ้น
ข้อเสีย
-
ปัญหาการซิงโครไนซ์ สภาวะการแข่งขันและข้อมูลที่ไม่สอดคล้องกันอาจเกิดขึ้นเมื่อกระบวนการเข้าถึงทรัพยากรที่ใช้ร่วมกัน
-
การดีบักการดำเนินการแบบขนานที่ซับซ้อนทำให้การติดตามโฟลว์ของโปรแกรมและระบุจุดบกพร่องทำได้ยากขึ้น
-
ค่าใช้จ่ายด้านทรัพยากร การสร้างและการจัดการเธรด/กระบวนการหลายรายการต้องใช้ทรัพยากรระบบเพิ่มเติม
-
ข้อจำกัดด้านฮาร์ดแวร์ความขนานที่จำกัดอาจจำกัดระดับที่แท้จริงของความขนานที่เกิดขึ้นได้
เปรียบเทียบกับการดำเนินการตามลำดับ
บทสรุป
โครงสร้าง Parbegin/Parend เปิดใช้งานการเขียนโปรแกรมแบบขนานที่ชัดเจนโดยอนุญาตให้หลายคำสั่งดำเนินการพร้อมกันภายในบล็อกที่กำหนด แม้ว่าสิ่งเหล่านี้จะมอบคุณประโยชน์ด้านประสิทธิภาพผ่านการทำงานแบบขนาน แต่การพิจารณาอย่างรอบคอบเกี่ยวกับความท้าทายในการซิงโครไนซ์และการแก้ไขจุดบกพร่องถือเป็นสิ่งสำคัญสำหรับการนำไปปฏิบัติอย่างมีประสิทธิผล