วันศุกร์ที่ 22 มีนาคม พ.ศ. 2562

Multiprocessing Pool


  • เป็นอีกวิธีในการกระจาย process ต่างๆไปยัง CPU Core แต่ละ Core เพื่อช่วยในการประมวลผล
  • มีข้อดีที่สามารถ map function กับจำนวนข้อมูลเพื่อทำการกระจายไปยัง Core ต่างได้
  • สามารถเลือกจำนวนของ CPU Core ที่ต้องการใช้สำหรับทำงานได้
  • สามารถเก็บตัวแปรจากฟังค์ชันได้โดยไม่ต้องใช้ Queue
  • ลำดับของ Output จะเรียงตามลำดับของ Input ที่ป้อนเข้าไป

การปรับใช้ Pool ร่วมกับ Image Processing

  

    เราจะนำภาพที่ได้มาแยกออกเป็น 4 ส่วนเพื่อแบ่งการทำ image processing ไปในแต่ละ core ของ cpu โดย ภายใน image processing จะมีการทำ resize, convert color, Guassian blur, erode, dilate, threshold และ contour

ผลการทดสอบระหว่าง Serial และ Pool

  

     จากกราฟ ถ้าเทียบประสิทธิภาพการทำงานแบบ serial กับ Pool จะเห็นได้ว่า  เวลาในการทำงานแบบ Pool จะเร็วกว่า แบบ Serial 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น