Presentation is loading. Please wait.

Presentation is loading. Please wait.

F# for Parallel and Asynchronous Programming

Similar presentations


Presentation on theme: "F# for Parallel and Asynchronous Programming"— Presentation transcript:

1 F# for Parallel and Asynchronous Programming
FT20 F# for Parallel and Asynchronous Programming Luke Hoban F# Program Manager Microsoft Corporation © 2007 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.

2 F#: Productive, Functional, Scalable
12/8/ :21 AM F#: Productive, Functional, Scalable demo Luke Hoban F# Program Manager Microsoft © 2007 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.

3 Parallel Computing and PDC09
Tools Managed Languages Visual F# Axum Visual Studio 2010 Parallel Debugger Windows Managed Libraries Native Libraries DryadLINQ Parallel Pattern Library Async Agents Library Profiler Concurrency Analysis Parallel LINQ Rx Task Parallel Library Microsoft Research Data Structures Data Structures Native Concurrency Runtime Race Detection Task Scheduler Managed Concurrency Runtime Fuzzing ThreadPool Resource Manager Operating System HPC Server Threads UMS Threads Operating System Key: Research / Incubation Visual Studio 2010 / .NET 4 Windows 7 / Server 2008 R2

4 Four Big Concurrency Challenges
Shared State Inversion of Control I/O Parallelism Scaling to multi-machine

5 Concurrency Challenges
Shared State Difficult to maintain and test Very difficult to parallelize! Locking is fundamentally error prone: Must guess where parallelism will be needed All consumers need to participate Inversion of Control I/O Parallelism Scaling to Multi-Machine

6 F#: Immutability and Functional Programming
demo Luke Hoban F# Program Manager Microsoft © 2007 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.

7 Concurrency Challenges
Shared State Inversion of Control We’re used to writing code linearly Async requires decoupling Begin from End Very difficult to Combine multiple asynchronous operations Deal with exceptions and cancellation I/O Parallelism Scaling to Multi-Machine

8 Concurrency Challenges
Shared State Inversion of Control I/O Parallelism Software is often I/O-bound Leveraging web services Working with data on disk Network and disk speeds increasing slower I/O resources are inherently parallel Huge opportunity for performance Scaling to Multi-Machine

9 Luke Hoban F# Program Manager Microsoft
F#: async { … } demo Luke Hoban F# Program Manager Microsoft © 2007 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.

10 Concurrency Challenges
Shared State Inversion of Control I/O Parallelism Scaling to Multi-Machine To scale up, must to go beyond a single machine Multi-machine resources becoming common Roll-you-own clusters with cheap hardware On-demand cloud compute with Azure But Shared memory doesn’t scale

11 Luke Hoban F# Program Manager Microsoft
F#: Agents and Azure demo Luke Hoban F# Program Manager Microsoft © 2007 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.

12 Recap: Some Concurrency Challenges
Shared State immutability Inversion of Control async { … } I/O Parallelism async { … } Scaling to Multi-Machine agents

13 F# In Summary Simple, powerful, and productive
Ready for production use with VS2010 F# + .NET 4.0 radically simplify parallelism Parallelism and asynchrony – for today and tomorrow F#

14 YOUR FEEDBACK IS IMPORTANT TO US!
Please fill out session evaluation forms online at MicrosoftPDC.com

15 channel9.msdn.com/learn
12/8/ :21 AM Learn More On Channel 9 Expand your PDC experience through Channel 9 Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses channel9.msdn.com/learn Built by Developers for Developers…. © 2007 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.

16 12/8/ :21 AM © 2009 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.

17 12/8/ :21 AM © 2009 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.


Download ppt "F# for Parallel and Asynchronous Programming"

Similar presentations


Ads by Google