VTK/Multicore Vision

From KitwarePublic
< VTK
Revision as of 16:06, 24 August 2009 by Berk (talk | contribs) (New page: == 1. Accelerate algorithms that need access to the whole dataset == * Examples: ** Streamlines ** Graph algorithms * What is needed: ** Multi***threading abstraction *** vtkMultiThreader ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

1. Accelerate algorithms that need access to the whole dataset

  • Examples:
    • Streamlines
    • Graph algorithms
  • What is needed:
    • Multi***threading abstraction
      • vtkMultiThreader
      • What about OpenMP, Intel TBB?
    • Thread safe data structures
  • Pros:
    • Scalable
  • Cons:
    • Filters need to change

2. Pipeline parallelism

  • Analyze the pipeline
  • Assign different filters to different threads
  • Pros:
    • Automatic performance improvement for all filters
  • Cons:
    • It is only useful for:
      • Streaming
      • Branching pipelines

3. Streaming

  • All types of data:
    • Structured data
    • Unstructured data
    • Text (documents)
    • ...
  • How do we break the data?

4. How do we bring (1), (2) and (3) together?

  • Do algorithms need to provide more meta***data?
    • I can work with pieces
    • I need the whole thing
    • I scale up to N processors?

5. What about interactive applications

  • Using separate threads to run the pipeline and to control user interface/rendering