Difference between revisions of "Team Lion"
Byungho Kim (talk | contribs) (→Image Processing Performance Using Parallel Programming) |
Byungho Kim (talk | contribs) (→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 10:05, 5 April 2016
GPU621/DPS921 | Participants | Groups and Projects | Resources | Glossary
Contents
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.
Convolution
Edge Handling
All pixels in edges need special treatment.
- Extend
- Tile
- Crop
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.
Test Result
Conclusion
- Performance depends on number of cores.
- OpenMP is easy to use. Much easier than normal(POSIX) Thread method.