SlideShare a Scribd company logo
Lynn Langit – Developer Evangelist http://blogs.msdn.com/SoCalDevGal Daniel Moth - Parallel Computing Platform http://www.danielmoth.com/Blog   Luca Bolognese http://blogs.msdn.com/lucabol/
Threads Operating System Concurrency Runtime Programming Models Task Scheduler Resource Manager Integrated Tooling Programming Models Concurrency Runtime Parallel Pattern Library Resource Manager Task Scheduler Task Parallel  Library PLINQ Managed Library Native Library Agents Library ThreadPool Data Structures Data Structures Tools Parallel Debugger Toolwindows Profiler Concurrency Analysis
 
 
Program Thread CLR Thread Pool  Global Queue Worker Thread 1 Worker Thread p
Program Thread Task 1 Task 2 Task 3 Task 5 Task 4 Task 6 CLR Thread Pool: Work-Stealing Worker Thread 1 Worker Thread p Global Queue Local Queue Local Queue
 
ThreadPool ThreadPool .QueueUserWorkItem(…); System.Threading.Tasks Task .StartNew(…); Starting var  p =  Task .StartNew(() => { var  t =  Task .StartNew(…); }); Parent/Child var  f =  Future .StartNew(() => C()); … int  result = f.Value; Tasks with results Task  t =  Task .StartNew(…); Task  p = t.ContinueWith(…); t.Wait(2000); t.Cancel(); Continue/Wait/Cancel
 
 
 
 
var q = from p in people          where p.Name == queryInfo.Name &&  p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd          orderby p.Year ascending          select p;
 
Area Descriptions Example Scenarios Imperative Data Parallelism Apply the same operation to common collections/sets in parallel.  Looping, data partitioning, reductions, scans, etc.  Medical imaging Bond pricing Task Parallelism Simultaneously perform multiple independent operations.  Divide-and-conquer, tasks, threads, fork/join, futures, etc. Process control automation Shared Resources Building blocks for implementing concurrent components.  Scalable and thread-safe collections, locks, etc. Middle-tier configuration/state management Declarative Data Parallelism Define what computation needs to be done, without the how.  Selections, filters, joins, aggregations, groupings, etc. Statistical modeling Coordination Exploit latent operations by doing work while waiting for data.  Asynch I/O, async interaction points, message passing, etc. Streaming audio Task Parallel Library Parallel Pattern Library OpenMP, Cluster SOA Coordination Data Structures Transactional Memory MPI, MPI.net, CCR Native Agents and Messaging Maestro PLINQ
www.microsoftpdc.com http://msdn.com/concurrency Visual Studio 2010  & Framework 4.0
all PDC sessions Overview - why and how parallelism PLINQ screencast Other Ch9 PLINQ screencasts PLINQ MSDN article MSDN concurrency VS 2010 on Ch9 VS 2010 week Parallel Computing - Vision Daniel Moth blog
Fewer side effects More opportunities for parallelism Used for advanced computation, math, data mining, financial More concise, fewer bugs
 
Improvements to the F# research release April 2008 Microsoft Research refresh release  Broadly improved VS 2008 integration Simplifications in language and libraries Just Released September 2008 CTP Full product-quality release Fully stable and supported language Aligned with future VS releases 2009 Supported Release
F# tutorials  F# MSDN Developer Center F# for Windows Azure F# Samples Expert F# book and code samples
On the Web: http://fsharp.net Books:
Thanks vets!

More Related Content

Viewers also liked (7)

PPTX
5 Digigirlz Xna
llangit
 
PPTX
2 Win7 For Devs Ux Touch Sensors
llangit
 
PPTX
1 Win7 For Devs Fund Search
llangit
 
PPTX
3 Kodu
llangit
 
PPTX
3 App Compat Win7
llangit
 
PPTX
4 Making Movies
llangit
 
DOCX
Ensayo
ENEF
 
5 Digigirlz Xna
llangit
 
2 Win7 For Devs Ux Touch Sensors
llangit
 
1 Win7 For Devs Fund Search
llangit
 
3 Kodu
llangit
 
3 App Compat Win7
llangit
 
4 Making Movies
llangit
 
Ensayo
ENEF
 

Similar to Parallel Programming and F# (20)

PPT
Overview Of Parallel Development - Ericnel
ukdpe
 
PPT
Parallel Extentions to the .NET Framework
ukdpe
 
PPTX
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
Panagiotis Kanavos
 
PDF
Parallel Programming With Microsoft Net Design Patterns For Decomposition And...
foegeartemfz
 
PPTX
.NET Multithreading/Multitasking
Sasha Kravchuk
 
PPTX
Coding For Cores - C# Way
Bishnu Rawal
 
PPTX
Using Parallel Computing Platform - NHDNUG
North Houston .NET Users Group
 
