2018 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  Sato Toshiki 
Class Format
Lecture / Exercise     
Media-enhanced courses
Day/Period(Room No.)
Tue3-4(W932)  Fri3-4(W932)  
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
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



Reference books, course materials, etc.

Handout will be delivered in the class.
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