Master parallel programming in Scala: Learn task and data parallelism, functional concepts, and performance optimization.
Master parallel programming in Scala: Learn task and data parallelism, functional concepts, and performance optimization.
This intermediate-level course explores the fundamentals of parallel programming using Scala 2. Students will learn to leverage multi-core processors for improved performance, focusing on both task and data parallelism. The course covers essential concepts such as parallel collections, algorithms like parallel merge sort, and operations including map, reduce, and scan. Participants will gain hands-on experience through programming assignments, analyzing real-world data with algorithms like k-means clustering. By the end, students will be able to design, implement, and benchmark efficient parallel programs using Scala's parallel collections library.
Instructors:
English
21 languages available
What you'll learn
Understand and implement task and data parallel programs
Apply functional programming concepts to parallel scenarios
Design and analyze parallel algorithms such as merge sort and scan
Use Scala's parallel collections library effectively
Implement parallel versions of map, reduce, and fold operations
Develop skills in microbenchmarking parallel code
Skills you'll gain
This course includes:
5 Hours PreRecorded video
9 programming assignments
Access on Mobile, Tablet, Desktop
FullTime access
Shareable certificate
Closed caption
Get a Completion Certificate
Share your certificate with prospective employers and your professional network on LinkedIn.
Created by
Provided by
Top companies offer this course to their employees
Top companies provide this course to enhance their employees' skills, ensuring they excel in handling complex projects and drive organizational success.
There are 4 modules in this course
This course provides a comprehensive introduction to parallel programming using Scala 2. Students will learn to harness the power of multi-core processors through both task and data parallelism. The curriculum covers fundamental concepts such as parallel collections, algorithms, and operations, with a focus on applying functional programming ideas to parallel scenarios. Through hands-on programming assignments, students will implement and analyze parallel versions of algorithms like merge sort, k-means clustering, and Barnes-Hut simulation. The course emphasizes practical skills in designing, implementing, and benchmarking parallel programs, preparing students to write efficient parallel code for real-world applications.
Parallel Programming
Module 1 · 11 Hours to complete
Basic Task Parallel Algorithms
Module 2 · 7 Hours to complete
Data-Parallelism
Module 3 · 6 Hours to complete
Data Structures for Parallel Computing
Module 4 · 6 Hours to complete
Fee Structure
Payment options
Financial Aid
Instructors
Principal researcher
Dr. Aleksandar Prokopec is a software developer and a concurrent and distributed programming researcher, working at Oracle Labs. He obtained a PhD in Computer Science from the Ecole Polytechnique Federale de Lausanne, Switzerland. As a doctoral assistant and member of the Scala team at EPFL, he actively contributed to the Scala programming language, and has worked on programming abstractions for concurrency, data-parallel programming support, and concurrent data structures for Scala. He created the Scala Parallel Collections framework, which is a library for high-level data-parallel programming in Scala, and participated in working groups for Scala concurrency libraries. He previously worked at Google.
Associate Professor
Viktor Kuncak is an associate professor at the École Polytechnique Fédérale de Lausanne (EPFL), where he has been leading the Laboratory for Automated Reasoning and Analysis since 2007. His research focuses on formal methods, particularly in developing algorithms and tools for program verification and synthesis, including the Leon tool for Scala programs. Kuncak has contributed significantly to the academic community, co-chairing several key conferences and leading initiatives to standardize verification formats. He holds a PhD from the Massachusetts Institute of Technology (MIT) and has received funding from the European Research Council for his work on Implicit Programming, which aims to align human goals with computational processes.
Testimonials
Testimonials and success stories are a testament to the quality of this program and its impact on your career and learning journey. Be the first to help others make an informed decision by sharing your review of the course.
Frequently asked questions
Below are some of the most commonly asked questions about this course. We aim to provide clear and concise answers to help you better understand the course content, structure, and any other relevant information. If you have any additional questions or if your question is not listed here, please don't hesitate to reach out to our support team for further assistance.