Parallel computation and multicore computation have come to dominate peer applications in finance software, video games, web applications and market analysis. To yield the most performance, computer programmers have to partition and divide computations to maximize the performance while taking full advantage of multicore processors
Join this course to explore the powerful and accessible tool of parallel computation and learn how to optimize the performance of your application, maximise computational resources utilisation, and use multi-core computation effectively.
You will learn which technologies and tools will help you achieve exceptional performance in applications and how you can achieve peak performance with fewer lines of code by writing readable, more modular, and maintainable code in both C# and F#. You will also learn how to design solutions that can adapt resource consumption, whether running locally, on OnPrem, or on Cloud infrastructures.
When you return back to work, you will have code bend to your will!
Learn how to:
Leverage multi-core computation, increasing the capacity and speed of their programs.
Apply the major functional theories and best practices in concurrent programming.
Design and exploit the key principles and techniques for concurrent and parallel programming
Implement Multi-threaded behavior without the use of low-level concurrency constructs like locks.
Develop highly scalable and fault-tolerant distributed systems applications using a combination of Asynchronous programming, Actor model and Reactive Extensions.
- Why choose functional programming for concurrent programs
- Functional programming techniques and practices for concurrent programming
- How to overcome the concurrent pitfalls writing complex parallel application effortlessly
- Building high-performance concurrent systems that self-adapt the degree of parallelism based on the current resources available
- Integrating concurrent programming abstractions
- Writing a basic Helm chart for the whole app
- Handling and composing high-volume real-time event stream processing
- Design patterns for concurrent applications
- Choose and leverage the best concurrent patterns to solve problems (for example divide and conquer, Fork/Join, pipeline and so on)
- Creating a data-access layer to handle massive concurrent requests
- Asynchronous Functional Combinators to express complex flow in a declarative and composable style
- Applying Reactive Programming everywhere with Agents and Actors to solve concurrency problems
- Designing and implementing a clustered, high-availability architecture that is elastic, scales in or out, on demand
- Building highly available, self-healing distributed systems and scalable systems using the message passing model
- How to write scalable and robust server-side asynchronous code for the Cloud
- Designing and implementing highly-scalable, reactive and fault-tolerant distributed systems for the cloud
If you are a professional software engineer or solution architect, keen to master the domain of multicore and distributed systems and become an expert at delivering successful, optimized, high-performance solutions, this Functional Concurrency in .NET course is for you!
To make the most of this course, you need to have a basic understanding of Kubernetes fundamentals. You need to know:
To benefit from this Functional Concurrency in .NET course, you should have at least two years of professional experience developing in an OO or functional programming language prior to attending. You won't need any prior experience in functional programming to participate.