COURSE UNIT TITLE

: PARALLEL COMPUTING

Description of Individual Course Units

Course Unit Code Course Unit Title Type Of Course D U L ECTS
CME 4405 PARALLEL COMPUTING ELECTIVE 2 2 0 6

Offered By

Computer Engineering

Level of Course Unit

First Cycle Programmes (Bachelor's Degree)

Course Coordinator

PROFESSOR DOCTOR RECEP ALP KUT

Offered to

Computer Engineering

Course Objective

The goal of this course is to introduce students to the basics of parallel programming and parallel computer architectures. With this course, students will learn thinking in parallel; writing parallel programs with MPI and OpenMP by designing simple algorithms for parallel architectures in shared memory and distributed memory systems; programming with CUDA on the graphics processor unit (GPU) architecture; big data concepts and characteristics; the computing platforms in Apache Hadoop ecosystem; application development using MapReduce model; learn how to use functional programming language Scala and distributed computing with Apache Spark.

Learning Outcomes of the Course Unit

1   Understanding parallel architectures
2   Programming with MPI and OpenMP for shared and distributed memory architectures
3   Programming with CUDA on graphics processor unit (GPU) architecture
4   Programming with MapReduce model in Hadoop platform on cluster system
5   Ability to use Scala and Spark in big data distributed in cluster system

Mode of Delivery

Face -to- Face

Prerequisites and Co-requisites

CME 2201 - DATA STRUCTURES

Recomended Optional Programme Components

None

Course Contents

Week Subject Description
1 Computer Architecture preliminaries
2 Basics of parallel programming
3 Parallel architectures with distributed and shared memory and MPI-OpenMP programming
4 Graphics processor unit architecture and CUDA programming
5 Big data definition, concepts, sample applications
6 Computing Platforms in the Apache Hadoop ecosystem
7 MapReduce programming model basics and application development
8 MapReduce programming model basics and application development
9 MapReduce programming model basics and application development
10 Functional programming concept and Scala programming
11 Functional programming concept and Scala programming
12 Distributed computing with Apache Spark
13 Distributed computing with Apache Spark
14 Parallel Programming Review

Recomended or Required Reading

Pacheco, Peter S., An introduction to parallel programming, Morgan Kaufmann Publishers for Elsevier, 2011
Tom White, Hadoop The Definitive Guide (3rd edition), O Reilly, 2012

Planned Learning Activities and Teaching Methods

Presentation/Lecturing, Applications, programming practice and exercises

Assessment Methods

SORTING NUMBER SHORT CODE LONG CODE FORMULA
1 MTE MIDTERM EXAM
2 PRJ PROJECT
3 FIN FINAL EXAM
4 FCG FINAL COURSE GRADE MTE * 0.25 + PRJ * 0.25 + FIN * 0.50
5 RST RESIT
6 FCGR FINAL COURSE GRADE (RESIT) MTE * 0.25 + PRJ * 0.25 + RST * 0.50


*** Resit Exam is Not Administered in Institutions Where Resit is not Applicable.

Further Notes About Assessment Methods

None

Assessment Criteria

Midterm, Final exam, Project

Language of Instruction

English

Course Policies and Rules

Attendance is mandatory.

Contact Details for the Lecturer(s)

Prof.Dr. Alp KUT
Department of Computer Engineering
Dokuz Eylul University
Tinaztepe Buca, 35160 Izmir, Türkiye
Tel: +90-232-3017401

Office Hours

Monday 13.00-15.00

Work Placement(s)

None

Workload Calculation

Activities Number Time (hours) Total Work Load (hours)
Lectures 14 2 28
Tutorials 14 2 28
Preparations before/after weekly lectures 14 2 28
Preparation for midterm exam 1 14 14
Preparation for final exam 1 18 18
Project Preparation 1 30 30
Final 1 2 2
Midterm 1 2 2
TOTAL WORKLOAD (hours) 150

Contribution of Learning Outcomes to Programme Outcomes

PO/LOPO.1PO.2PO.3PO.4PO.5PO.6PO.7PO.8PO.9PO.10
LO.1532
LO.253432
LO.353432
LO.453432
LO.5432