PPTX
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Panagiotis Kanavos
 
PPTX
Parallel Programming
Mindfire Solutions
 
PPT
MTaulty_DevWeek_Parallel
ukdpe
 
PDF
.Net Multithreading and Parallelization
Dmitri Nesteruk
 
PPTX
Parallel programming in .NET
Peter Csala
 
PDF
Concurrency and parallel in .net
Mohammad Hossein Karami
 
ZIP
.Net 4.0 Threading and Parallel Programming
Alex Moore
 
PPTX
Solution Patterns for Parallel Programming
Dilum Bandara
 
PPTX
Multi core programming 1
Robin Aggarwal
 
PPTX
Parallel extensions in .Net 4.0
Dima Maleev
 
PPTX
Parallel programming patterns (UA)
Oleksandr Pavlyshak
 
PPTX
Parallel programming patterns - Олександр Павлишак
Igor Bronovskyy
 
PPTX
Windows Server 2008 R2 Dev Session 02
Clint Edmonson
 
Overview Of Parallel Development - Ericnel
ukdpe
 
Parallel Extentions to the .NET Framework
ukdpe
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
Panagiotis Kanavos
 
Parallel Programming With Microsoft Net Design Patterns For Decomposition And...
foegeartemfz
 
.NET Multithreading/Multitasking
Sasha Kravchuk
 
Coding For Cores - C# Way
Bishnu Rawal
 
Using Parallel Computing Platform - NHDNUG
North Houston .NET Users Group
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Panagiotis Kanavos
 
Parallel Programming
Mindfire Solutions
 
MTaulty_DevWeek_Parallel
ukdpe
 
.Net Multithreading and Parallelization
Dmitri Nesteruk
 
Parallel programming in .NET
Peter Csala
 
Concurrency and parallel in .net
Mohammad Hossein Karami
 
.Net 4.0 Threading and Parallel Programming
Alex Moore
 
Solution Patterns for Parallel Programming
Dilum Bandara
 
Multi core programming 1
Robin Aggarwal
 
Parallel extensions in .Net 4.0
Dima Maleev
 
Parallel programming patterns (UA)
Oleksandr Pavlyshak
 
Parallel programming patterns - Олександр Павлишак
Igor Bronovskyy
 
Windows Server 2008 R2 Dev Session 02
Clint Edmonson
 
Ad

More from llangit (20)

PPTX
2 Digi Girlz Small Basic
llangit
 
PPTX
1 Digi Girlz So Cal Databases Kims Final
llangit
 
PPT
SQL Server 2008 Data Mining
llangit
 
PPT
SQL Server 2008 Data Mining
llangit
 
PPT
SQL Server 2008 for Developers
llangit
 
PPT
SQL Server 2008 for .NET Developers
llangit
 
PPT
Tech Days09 Sqldev
llangit
 
PPT
Windows Azure for .NET Developers
llangit
 
PPT
Introduction To Sql Services
llangit
 
PPT
Making of GirlGamer
llangit
 
PPT
Kodu
llangit
 
PPT
DigiGirlz_SoCal_Databases
llangit
 
PPT
DigiGirlzSmallBasic
llangit
 
PPT
Bi2008 Plus Cloud Preview
llangit
 
PPT
The Role Of An Architect
llangit
 
PPT
SQL Server 2008 for Developers
llangit
 
PPT
BI in SQL Server 2008 for Architects
llangit
 
PPT
BI2008newFeatures
llangit
 
PPT
BI 2008 Simple
llangit
 
PPT
Data Mining 2008
llangit
 
2 Digi Girlz Small Basic
llangit
 
1 Digi Girlz So Cal Databases Kims Final
llangit
 
SQL Server 2008 Data Mining
llangit
 
SQL Server 2008 Data Mining
llangit
 
SQL Server 2008 for Developers
llangit
 
SQL Server 2008 for .NET Developers
llangit
 
Tech Days09 Sqldev
llangit
 
Windows Azure for .NET Developers
llangit
 
Introduction To Sql Services
llangit
 
Making of GirlGamer
llangit
 
Kodu
llangit
 
DigiGirlz_SoCal_Databases
llangit
 
DigiGirlzSmallBasic
llangit
 
Bi2008 Plus Cloud Preview
llangit
 
The Role Of An Architect
llangit
 
SQL Server 2008 for Developers
llangit
 
BI in SQL Server 2008 for Architects
llangit
 
BI2008newFeatures
llangit
 
BI 2008 Simple
llangit
 
Data Mining 2008
llangit
 
Ad

Recently uploaded (20)

PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
PDF
Optimizing the trajectory of a wheel loader working in short loading cycles
Reno Filla
 
