Riccardo Terrell, is a Software Architect at Microsoft who is passionate about functional programming. He is active in the F# community and started the DC F# user’s group. Riccardo is a believer in polyglot programming as a mechanism in finding the right tool for the job. He likes to describe himself as a functional guy living in an imperative world.
Today’s industry demands applications that can handle thousands of users and analyze terabytes of data expeditiously. To achieve this, software is moving from an object-oriented paradigm to a functional paradigm. By utilizing concurrency and parallelism to leverage multiple cores, programmers can achieve radical improvements in their applications. Fortunately, both paradigms can and should coexist.
During this talk we will discuss several different concurrency programming models, analyze the pros and cons of each, and suggest their best use. You will learn how to exploit the parallelism in your computer’s GPU and leverage clusters of machines with MapReduce and Stream Processing. Moreover, you will learn how functional programming addresses issues with traditional threads and locks development. Software Transactional Memory (STM) will be discussed with code samples, as well as message passing using channels and useful design patterns like produce and consumer, distribute and conquer, and pipeline. By the end of the session, you will leave with a solid understanding of the different concurrent programming models, and be able to leverage them to increase the performance of your programs.