Об этом курсе
4.4
Оценки: 159
Рецензии: 24
100% онлайн

100% онлайн

Начните сейчас и учитесь по собственному графику.
Гибкие сроки

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Промежуточный уровень

Промежуточный уровень

Часов на завершение

Прибл. 13 часа на выполнение

Предполагаемая нагрузка: Four weeks of study, 4-8 hours/week depending on past experience with sequential programming in Java...
Доступные языки

Английский

Субтитры: Английский...

Приобретаемые навыки

Distributed ComputingActor ModelParallel ComputingReactive Programming
100% онлайн

100% онлайн

Начните сейчас и учитесь по собственному графику.
Гибкие сроки

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Промежуточный уровень

Промежуточный уровень

Часов на завершение

Прибл. 13 часа на выполнение

Предполагаемая нагрузка: Four weeks of study, 4-8 hours/week depending on past experience with sequential programming in Java...
Доступные языки

Английский

Субтитры: Английский...

Программа курса: что вы изучите

Неделя
1
Часов на завершение
1 ч. на завершение

Welcome to the Course!

Welcome to Distributed Programming in Java! This course is designed as a three-part series and covers a theme or body of knowledge through various video lectures, demonstrations, and coding projects....
Reading
1 видео (всего 1 мин.), 5 материалов для самостоятельного изучения, 1 тест
Video1 видео
Reading5 материала для самостоятельного изучения
General Course Info5мин
Course Icon Legend2мин
Discussion Forum Guidelines2мин
Pre-Course Survey10мин
Mini Project 0: Setup20мин
Часов на завершение
4 ч. на завершение

DISTRIBUTED MAP REDUCE

In this module, we will learn about the MapReduce paradigm, and how it can be used to write distributed programs that analyze data represented as key-value pairs. A MapReduce program is defined via user-specified map and reduce functions, and we will learn how to write such programs in the Apache Hadoop and Spark projects. TheMapReduce paradigm can be used to express a wide range of parallel algorithms. One example that we will study is computation of the TermFrequency – Inverse Document Frequency (TF-IDF) statistic used in document mining; this algorithm uses a fixed (non-iterative) number of map and reduce operations. Another MapReduce example that we will study is parallelization of the PageRank algorithm. This algorithm is an example of iterative MapReduce computations, and is also the focus of the mini-project associated with this module....
Reading
6 видео (всего 49 мин.), 6 материалов для самостоятельного изучения, 2 тестов
Video6 видео
1.2 Hadoop Framework8мин
1.3 Spark Framework11мин
1.4 TF-IDF Example7мин
1.5 Page Rank Example8мин
Demonstration: Page Rank Algorithm in Spark4мин
Reading6 материала для самостоятельного изучения
1.1 Lecture Summary5мин
1.2 Lecture Summary5мин
1.3 Lecture Summary5мин
1.4 Lecture Summary5мин
1.5 Lecture Summary5мин
Mini Project 1: Page Rank with Spark15мин
Quiz1 практического упражнения
Module 1 Quiz30мин
Неделя
2
Часов на завершение
4 ч. на завершение

CLIENT-SERVER PROGRAMMING

In this module, we will learn about client-server programming, and how distributed Java applications can communicate with each other using sockets. Since communication via sockets occurs at the level of bytes, we will learn how to serialize objects into bytes in the sender process and to deserialize bytes into objects in the receiver process. Sockets and serialization provide the necessary background for theFile Server mini-project associated with this module. We will also learn about Remote Method Invocation (RMI), which extends the notion of method invocation in a sequential program to a distributed programming setting. Likewise, we will learn about multicast sockets,which generalize the standard socket interface to enable a sender to send the same message to a specified set of receivers; this capability can be very useful for a number of applications, including news feeds,video conferencing, and multi-player games. Finally, we will learn about distributed publish-subscribe applications, and how they can be implemented using the Apache Kafka framework....
Reading
6 видео (всего 43 мин.), 6 материалов для самостоятельного изучения, 2 тестов
Video6 видео
2.2 Serialization/Deserialization9мин
2.3 Remote Method Invocation6мин
2.4 Multicast Sockets7мин
2.5 Publish-Subscribe Model6мин
Demonstration: File Server using Sockets4мин
Reading6 материала для самостоятельного изучения
2.1 Lecture Summary5мин
2.2 Lecture Summary5мин
2.3 Lecture Summary5мин
2.4 Lecture Summary5мин
2.5 Lecture Summary5мин
Mini Project 2: File Server15мин
Quiz1 практического упражнения
Module 2 Quiz30мин
Часов на завершение
15 минуты на завершение