PDF
Open Source Milvus Vector Database v 2.6
Zilliz
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
Why aren't you using FME Flow's CPU Time?
Safe Software
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
Python Conference Singapore - 19 Jun 2025
ninefyi
 
PDF
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
PDF
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
PDF
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
PPTX
Simplifica la seguridad en la nube y la detección de amenazas con FortiCNAPP
Cristian Garcia G.
 
PDF
Kubernetes - Architecture & Components.pdf
geethak285
 
PDF
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
 
PDF
UiPath Agentic AI ile Akıllı Otomasyonun Yeni Çağı
UiPathCommunity
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
Optimizing the trajectory of a wheel loader working in short loading cycles
Reno Filla
 
Open Source Milvus Vector Database v 2.6
Zilliz
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Why aren't you using FME Flow's CPU Time?
Safe Software
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
The Growing Value and Application of FME & GenAI
Safe Software
 
Python Conference Singapore - 19 Jun 2025
ninefyi
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
Simplifica la seguridad en la nube y la detección de amenazas con FortiCNAPP
Cristian Garcia G.
 
Kubernetes - Architecture & Components.pdf
geethak285
 
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
 
UiPath Agentic AI ile Akıllı Otomasyonun Yeni Çağı
UiPathCommunity
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 

Parallel Programming and F#

  • 1. Lynn Langit – Developer Evangelist http://blogs.msdn.com/SoCalDevGal Daniel Moth - Parallel Computing Platform http://www.danielmoth.com/Blog Luca Bolognese http://blogs.msdn.com/lucabol/
  • 2. Threads Operating System Concurrency Runtime Programming Models Task Scheduler Resource Manager Integrated Tooling Programming Models Concurrency Runtime Parallel Pattern Library Resource Manager Task Scheduler Task Parallel Library PLINQ Managed Library Native Library Agents Library ThreadPool Data Structures Data Structures Tools Parallel Debugger Toolwindows Profiler Concurrency Analysis
  • 3.  
  • 4.  
  • 5. Program Thread CLR Thread Pool Global Queue Worker Thread 1 Worker Thread p
  • 6. Program Thread Task 1 Task 2 Task 3 Task 5 Task 4 Task 6 CLR Thread Pool: Work-Stealing Worker Thread 1 Worker Thread p Global Queue Local Queue Local Queue
  • 7.  
  • 8. ThreadPool ThreadPool .QueueUserWorkItem(…); System.Threading.Tasks Task .StartNew(…); Starting var p = Task .StartNew(() => { var t = Task .StartNew(…); }); Parent/Child var f = Future .StartNew(() => C()); … int result = f.Value; Tasks with results Task t = Task .StartNew(…); Task p = t.ContinueWith(…); t.Wait(2000); t.Cancel(); Continue/Wait/Cancel
  • 9.  
  • 10.  
  • 11.  
  • 12.  
  • 13. var q = from p in people          where p.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd         orderby p.Year ascending          select p;
  • 14.  
  • 15. Area Descriptions Example Scenarios Imperative Data Parallelism Apply the same operation to common collections/sets in parallel. Looping, data partitioning, reductions, scans, etc. Medical imaging Bond pricing Task Parallelism Simultaneously perform multiple independent operations. Divide-and-conquer, tasks, threads, fork/join, futures, etc. Process control automation Shared Resources Building blocks for implementing concurrent components. Scalable and thread-safe collections, locks, etc. Middle-tier configuration/state management Declarative Data Parallelism Define what computation needs to be done, without the how. Selections, filters, joins, aggregations, groupings, etc. Statistical modeling Coordination Exploit latent operations by doing work while waiting for data. Asynch I/O, async interaction points, message passing, etc. Streaming audio Task Parallel Library Parallel Pattern Library OpenMP, Cluster SOA Coordination Data Structures Transactional Memory MPI, MPI.net, CCR Native Agents and Messaging Maestro PLINQ
  • 17. all PDC sessions Overview - why and how parallelism PLINQ screencast Other Ch9 PLINQ screencasts PLINQ MSDN article MSDN concurrency VS 2010 on Ch9 VS 2010 week Parallel Computing - Vision Daniel Moth blog
  • 18. Fewer side effects More opportunities for parallelism Used for advanced computation, math, data mining, financial More concise, fewer bugs
  • 19.  
  • 20. Improvements to the F# research release April 2008 Microsoft Research refresh release Broadly improved VS 2008 integration Simplifications in language and libraries Just Released September 2008 CTP Full product-quality release Fully stable and supported language Aligned with future VS releases 2009 Supported Release
  • 21. F# tutorials F# MSDN Developer Center F# for Windows Azure F# Samples Expert F# book and code samples
  • 22. On the Web: http://fsharp.net Books:

Editor's Notes

  • #2: 06/06/09 06:24 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.