Difference between revisions of "Team Lion"

From CDOT Wiki
Jump to: navigation, search
(Image Processing Performance Using Parallel Programming)
(Image Processing Performance Using Parallel Programming)
Line 1: Line 1:
 
{{GPU621/DPS921 Index | 20161}}
 
{{GPU621/DPS921 Index | 20161}}
 
= Image Processing Performance Using Parallel Programming =
 
= Image Processing Performance Using Parallel Programming =
This assignment introduces simple image processing using MPI 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 ==
 
== Team Lion Member ==
 
Byungho Kim
 
Byungho Kim
 +
  
 
== Basic Concept of Image Processing ==
 
== Basic Concept of Image Processing ==
Line 18: Line 20:
  
 
[[Image:GPU621-LION-2.png|640px]]
 
[[Image:GPU621-LION-2.png|640px]]
 
  
 
[[Image:GPU621-LION-3.png|640px]]
 
[[Image:GPU621-LION-3.png|640px]]
Line 31: Line 32:
  
 
[[Image:GPU621-LION-4.png|640px|Edge Handling(Extend)]]
 
[[Image:GPU621-LION-4.png|640px|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.
 +
 +
[[Image:GPU621-LION-6-2.png|640px|Edge Handling(Extend)]]
 +
 +
[[Image:GPU621-LION-6.png|640px|Edge Handling(Extend)]]
 +
 +
 +
== Test Result ==
 +
[[Image:GPU621-LION-5.png|640px|Edge Handling(Extend)]]
 +
 +
[[Image:GPU621-LION-7.png|640px|Edge Handling(Extend)]]
 +
 +
[[Image:GPU621-LION-8.png|640px|Edge Handling(Extend)]]
 +
 +
 +
== Conclusion ==
 +
*Performance depends on number of cores.
 +
*OpenMP is easy to use. Much easier than normal(POSIX) Thread method.
 +
 +
 +
== Source Code ==

Revision as of 11:05, 5 April 2016


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