Talking to Two Sigma: Using it in the Field

Join Professor Vivek Sarkar as he talks with Two Sigma Managing Director, Jim Ward, and Senior Vice President, Dr. Eric Allen at their downtown Houston, Texas office about the importance of distributed programming....
Reading
2 видео (всего 13 мин.), 1 материал для самостоятельного изучения
Video2 видео
Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President6мин
Reading1 материала для самостоятельного изучения
About these Talks2мин
Неделя
3
Часов на завершение
4 ч. на завершение

MESSAGE PASSING

In this module, we will learn how to write distributed applications in the Single Program Multiple Data (SPMD) model, specifically by using the Message Passing Interface (MPI) library. MPI processes can send and receive messages using primitives for point-to-point communication, which are different in structure and semantics from message-passing with sockets. We will also learn about the message ordering and deadlock properties of MPI programs. Non-blocking communications are an interesting extension of point-to-point communications, since they can be used to avoid delays due to blocking and to also avoid deadlock-related errors. Finally, we will study collective communication, which can involve multiple processes in a manner that is more powerful than multicast and publish-subscribe operations. The knowledge of MPI gained in this module will be put to practice in the mini-project associated with this module on implementing a distributed matrix multiplication program in MPI....
Reading
6 видео (всего 49 мин.), 6 материалов для самостоятельного изучения, 2 тестов
Video6 видео
3.2 Point-to-Point Communication9мин
3.3 Message Ordering and Deadlock8мин
3.4 Non-Blocking Communications7мин
3.5 Collective Communication7мин
Demonstration: Distributed Matrix Multiply using Message Passing9мин
Reading6 материала для самостоятельного изучения
3.1 Lecture Summary7мин
3.2 Lecture Summary5мин
3.3 Lecture Summary5мин
3.4 Lecture Summary5мин
3.5 Lecture Summary5мин
Mini Project 3: Matrix Multiply in MPI15мин
Quiz1 практического упражнения
Module 3 Quiz30мин
Неделя
4
Часов на завершение
4 ч. на завершение

COMBINING DISTRIBUTION AND MULTITHREADING

In this module, we will study the roles of processes and threads as basic building blocks of parallel, concurrent, and distributed Java programs. With this background, we will then learn how to implement multithreaded servers for increased responsiveness in distributed applications written using sockets, and apply this knowledge in the mini-project on implementing a parallel file server using both multithreading and sockets. An analogous approach can also be used to combine MPI and multithreading, so as to improve the performance of distributed MPI applications. Distributed actors serve as yet another example of combining distribution and multithreading. A notable property of the actor model is that the same high-level constructs can be used to communicate among actors running in the same process and among actors in different processes; the difference between the two cases depends on the application configuration, rather the application code. Finally, we will learn about the reactive programming model,and its suitability for implementing distributed service oriented architectures using asynchronous events....
Reading
6 видео (всего 44 мин.), 7 материалов для самостоятельного изучения, 2 тестов
Video6 видео
4.2 Multithreaded Servers6мин
4.3 MPI and Threading7мин
4.4 Distributed Actors8мин
4.5 Distributed Reactive Programming7мин
Demonstration: Parallel File Server using Multithreading and Sockets3мин
Reading7 материала для самостоятельного изучения
4.1 Lecture Summary5мин
4.2 Lecture Summary5мин
4.3 Lecture Summary10мин
4.4 Lecture Summary5мин
4.5 Lecture Summary5мин
Mini Project 4: Multi-Threaded File Server15мин
Exit Survey10мин
Quiz1 практического упражнения
Module 4 Quiz30мин
Часов на завершение
20 минуты на завершение

