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 | |
Class 2 | review: data and its stored way | shallow copy and deep copy real and reference Javaの変数 |
Class 3 | Thread | wait, join, and notify |
Class 4 | exercise 1 | |
Class 5 | Thread confinement and synchronize | monitor |
Class 6 | exercise 2 | |
Class 7 | Stream and thread | stream, lambda expression, and deferred execution |
Class 8 | Event-driven programming | event handler |
Class 9 | exercise 3 | |
Class 10 | Event-driven programming2 | starvation |
Class 11 | exercise 4 | |
Class 12 | GPU programming | OpenCL |
Class 13 | exercise 5 | |
Class 14 | GPU programming image processing | data parallel execution |
Class 15 | exercise 6 |
None
Handout will be delivered in the class.
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.