1 / 22

Parallel Image Processing

Parallel Image Processing. Programming and Architecture. IST PhD Lunch Seminar . Wouter Caarls. Quantitative Imaging Group. Why Parallel?. Processing time Smaller timesteps, more scales, faster response times Memory Larger images, more dimensions Energy consumption

bakerg
Download Presentation

Parallel Image Processing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parallel Image Processing Programming and Architecture IST PhD Lunch Seminar Wouter Caarls Quantitative Imaging Group

  2. Why Parallel? • Processing time • Smaller timesteps, more scales, faster response times • Memory • Larger images, more dimensions • Energy consumption • More applications, smaller devices

  3. Data parallelism • Many image processing operations have locality of reference (segmentation, filtering, distance transforms, etc.) • Data parallelism

  4. Task farm parallelism • An application consists of many different operations • Some of these operations are independent (scale spaces, parameter sweeps, noise realizations, etc.) • Task farm parallelism

  5. Pipeline parallelism • An image processing algorithm consists of consecutive stages • If multiple objects are to be processed, they may be in different stages at the same time • Pipeline parallelism

  6. Parallel hardware architecturesFine grained • Irregular • Superscalar (most modern microprocessors) • VLIW (DSPs) • Regular • Vector (supercomputers, MMX) • SIMD (graphics processors) • Custom • FPGA

  7. Parallel hardware architecturesCoarse grained • Homogeneous • Multi-core, SMP • Cluster • Heterogeneous • Embedded systems • Grid

  8. Obstacles • Programming • Synchronization, bookkeeping • Different systems, languages, optimization strategies • Choosing an architecture • Analyze program before it is written • Additional requirements or unexpected performance may require rewrite

  9. Architecture-independent parallel programming • Data parallelism • Differentiate between synchronization pattern and computation • Library provides pattern, user provides computation • Task farm & pipeline parallelism • Operations do not work on images, but on streams • Sequences of operation calls do not imply an order, but a stream graph.

  10. + = + = Algorithmic Skeletons

  11. Pixel Neighbourhood Recursive neighbourhood Stack Filter Associative reduction Example skeletons

  12. Constructing stream graphs capture normalize • By program (dynamic) capture(orig); normalize(orig, norm); dx(orig, x_der, 1.0); dy(orig, y_der, 1.0); direction(x_der, y_der, dir); display(dir); • Visually (static) dx dy direction display

  13. Processor 1 Processor 2 Mapping stream graphs to processors

  14. Processor 1 Processor 2 1 1 3 3 2 2 1 1 2 1 1 2 4 5 5 6 Dealing with heterogeneous tasks

  15. Processor 1 Interconnect Processor 2 1 1 3 3 2 2 1 4 1 2 4 2 1 4 1 3 5 8 4 7 5 Dealing with interconnect

  16. Processor 1 Interconnect Processor 2 1 1 3 2 2 1 1 1 2 4 1 2 4 3 3+4 3 (3)+4 (3)+4 (3)+7 (3)+3 Dealing with dependencies

  17. Choosing an architecture automatically • Architecture-independent program allows automatic analyis after it is written, but before an architecture is chosen • Based on certain constraints, architecture can be chosen automatically to optimize some cost function. • Tradeoff between cost, power and performance must be made by the designer

  18. Design Space Exploration Archi- tecture Explore Program Analyze Metrics

  19. performance minimum performance cost Search strategyConstrained single objective

  20. performance cost Search strategyMultiobjective tradeoff iteration

  21. performance cost Search strategyStrength Pareto

  22. Conclusions Architecture-independent programming allows • Parallel programming without bookkeeping • Targeting heterogeneous systems • Choosing the most appropriate architecture automatically http://www.qi.tnw.tudelft.nl/~wcaarls/smartcam

More Related