Continue Your Journey with the Specialization "Parallel, Concurrent, and Distributed Programming in Java"

The next two videos will showcase the importance of learning about Parallel Programming and Concurrent Programming in Java. Professor Vivek Sarkar will speak with industry professionals at Two Sigma about how the topics of our other two courses are utilized in the field....
Reading
2 видео (всего 10 мин.), 1 материал для самостоятельного изучения
Video2 видео
Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer, Two Sigma3мин
Reading1 материала для самостоятельного изучения
Our Other Course Offerings10мин
4.4
Карьерные преимущества

83%

получил значимые преимущества в карьере благодаря этому курсу
Продвижение по карьерной лестнице

50%

стал больше зарабатывать или получил повышение

Лучшие рецензии

автор: DHSep 17th 2017

Great course. The first programming assignment was challenging and well worth the time invested, I would recommend it for anyone that wants to learn parallel programming in Java.

автор: FFJan 24th 2018

Excellent course! Vivek is an excellent instructor as well. I appreciate having taken the opportunity to learn from him.

Преподавателя

Avatar

Vivek Sarkar

Professor
Department of Computer Science

О Rice University

Rice University is consistently ranked among the top 20 universities in the U.S. and the top 100 in the world. Rice has highly respected schools of Architecture, Business, Continuing Studies, Engineering, Humanities, Music, Natural Sciences and Social Sciences and is home to the Baker Institute for Public Policy....

О специализации ''Parallel, Concurrent, and Distributed Programming in Java'

Parallel, concurrent, and distributed programming underlies software in multiple domains, ranging from biomedical research to financial services. This specialization is intended for anyone with a basic knowledge of sequential programming in Java, who is motivated to learn how to write parallel, concurrent and distributed programs. Through a collection of three courses (which may be taken in any order or separately), you will learn foundational topics in Parallelism, Concurrency, and Distribution. These courses will prepare you for multithreaded and distributed programming for a wide range of computer platforms, from mobile devices to cloud computing servers. To see an overview video for this Specialization, click here! For an interview with two early-career software engineers on the relevance of parallel computing to their jobs, click here. Acknowledgments The instructor, Prof. Vivek Sarkar, would like to thank Dr. Max Grossman for his contributions to the mini-projects and other course material, Dr. Zoran Budimlic for his contributions to the quizzes, Dr. Max Grossman and Dr. Shams Imam for their contributions to the pedagogic PCDP library used in some of the mini-projects, and all members of the Rice Online team who contributed to the development of the course content (including Martin Calvi, Annette Howe, Seth Tyger, and Chong Zhou)....
Parallel, Concurrent, and Distributed Programming in Java

Часто задаваемые вопросы

  • Зарегистрировавшись на сертификацию, вы получите доступ ко всем видео, тестам и заданиям по программированию (если они предусмотрены). Задания по взаимной оценке сокурсниками можно сдавать и проверять только после начала сессии. Если вы проходите курс без оплаты, некоторые задания могут быть недоступны.

  • Записавшись на курс, вы получите доступ ко всем курсам в специализации, а также возможность получить сертификат о его прохождении. После успешного прохождения курса на странице ваших достижений появится электронный сертификат. Оттуда его можно распечатать или прикрепить к профилю LinkedIn. Просто ознакомиться с содержанием курса можно бесплатно.

  • No. The lecture videos, demonstrations and quizzes will be sufficient to enable you to complete this course. Students who enroll in the course and are interesting in receiving a certificate will also have access to a supplemental coursebook with additional technical details.

  • Multicore Programming in Java: Parallelism and Multicore Programming in Java: Concurrency cover complementary aspects of multicore programming, and can be taken in any order. The Parallelism course covers the fundamentals of using parallelism to make applications run faster by using multiple processors at the same time. The Concurrency course covers the fundamentals of how parallel tasks and threads correctly mediate concurrent use of shared resources such as shared objects, network resources, and file systems.

Остались вопросы? Посетите Центр поддержки учащихся.