VTK/Multicore Vision
From KitwarePublic
< VTK
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
- Multi***threading abstraction
- 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
- It is only useful for:
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