Download presentation
Presentation is loading. Please wait.
Published byCarrie Brinkley Modified over 10 years ago
1
H IGH - LEVEL M ULTITHREADED P ROGRAMMING [P ART III] Primož Gabrijelčič
2
B ACKGROUND I NFORMATION
3
About Me Primož Gabrijelčič Programmer, consultant, writer, speaker – thedelphigeek.com – www.glagolite.si/delphi Hacking multithreaded code since 1999
4
About OmniThreadLibrary „VCL for multithreading“ Delphi 2007 – XE3[4] Open source – OpenBSD license – www.omnithreadlibrary.com – omnithreadlibrary.googlecode.com Win32/Win64
5
About the Webinars Code and video: www.omnithreadlibrary.com/webinars Code = free, video = $10 20 free books, courtesy of the De Novo Software, www.denovosoftware.com
6
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker Pipeline ForkJoin
7
Which abstraction to use? Consider data flow!
8
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline Parallel iteration over data
9
ForEach
10
Iterate over … Integer range Enumerable collection (TStringList …) Thread-safe enumerable collection (OTL) Blocking collection (IOmniBlockingCollection) Anything – Custom enumerator function – Main program writing into a blocking collection
11
Special features Synchronized access to data Data prefetching Work stealing Optional output ordering Aggregation
12
aggregate := initial value for each value in source Execute(value, result) if not result.IsEmpty then Agreggator(aggregate, value)
13
Demos 35_ParallelFor 36_ParallelAggregate 38_OrderedFor
14
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline Parallelization of multistage operations
15
Pipeline
16
Example
17
Web Spider
18
P ARTING N OTES
19
Keep in Mind Don’t parallelize everything Rethink the algorithm Data flow dictates the abstraction Measure the improvements Test, test and test
20
Code Will be available shortly at www.omnithreadlibrary.com/webinars
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.