Team Lion

From CDOT Wiki
Revision as of 10:05, 5 April 2016 by Byungho Kim (talk | contribs) (Image Processing Performance Using Parallel Programming)
Jump to: navigation, search


GPU621/DPS921 | Participants | Groups and Projects | Resources | Glossary

Image Processing Performance Using Parallel Programming

This assignment introduces simple image processing using MPI parallel programming. This assignment also explains about performance comparison from 1 core to 16 cores.


Team Lion Member

Byungho Kim


Basic Concept of Image Processing

  • Convolution between image and filter(kernel)
  • Each processing of pixel independent from another pixels
  • Can be used for Edge finding, Blur and image enhancement.

GPU621-LION-1.png


Convolution

GPU621-LION-2.png

GPU621-LION-3.png


Edge Handling

All pixels in edges need special treatment.

  • Extend
  • Tile
  • Crop

Edge Handling(Extend)


False Sharing Consideration

  • Threading each pixel – The worst
  • Threading each row – Good
  • Threading multiple rows band – The best


Test Environment Consideration

  • How to test performance more than 4 cores computer.


Azure VM Environment

  • Cloud service from Microsoft
  • You can rent many kind of Virtual Machines.
  • Access remotely using Windows Remote Desktop Connection.

Edge Handling(Extend)

Edge Handling(Extend)


Test Result

Edge Handling(Extend)

Edge Handling(Extend)

Edge Handling(Extend)


Conclusion

  • Performance depends on number of cores.
  • OpenMP is easy to use. Much easier than normal(POSIX) Thread method.


Source Code