กลับไปหน้าบทความ

อ่าน 2 นาที

ความขนานของงาน

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

ความขนานของงาน

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

คำอธิบาย

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

ตัวอย่างง่ายๆ สมมติว่าระบบกำลังรันโค้ดบนระบบประมวลผล 2 ตัว ( ซีพียู "a" และ "b") ใน สภาพแวดล้อม แบบขนานและเราต้องการทำงาน "A" และ "B" เราสามารถสั่งให้ซีพียู "a" ทำงาน "A" และซีพียู "b" ทำงาน "B" พร้อมกันได้ ซึ่งจะช่วยลดเวลาในการประมวลผลลงได้ สามารถกำหนดงานได้โดยใช้คำสั่งเงื่อนไขดังที่อธิบายไว้ด้านล่าง

การขนานงานเน้นลักษณะการกระจาย (ขนาน) ของการประมวลผล (เช่น เธรด) ตรงข้ามกับข้อมูล ( การขนานข้อมูล ) โปรแกรมจริงส่วนใหญ่จะอยู่บนเส้นต่อเนื่องระหว่างการขนานงานและการขนานข้อมูล[ 3 ]

การประมวลผลแบบขนานระดับเธรด ( Thread-level parallelismหรือTLP ) คือการประมวลผลแบบขนานที่มีอยู่ในแอปพลิเคชันซึ่งรันหลายเธรด พร้อม กัน การประมวลผลแบบขนานประเภทนี้พบได้มากในแอปพลิเคชันที่เขียนขึ้นสำหรับเซิร์ฟเวอร์ เชิงพาณิชย์ เช่น ฐานข้อมูล การรันหลายเธรดพร้อมกันทำให้แอปพลิเคชันเหล่านี้สามารถทนต่อปริมาณ I/O และความหน่วงของระบบหน่วยความจำที่สูงซึ่งอาจเกิดขึ้นจากภาระงานได้ ในขณะที่เธรดหนึ่งล่าช้าในการรอการเข้าถึงหน่วยความจำหรือดิสก์ เธรดอื่นๆ ก็สามารถทำงานที่เป็นประโยชน์ได้

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

ตัวอย่าง

รหัสเทียมด้านล่างนี้แสดงให้เห็นถึงการทำงานแบบขนานของงาน:

โปรแกรม: ... ถ้า CPU = "a" แล้ว ทำภารกิจ "A" มิฉะนั้น ถ้า CPU="b" แล้ว ทำภารกิจ "B" จบถ้า ... โปรแกรมสิ้นสุด 

เป้าหมายของโปรแกรมคือการทำงานสุทธิรวมบางอย่าง ("A+B") หากเราเขียนโค้ดดังข้างต้นและเรียกใช้บนระบบ 2 โปรเซสเซอร์ สภาพแวดล้อมการทำงานจะดำเนินการดังต่อไปนี้

  • ใน ระบบ SPMD (single program, multiple data) ซีพียู ทั้งสองตัว จะประมวลผลโค้ด
  • ในสภาพแวดล้อมแบบคู่ขนาน ทั้งสองกลุ่มจะสามารถเข้าถึงข้อมูลเดียวกันได้
  • เงื่อนไข "if" ใช้ในการแยกความแตกต่างระหว่าง CPU CPU "a" จะอ่านค่าเป็นจริงในเงื่อนไข "if" และ CPU "b" จะอ่านค่าเป็นจริงในเงื่อนไข "else if" ซึ่งหมายความว่า CPU แต่ละตัวมีหน้าที่ของตัวเอง
  • ขณะนี้ CPU ทั้งสองตัวกำลังประมวลผลบล็อกโค้ดที่แยกจากกันพร้อมกัน โดยทำงานที่แตกต่างกันไปพร้อมๆ กัน

โค้ดที่ประมวลผลโดย CPU "a":

โปรแกรม: ... ทำภารกิจ "A" ... โปรแกรมสิ้นสุด 

โค้ดที่ประมวลผลโดย CPU "b":

โปรแกรม: ... ทำภารกิจ "B" ... โปรแกรมสิ้นสุด 

แนวคิดนี้สามารถนำไปประยุกต์ใช้กับโปรเซสเซอร์จำนวนเท่าใดก็ได้แล้ว

การสนับสนุนด้านภาษา

การประมวลผลแบบขนานของงานสามารถทำได้ในภาษาโปรแกรมทั่วไปโดยใช้ฟังก์ชันในตัวหรือไลบรารี ตัวอย่างที่น่าสนใจได้แก่:

ตัวอย่างของภาษาที่สามารถ ประมวล ผลงานแบบขนานได้อย่างละเอียด สามารถพบได้ในกลุ่มภาษาสำหรับการอธิบายฮาร์ดแวร์เช่นVerilogและVHDL

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Task_parallelism&oldid=1237880513 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ความขนานของงาน

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

คำอธิบาย

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

ตัวอย่าง

รหัส เทียม ด้านล่างนี้แสดงให้เห็นถึงการทำงานแบบขนานของงาน:

การสนับสนุนด้านภาษา

การประมวลผลแบบขนานของงานสามารถทำได้ในภาษาโปรแกรมทั่วไปโดยใช้ฟังก์ชันในตัวหรือไลบรารี ตัวอย่างที่น่าสนใจได้แก่: