SlideShare a Scribd company logo
Timothy Ng
F# Lead
Microsoft Corporation
Tim - FSharp
Tools            Managed Languages

 Visual Studio        Visual F#          Axum
     2010

    Parallel
                  Managed Libraries                                                                                  Native Libraries
   Debugger
   Windows
                        DryadLINQ                                                                 Parallel                  Async
     Profiler
                                                                                                  Pattern                   Agents
   Concurrency        Parallel LINQ             Rx




                                                           Data Structures



                                                                             Data Structures
     Analysis                                                                                     Library                   Library

   Microsoft
                         Task Parallel Library
                                                                                                       Native Concurrency Runtime
   Research
    Race                                                                                                  Task Scheduler
  Detection       Managed Concurrency Runtime
   Fuzzing                      ThreadPool                                                              Resource Manager


                                                                                                                             Operating
    HPC Server                           Threads                                                  UMS Threads                System



Operating Key:   Research / Incubation   Visual Studio 2010 / .NET 4                           Windows 7 / Server 2008 R2
System
Shared State

Code Locality

I/O Parallelism

Scaling to Multi-Machine
Shared State
 o Difficult to maintain and test
 o Very difficult to parallelize!
 o Locking is fundamentally error prone:
    o Must guess where parallelism will be needed
    o All consumers need to participate


Code Locality
I/O Parallelism
Scaling to Multi-Machine
Tim - FSharp
   Immutable Lists        Immutable Tuples

   Immutable Records      Immutable Dictionaries

   Immutable Sets         Immutable Unions

   Immutable Objects      Lots of language features
                            to encourage immutability
Shared State
Code Locality
 o We’re used to expressing algorithms linearly
 o Async requires logical division of algorithms
 o Very difficult to
    o Combine multiple asynchronous operations
    o Deal with exceptions and cancellation


I/O Parallelism
Scaling to Multi-Machine
Tim - FSharp
Shared State
Code Locality
I/O Parallelism
 o Software is often I/O-bound
    o Leveraging web services
    o Working with data on disk
 o Network and disk speeds increasing slower
 o I/O resources are inherently parallel
    o Huge opportunity for performance

Scaling to Multi-Machine
Tim - FSharp
Shared State
Code Locality
I/O Parallelism
Scaling to Multi-Machine
 o To scale up, must to go beyond a single machine
 o Multi-machine resources becoming common
    o Roll-you-own clusters with cheap hardware
    o On-demand cloud compute with Azure
 o But
    o Shared memory doesn’t scale
Shared State               immutability

Code Locality              async { … }

I/O Parallelism            async { … }

Scaling to Multi-Machine   agents
Simple, powerful,            Ready for production
   and productive                use with VS2010


                          F#
                                  Parallelism and
F# + .NET 4.0 radically
                               asynchrony – for today
 simplify parallelism
                                   and tomorrow
http://fsharp.net
© 2007 Microsoft Corporation. All rights reserved.
  This presentation is for informational purposes only.
  MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

More Related Content

PPTX
LINQ/PLINQ
PDF
Erlang: Bult for concurrent, distributed systems
PDF
AF JAM ANUNCIO
PPTX
La netiqueta 02
PPTX
El calentamiento global
PPTX
Conte viatger 1
PPTX
Presentación seminario 2
PPTX
Who are our users
LINQ/PLINQ
Erlang: Bult for concurrent, distributed systems
AF JAM ANUNCIO
La netiqueta 02
El calentamiento global
Conte viatger 1
Presentación seminario 2
Who are our users

Viewers also liked (10)

PPTX
3Com 3C905CXTXM
PPTX
3Com 3C905BTXNM10
PPTX
CCI DTMA1819DD12
PPTX
Repositorios web
PDF
Slide 3
PDF
Transaction_Scoring - WVK MasterCard
PDF
perry-technology-brochure
PDF
Dynamic Modeling and Simulation on GE90 Engine
PPTX
Presentación1
PDF
Y combinator等、シリコンバレーの資金調達の最新事情と日本ベンチャーへの意味合い
3Com 3C905CXTXM
3Com 3C905BTXNM10
CCI DTMA1819DD12
Repositorios web
Slide 3
Transaction_Scoring - WVK MasterCard
perry-technology-brochure
Dynamic Modeling and Simulation on GE90 Engine
Presentación1
Y combinator等、シリコンバレーの資金調達の最新事情と日本ベンチャーへの意味合い
Ad

Similar to Tim - FSharp (20)

PDF
Parallel Programming in .NET
PDF
Arc 300-3 ade miller-en
PPTX
Thinking in parallel ab tuladev
PPTX
Multi core programming 1
PPTX
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
PPTX
Parallel programming patterns - Олександр Павлишак
PPTX
Parallel programming patterns (UA)
PDF
Parallel Programming With Microsoft Net Design Patterns For Decomposition And...
PPTX
Patterns of parallel programming
PPT
Overview Of Parallel Development - Ericnel
PPTX
Tech Ed09 India Ver M New
PDF
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
PPT
Parallel Computing 2007: Overview
PPTX
Overview Of Parallel Development - Ericnel
PDF
Knapp_Masterarbeit
PPT
Parallel Programming and F#
PPT
Bay NET Aug 19 2009 presentation ppt
PDF
Simon Peyton Jones: Managing parallelism
PDF
Peyton jones-2011-parallel haskell-the_future
PPTX
Visual Studio 2010 IDE Enhancements - Alex Mackey, Readify
Parallel Programming in .NET
Arc 300-3 ade miller-en
Thinking in parallel ab tuladev
Multi core programming 1
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
Parallel programming patterns - Олександр Павлишак
Parallel programming patterns (UA)
Parallel Programming With Microsoft Net Design Patterns For Decomposition And...
Patterns of parallel programming
Overview Of Parallel Development - Ericnel
Tech Ed09 India Ver M New
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
Parallel Computing 2007: Overview
Overview Of Parallel Development - Ericnel
Knapp_Masterarbeit
Parallel Programming and F#
Bay NET Aug 19 2009 presentation ppt
Simon Peyton Jones: Managing parallelism
Peyton jones-2011-parallel haskell-the_future
Visual Studio 2010 IDE Enhancements - Alex Mackey, Readify
Ad

More from d0nn9n (20)

PPT
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
PPT
腾讯大讲堂:55 企业法律风险防范
PPT
腾讯大讲堂:56 qzone安全之路
PPT
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
PPT
腾讯大讲堂:57 超级qq的千万之路
PDF
蔡学镛 Rebol漫谈
PDF
赵泽欣 - 淘宝网前端应用与发展
PPT
Yanggang wps
PDF
熊节 - 软件工厂的精益之路
PDF
谢恩伟 - 微软在云端
PPTX
去哪儿平台技术
PDF
吴磊 - Silverlight企业级RIA
PDF
Tom - Scrum
PDF
Tiger oracle
PDF
Paulking groovy
PDF
Paulking dlp
PDF
Patrick jcp
PDF
Nick twitter
PDF
Marc facebook
PDF
Kane debt
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
腾讯大讲堂:55 企业法律风险防范
腾讯大讲堂:56 qzone安全之路
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:57 超级qq的千万之路
蔡学镛 Rebol漫谈
赵泽欣 - 淘宝网前端应用与发展
Yanggang wps
熊节 - 软件工厂的精益之路
谢恩伟 - 微软在云端
去哪儿平台技术
吴磊 - Silverlight企业级RIA
Tom - Scrum
Tiger oracle
Paulking groovy
Paulking dlp
Patrick jcp
Nick twitter
Marc facebook
Kane debt

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Spectroscopy.pptx food analysis technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Electronic commerce courselecture one. Pdf
PDF
Approach and Philosophy of On baking technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectroscopy.pptx food analysis technology
Building Integrated photovoltaic BIPV_UPV.pdf
The AUB Centre for AI in Media Proposal.docx
Electronic commerce courselecture one. Pdf
Approach and Philosophy of On baking technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Tim - FSharp

  • 3. Tools Managed Languages Visual Studio Visual F# Axum 2010 Parallel Managed Libraries Native Libraries Debugger Windows DryadLINQ Parallel Async Profiler Pattern Agents Concurrency Parallel LINQ Rx Data Structures Data Structures Analysis Library Library Microsoft Task Parallel Library Native Concurrency Runtime Research Race Task Scheduler Detection Managed Concurrency Runtime Fuzzing ThreadPool Resource Manager Operating HPC Server Threads UMS Threads System Operating Key: Research / Incubation Visual Studio 2010 / .NET 4 Windows 7 / Server 2008 R2 System
  • 4. Shared State Code Locality I/O Parallelism Scaling to Multi-Machine
  • 5. Shared State o Difficult to maintain and test o Very difficult to parallelize! o Locking is fundamentally error prone: o Must guess where parallelism will be needed o All consumers need to participate Code Locality I/O Parallelism Scaling to Multi-Machine
  • 7. Immutable Lists  Immutable Tuples  Immutable Records  Immutable Dictionaries  Immutable Sets  Immutable Unions  Immutable Objects  Lots of language features to encourage immutability
  • 8. Shared State Code Locality o We’re used to expressing algorithms linearly o Async requires logical division of algorithms o Very difficult to o Combine multiple asynchronous operations o Deal with exceptions and cancellation I/O Parallelism Scaling to Multi-Machine
  • 10. Shared State Code Locality I/O Parallelism o Software is often I/O-bound o Leveraging web services o Working with data on disk o Network and disk speeds increasing slower o I/O resources are inherently parallel o Huge opportunity for performance Scaling to Multi-Machine
  • 12. Shared State Code Locality I/O Parallelism Scaling to Multi-Machine o To scale up, must to go beyond a single machine o Multi-machine resources becoming common o Roll-you-own clusters with cheap hardware o On-demand cloud compute with Azure o But o Shared memory doesn’t scale
  • 13. Shared State immutability Code Locality async { … } I/O Parallelism async { … } Scaling to Multi-Machine agents
  • 14. Simple, powerful, Ready for production and productive use with VS2010 F# Parallelism and F# + .NET 4.0 radically asynchrony – for today simplify parallelism and tomorrow
  • 16. © 2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.