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 – www.glagolite.si/delphi Hacking multithreaded code since 1999
About OmniThreadLibrary „VCL for multithreading“ Delphi 2007 – XE3 Open source – OpenBSD license – www.omnithreadlibrary.com – omnithreadlibrary.googlecode.com Win32/Win64
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
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 www.omnithreadlibrary.com/webinars
H IGH - LEVEL M ULTITHREADED P ROGRAMMING [P ART I] Primož Gabrijelčič.
H IGH - LEVEL M ULTITHREADED P ROGRAMMING [P ART III] Primož Gabrijelčič.
SIMPLE PARALLEL PROGRAMMING WITH PATTERNS AND OMNITHREADLIBRARY PRIMOŽ GABRIJELČIČ SKYPE: GABR42
Parallel Programming with OmniThreadLibrary Primož Gabrijelčič.
Multithreading Made Simple with OmniThreadLibrary Primož Gabrijelčič.
Simplify Parallel Programming with Patterns Primož Gabrijelčič R&D Manager, FAB.
Building Multithreaded Solutions with OmniThreadLibrary Primož Gabrijelčič,
G ETTING F ULL S PEED WITH D ELPHI Primož Gabrijelčič otl.17slon.com [W HY S INGLE -T HREADING I S N OT E.
Parallel Programming Made Easy Primož Gabrijelčič,
MULTITHREADING FAST PROGRAMS FOR MODERN COMPUTERS.
Developing for Windows and OS X Primož Gabrijelčič.
(c) Anne Dwyer 2007 Academic Reports and Exam Qs.1 Identify the purpose Brainstorm the scope Decide on your main messages PLAN.
Chapter 3 Parallel Programming Models. Abstraction Machine Level – Looks at hardware, OS, buffers Architectural models – Looks at interconnection network,
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
CS220 Software Development Lecture: Multi-threading A. O’Riordan, 2009.
1 Processes and Threads Creation and Termination States Usage Implementations.
General algorithmic techniques: Balanced binary tree technique Doubling technique: List Ranking Problem Divide and concur Lecture 6.
Amazing Call to Action Templates. Personalising the Call to Action Templates Images are grouped in the Powerpoint slide so to edit an element, simply.
UCoM Software Architecture Universal Communicator Research UCoM Programming Model The Problem Multi-threaded code is difficult to write.
Aristocracy, Democracy and System Design. Conceptual Integrity Sacrificing some ideas to lead to a common goal Software design tends to lead to conceptual.
Samenwerking Win32 en.NET met Delphi en Hydra 3 Bob Swart Bob Swart Training & Consultancy (& Reseller) –
Revealing the Secrets of Self-Documenting Code Svetlin Nakov Telerik Corporation For C# Developers.
Consuming REST Services from C# SoftUni Team Technical Trainers Software University
Copyright ©: University of Illinois CS 241 Staff1 Threads Systems Concepts.
© 2004, D. J. Foreman 2-1 Concurrency, Processes and Threads.
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
POSIX Threads Loren Stroup EEL 6897 Software Development for R-T Engineering Systems.
Hyper-Threading Neil Chakrabarty William May. 2 To Be Tackled Review of Threading Algorithms Hyper-Threading Concepts Hyper-Threading Architecture Advantages/Disadvantages.
Slide 2-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 2 Using the Operating System 2.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
Cs431-cotter1 Processes and Threads Tanenbaum 2.1, 2.2 Crowley Chapters 3, 5 Stallings Chapter 3, 4 Silberschaz & Galvin 3, 4.
Asynchronous Web Services Writing Asynchronous Web Services SoftUni Team Technical Trainers Software University
CS533 Concepts of Operating Systems Jonathan Walpole.
DEV 315 –Name –Problem –Context –Forces –Solution –Invariant –Examples –Known Uses –Related patterns : Characteristics :
© 2013 IBM Corporation Implement high-level parallel API in JDK Richard Ning – Enterprise Developer 1 st June 2013.
Lesson Objectives By the end of this lesson you should be able to:
Chap 4 Multithreaded Programming. Thread A thread is a basic unit of CPU utilization It comprises a thread ID, a program counter, a register set and a.
FastMM in Depth Primož Gabrijelčič,
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models Many-to-One One-to-One Many-to-Many Thread Libraries Pthread.
Thread. A basic unit of CPU utilization. It comprises a thread ID, a program counter, a register set, and a stack. It is a single sequential flow of control.
Introduction to Method. Example Java Method （ 1 ） The 2 types (kinds) of methods in Java Class methods Instance methods Methods can do more work than.
Expressing Parallel Patterns in Modern C++ Rahul V. Patil Microsoft C++ Parallel Computing Team Note: this is a simplified version of the deck used in.
Collage of Information Technology University of Palestine Advanced programming MultiThreading 1.
Cloud Computing Lecture #1 Parallel and Distributed Computing Jimmy Lin The iSchool University of Maryland Monday, January 28, 2008 This work is licensed.
MapReduce Basics Chapter 2 Lin and Dyer & /tutorial/
Continuous integration, delivery and deployment Primož Gabrijelčič thedelphigeek.com Primož Gabrijelčič thedelphigeek.com.
An overview of… Luis Guerrero Plain Concepts
Smart Mobile Studio today Primož Gabrijelčič thedelphigeek.com Primož Gabrijelčič thedelphigeek.com.
Fine-grain Task Aggregation and Coordination on GPUs Marc S. Orr †§, Bradford M. Beckmann §, Steven K. Reinhardt §, David A. Wood †§ ISCA, June 16, 2014.
© 2017 SlidePlayer.com Inc. All rights reserved.