High level multithreaded programming part i
Download
1 / 23

High-level Multithreaded Programming [Part I] - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

High-level Multithreaded Programming [Part I]. Primo ž Gabrijelčič. Background Information. About Me. Primo ž Gabrijelčič Programmer, consultant, writer, speaker thedelphigeek.com www.glagolite.si/delphi Working with Delphi since Delphi 1 Hacking multithreaded code since 1999.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' High-level Multithreaded Programming [Part I]' - axl


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


About me
About Me

  • Primož Gabrijelčič

  • Programmer, consultant, writer, speaker

    • thedelphigeek.com

    • www.glagolite.si/delphi

  • Working with Delphi since Delphi 1

  • Hacking multithreaded code since 1999


About omnithreadlibrary
About OmniThreadLibrary

  • „VCL for multithreading“

  • Delphi 2007 – XE3[4]

  • Open source – OpenBSD license

    • www.omnithreadlibrary.com

    • omnithreadlibrary.googlecode.com

  • Win32/Win64


About the webinars
About the Webinars

  • Code and video: www.omnithreadlibrary.com/webinars

  • Code = free, video = $10, bundles!

  • 20 free books, courtesy of the De Novo Software, www.denovosoftware.com


Installation
Installation

  • Download the installation package from the Google Code or checkout the SVN repository

  • Add installation folder and its src subfolder to the project search path or Win32/64 library path

  • Add the OtlParallel unit to the uses list


Documentation
Documentation

  • Blog tutorials

  • “The book”

  • Presentations

  • Forum

  • Google+: OmniThreadLibrary

  • @TheDelphiGeek: #omnithreadlibrary

    www.omnithreadlibrary.com


Why multithreading
Why Multithreading?

  • Improve performance

  • Improve responsiveness



Why?

  • Designing parallel solutions is hard

  • Writing multithreaded code is hard

  • Testing multithreaded applications is hard

  • Debugging multithreaded code is pure …



Otl to the rescue
OTL to the Rescue!

  • Well-tested components …

  • packed in reusable classes …

  • with high-level parallel programming support.


High level abstractions1
High-Level Abstractions

  • ParallelTask

  • BackgroundWorker

  • ForkJoin

  • Pipeline

  • Async [/Await]

  • Future

  • Join

  • ForEach


Which abstraction to use
Which abstraction to use?

  • Consider data flow!


High level abstractions2
High-Level Abstractions

  • ParallelTask

  • BackgroundWorker

  • ForkJoin

  • Pipeline

  • Async [/Await]

  • Future

  • Join

  • ForEach

Start background task and continue



High level abstractions3
High-Level Abstractions

  • ParallelTask

  • BackgroundWorker

  • ForkJoin

  • Pipeline

  • Async [/Await]

  • Future

  • Join

  • ForEach

  • Start background calculation and retrieve the result



High level abstractions4
High-Level Abstractions

  • ParallelTask

  • BackgroundWorker

  • ForkJoin

  • Pipeline

  • Async [/Await]

  • Future

  • Join

  • ForEach

  • Start multiple background tasks [and wait]




Keep in mind
Keep in Mind

  • Don’t parallelize everything

  • Rethink the algorithm

  • Data flow dictates the abstraction

  • Measure the improvements

  • Test, test and test


Code and video
Code and Video

www.omnithreadlibrary.com/webinars


ad