We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byGabrielle Settle
Modified over 2 years ago
H IGH - LEVEL M ULTITHREADED P ROGRAMMING [P ART II] Primož Gabrijelčič
B ACKGROUND I NFORMATION
About Me Primož Gabrijelčič Programmer, consultant, writer, speaker – thedelphigeek.com – Hacking multithreaded code since 1999
About OmniThreadLibrary „VCL for multithreading“ Delphi 2007 – XE3 Open source – OpenBSD license – – omnithreadlibrary.googlecode.com Win32/Win64
About the Webinars Code and video: Code = free, video = $10 20 free books, courtesy of the De Novo Software,
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline Start multiple background tasks [and wait]
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline Start multiple copies of a single task
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline Background request-processing service
BackgroundWorker Usage service := Paralell.BackgroundWorker. OnRequestDone(code1).Execute(code2); workItem := service.CreateWorkItem(data); service.Schedule(workItem) service.Terminate; service := nil;
High-Level Abstractions Async [/Await] Future Join ForEach ParallelTask BackgroundWorker ForkJoin Pipeline Divide and conquer
Fork/Join Usage computation := Parallel.ForkJoin; compute1 := computation.Compute(action); – Inside action: computation.Compute(newAction) compute2 := computation.Compute(action); compute1.Value / compute1.Await compute2.Value / compute2.Await
P ARTING N OTES
Keep in Mind Don’t parallelize everything Rethink the algorithm Data flow dictates the abstraction Measure the improvements Test, test and test
Code & Video Will be available shortly at
H IGH - LEVEL M ULTITHREADED P ROGRAMMING [P ART III] Primož Gabrijelčič.
H IGH - LEVEL M ULTITHREADED P ROGRAMMING [P ART I] Primož Gabrijelčič.
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
1 Processes and Threads Creation and Termination States Usage Implementations.
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Revealing the Secrets of Self-Documenting Code Svetlin Nakov Telerik Corporation For C# Developers.
Inside an XSLT Processor Michael Kay, ICL 19 May 2000.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Chapter 2 Parallel Hardware and Parallel Software An Introduction to Parallel Programming Peter Pacheco.
UNIT II PROCESS SCHEDULING AND SYNCRONIZATION Handled by K. Venkatesh & A. Razia Sultana.
Chapter 3 1 Process Description and Control Chapter 3.
10 Reasons to fall in love with The Mainframe again… Marcel den Hartog October 2007.
Processes. 1/19/ Processes Modern systems can have many operations occurring at the same time. Most applications require one or more processes to.
CORBA Controls Workshop Kay Römer ETH Zürich Switzerland MICO Architecture & Applications.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 2: Operating-System Structures.
1 Operating-System Structures Operating System & its purpose Operating Systems lead to new Hardware Features System Components System Services System Calls.
Operating Systems Part IV: Memory Management. Main Memory Large array of words or bytes each having its own address Several processes must be kept in.
Ed-Fi 1.1 Request for Comment Webinar 5 Audio lines are muted during the presentation Please use the chat box to type your questions.
High-Level Workflows for Social Science Ken Turner (and Larry Tan) Computing Science and Mathematics 24th November.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks EasyGrid: a job submission system for distributed.
© 2013 IBM Corporation Implement high-level parallel API in JDK Richard Ning – Enterprise Developer 1 st June 2013.
Have fun with Hadoop Experiences with Hadoop and MapReduce Jian Wen DB Lab, UC Riverside.
March 23, 2007DynAMOS -- EuroSys '07 1 Dynamic and Adaptive Updates of Non-Quiescent Subsystems in Commodity OS Kernels Kristis Makris Arizona State University.
Threads, SMP, and Microkernels Chapter 4 1. Process Resource ownership - process includes a virtual address space to hold the process image Scheduling/execution-
Mr. Deven Patel, AITS, Rajkot. 1 Process Description and Control Chapter 3.
Global Payroll Performance Optimisation - I David Kurtz Go-Faster Consultancy Ltd.
16-17 October 2003 Grids and Applied Language Theory: Declarative Grid Service Orchestration with OGSA-DQP (A A A Fernandes) 1 Declarative Grid Service.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Chapter 5 Shared Memory Programming with OpenMP An Introduction to Parallel Programming Peter Pacheco.
1 Multithreaded Programming in Java. 2 Agenda Introduction Thread Applications Defining Threads Java Threads and States Examples.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
© 2016 SlidePlayer.com Inc. All rights reserved.