Parallel Programming in Java

开始时间: 04/22/2022 持续时间: Unknown

所在平台: CourseraArchive

课程类别: 其他类别

大学或机构: CourseraNew

课程主页: https://www.coursera.org/archive/parallel-programming-in-java

课程评论:没有评论

第一个写评论        关注课程

课程详情

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism. Why take this course? • All computers are multicore computers, so it is important for you to learn how to extend your knowledge of sequential Java programming to multicore parallelism. • Java 7 and Java 8 have introduced new frameworks for parallelism (ForkJoin, Stream) that have significantly changed the paradigms for parallel programming since the early days of Java. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. • During the course, you will have online access to the instructor and the mentors to get individualized answers to your questions posted on forums. The desired learning outcomes of this course are as follows: • Theory of parallelism: computation graphs, work, span, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism • Task parallelism using Java’s ForkJoin framework • Functional parallelism using Java’s Future and Stream frameworks • Loop-level parallelism with extensions for barriers and iteration grouping (chunking) • Dataflow parallelism using the Phaser framework and data-driven tasks Mastery of these concepts will enable you to immediately apply them in the context of multicore Java programs, and will also provide the foundation for mastering other parallel programming systems that you may encounter in the future (e.g., C++11, OpenMP, .Net Task Parallel Library).

Java并行编程:本课程向学习者(行业专业人士和学生)讲授Java 8上下文中并行编程的基本概念。并行编程使开发人员可以使用多核计算机,通过同时使用多个处理器来使其应用程序运行得更快。 。在本课程结束时,您将学习如何使用流行的并行Java框架(例如ForkJoin,Stream和Phaser)为包括服务器,台式机或移动设备在内的多种多核平台编写并行程序。关于它们的理论基础,包括计算图,理想并行性,并行加速,阿姆达尔定律,数据竞争和确定性。 为什么要上这门课? •所有计算机都是多核计算机,因此对您而言重要的是学习如何将顺序Java编程知识扩展到多核并行性。 Java 7和Java 8引入了新的并行性框架(ForkJoin,Stream),自Java诞生以来,它们已大大改变了并行编程的范式。 •课程的四个模块中的每个模块均包含一个分配的小型项目,该课程将为您提供必要的动手经验,以便在课程结束后自行使用在课程中学习到的概念。 •在课程过程中,您将可以在线访问讲师和指导者,以获取针对您在论坛上发布的问题的个性化答案。 该课程的预期学习成果如下: •并行理论:计算图,工作,跨度,理想并行,并行加速,阿姆达尔定律,数据竞争和确定性 •使用Java的ForkJoin框架进行任务并行处理 •使用Java的Future和Stream框架进行功能并行 •循环级并行性,具有针对障碍和迭代分组(分块)的扩展 •使用Phaser框架和数据驱动的任务进行数据流并行化 掌握这些概念将使您能够立即将它们应用在多核Java程序的上下文中,并且还将为掌握将来可能会遇到的其他并行编程系统(例如C ++ 11,OpenMP,.Net)提供基础。任务并行库)。

课程大纲

In this module, we will learn the fundamentals of task parallelism. Tasks are the most basic unit of parallel programming. An increasing number of programming languages (including Java and C++) are moving from older thread-based approaches to more modern task-based approaches for parallel programming. We will learn about task creation, task termination, and the “computation graph” theoretical model for understanding various properties of task-parallel programs. These properties include work, span, ideal parallelism, parallel speedup, and Amdahl’s Law. We will also learn popular Java APIs for task parallelism, most notably the Fork/Join framework.

课程评论(0条)

课程简介

This course teaches learners (industry professionals and students) the fundamental concepts of paral

课程标签

3人关注该课程

主题相关的课程