Parallel programming is an indispensable technique to use a recent computer efficiently. In this lecture and exercise, you will learn the basic knowledge and practical skills for parallel programming.
In a parallel program, problems not occurring in a non-parallel program happen. The reason why those happen and methods to avoid them are explained in lecture. Actual programming is experienced in exercise. Therefore please acquire programming knowledge in advance.
Java language is adopted in this class.
The goal of this class is to learn several knowledge parts to build a right parallel program, such as right data resource sharing, synchronization, appropriate calculation power distribution, deferred execution and so on through java code.
Topics are:
1) understanding where a data instance is stored
2) thread programming
3) event-driven programming
4) GPU programming
Thread programming, GPU programming, GUI programming, Visibility, Synchronize, Monitor, Atomicity
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | ✔ Practical and/or problem-solving skills |
lecture terms are in classroom and exercise terms are in computer room of our faculty.
Course schedule | Required learning | |
---|---|---|
Class 1 | Introduction, Event-driven programming | event and event handler |
Class 2 | exercise 1 | JavaFX program |
Class 3 | Event-driven programming(2) Thread | event transfer thread, monitor |
Class 4 | exercise 2 | JavaFX program 2 |
Class 5 | Thread safe review: data and its stored way | unshared, immutable, synchronize shallow copy and deep copy, real and reference |
Class 6 | exercise 3 | review of data and pointer, use of polymorphism race condition |
Class 7 | thread and complex synchronization atomic | wait, join, and notify starvation |
Class 8 | exercise 4 | concurrent server |
Class 9 | deferred execution stream | stream, lambda expression, thread pool |
Class 10 | exercise 5 | lambda expression and stream |
Class 11 | GPU programming | OpenCL |
Class 12 | exercise 6 | OpenCL |
Class 13 | GPU programming image processing | data parallel execution |
Class 14 | exercise 7 | image processing integrated application |
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
None
Handout will be uploaded on T2SCHOLA.
Data and sample codes will be uploaded on a web site.
Practice assignment reports and paper test. The assignment report scores will most heavily affect the final score, but the final paper test must be taken.
If there are students exceed the number of computers, the students of computer science will be given priority to.