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 is the third part of the Sales Operations/Management Specialization. In it, we will discuss some of the financial aspects involved in managing a sales force. Students will learn about... more
87% of Google Cloud certified users feel more confident in their cloud skills*. This program provides the skills you need to advance your career as a security engineer and provides training to... more
Large language models such as GPT-3.5, which powers ChatGPT, are changing how humans interact with computers and how computers can process text. This course will introduce the fundamental ideas of... more
This specialization is intended for individuals with a basic understanding of digital technologies as well as developers or security professionals with at least 2 years of programming experience... more
Design modern switched-mode power converters; create high-performance control loops around power converters; understand efficiency, power density and cost trade-offs\\n\\nBy 2030, 80% of all... more

CONTINUE SEARCH

FOLLOW COLLEGE PARENT CENTRAL