2022 Parallel Programming

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Saito Suguru  Uto Kuniaki 
Class Format
Lecture / Exercise    (HyFlex)
Media-enhanced courses
Day/Period(Room No.)
Tue3-4(W331)  Fri3-4(W331)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

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.

Student learning outcomes

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

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

lecture terms are in classroom and exercise terms are in computer room of our faculty.

Course schedule/Required learning

  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

Out-of-Class Study Time (Preparation and Review)

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.



Reference books, course materials, etc.

Handout will be uploaded on T2SCHOLA.
Data and sample codes will be uploaded on a web site.

Assessment criteria and methods

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.

Related courses

  • CSC.T263 : Functional Programming Fundamentals
  • CSC.T273 : Object-Oriented Programming
  • CSC.T344 : System Programming
  • CSC.T363 : Computer Architecture

Prerequisites (i.e., required knowledge, skills, courses, etc.)

If there are students exceed the number of computers, the students of computer science will be given priority to.

Page Top