Parallel programming

2.9
Rated 2.9 out of 5

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.

WEEK 1
11 hours to complete
Parallel Programming
We motivate parallel programming and introduce the basic constructs for building parallel programs on JVM and Scala. Examples such as array norm and Monte Carlo computations illustrate these concepts. We show how to estimate work and depth of parallel programs as well as how to benchmark the implementations.
9 videos (Total 106 min) 4 readings 3 quizzes

WEEK 2
8 hours to complete
Basic Task Parallel Algorithms
We continue with examples of parallel algorithms by presenting a parallel merge sort. We then explain how operations such as map reduce and scan can be computed in parallel. We present associativity as the key condition enabling parallel implementation of reduce and scan.
6 videos (Total 100 min)

WEEK 3
7 hours to complete
Data-Parallelism
We show how data parallel operations enable the development of elegant data-parallel code in Scala. We give an overview of the parallel collections hierarchy including the traits of splitters and combiners that complement iterators and builders from the sequential case.
5 videos (Total 51 min)

WEEK 4
7 hours to complete
Data Structures for Parallel Computing
We give a glimpse of the internals of data structures for parallel computing which helps us understand what is happening under the hood of parallel collections.
5 videos (Total 57 min)


Tham gia đánh giá khóa học

Nếu bạn đã học qua khóa học này thì mời bạn tham gia đóng góp ý kiến và đánh giá để cộng đồng bạn học có thêm thông tin tham khảo.

Thời lượng: 33 giờ
Ngôn ngữ giảng dạy: Tiếng Anh
Chi phí: Miễn phí / 0
Đối tượng: Intermediate

Thông tin về nhà cung cấp

Coursera (/ kərˈsɛrə /) là một nền tảng học tập trực tuyến toàn cầu được thành lập vào năm 2012 bởi 2 giáo sư khoa học máy tính của đại học Stanford là Andrew NgDaphne Koller, nền tảng này cung cấp các khóa học trực tuyến (MOOC) cho cộng đồng người học online.

Coursera hợp tác với các trường đại học danh tiếng tại Bắc Mỹ và trên khắp thế giới, cùng với nhiều tổ chức khác để cung cấp các khóa học trực tuyến chất lượng, theo chuyên ngành và được cấp chứng chỉ trong nhiều lĩnh vực như kỹ thuật, khoa học dữ liệu, học máy, toán học, kinh doanh, khoa học máy tính, tiếp thị kỹ thuật số, nhân văn, y học, sinh học, khoa học xã hội , và nhiều ngành khác.

Các khóa học cùng chủ đề

Visual Perception for Self-Driving Cars

This course will introduce you to the main perception tasks in autonomous driving, static and dynamic object detection, and will survey common computer vision methods for robotic perception. By the...

Motion Planning for Self-Driving Cars

This course will introduce you to the main planning tasks in autonomous driving, including mission planning, behavior planning and local planning. By the end of this course, you will be...

Capstone: Autonomous Runway Detection for IoT

This capstone project course ties together the knowledge from three previous courses in IoT though embedded systems: Development of Real-Time Systems Web Connectivity & Security and Embedded Hardware and Operating...

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top