Parallel programming
About this Course
With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you\'ll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you\'ll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We\'ll start the nuts and bolts how to effectively parallelize familiar collections operations, and we\'ll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library. Throughout, we\'ll apply these concepts through several hands-on examples that analyze real-world data, such as popular algorithms like k-means clustering. Learning Outcomes. By the end of this course you will be able to: - reason about task and data parallel programs, - express common algorithms in a functional style and solve them in parallel, - competently microbenchmark parallel code, - write programs that effectively use parallel collections to achieve performance Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala:Created by: École Polytechnique Fédérale de Lausanne

Related Online Courses
This course introduces the technologies behind web and search engines, including document indexing, searching and ranking. You will also learn different performance metrics for evaluating search... more
In questi corsi acquisirai dimestichezza con l\'infrastruttura flessibile di Google Cloud e i servizi della piattaforma, concentrandoti in modo specifico su Compute Engine. In questa sessione viene... more
In this course, you will learn how to deploy, configure, and secure FortiAnalyzer. You will also learn how to register and manage devices with FortiAnalyzer. Finally, you will explore the... more
The Gantt chart is a popular project management tool that is used to display a project plan in a graphic format. In this project you will use Lucidchart software to generate a Gantt chart that... more
In this 40 minute long project, you will learn how to create an account and a Newsletter in the website MailChimp. Users attending this project will obtain the ability to create an email newsletter... more