ITMC403 : Parallel and Distributed Computing

Department

Department of Mobile Computing

Academic Program

Bachelor in Mobile Computing

Type

Elective

Credits

03

Prerequisite

Overview

As multi-core machines become more prevalent, different programming paradigms have emerged for harnessing extra processors for betterperformance. This course explores parallel computation (programs that run on more than one core) as well as the related problem of distributed computation (programs that run on more than one). The goal of the course is to introduce students to parallel and distributed processing, including both theory and hands-on experience. Topics covered: An overview of parallel computing; Languages and programming environments; Message-passing computing; Embarrassingly parallel computations; Partitioning and divide-and-conquer strategies; Pipelined computations; Synchronous computations; Load balancing and termination detection; Programming with shared memory; Algorithms and applications.

Intended learning outcomes

Knowledge &understand

  • The student should be familiar with parallel programming languages.
  • To familiarize the student with an understanding of all the basic concepts and types of parallel and distributed computers.
  • The student should be familiar with the methods of processing accounts.
  • The student should be familiar with the method of scheduling types of operations package and processors.

mental skills

  • The student solves a specific problem using distributed parallel computers.
  • A The student solves the problem in the fastest way during the implementation of the program.
  • The student should propose solutions and ideas other than the ideas given in the lectures.
  • The student should distinguish how to link the basic concepts of parallel programming languages and choose the appropriate ones to solve a problem.

Practical & professional skills

  • The student should write integrated programs for the package of operations and processors to solve a specific problem in the best and simplest way.
  • The student should use the operations package together using distributed parallel computers.
  • The student should use scheduling in the implementation of programs.
  • The student must apply one of the parallel programming languages distributed within the lab.
  • The student must perform an integrated project to implement all of the above explained in the course.

General and transferable skills

  • The student should be able to solve problems using distributed parallel computing.
  • The student should be able to use scheduling and handle all the basic concepts of distributed parallel computing.
  • The student should be able to work in a team to solve, apply and implement a problem.
  • The student should be able to deliver a project in the field of distributed parallel computing.

Teaching and learning methods

  • Theoretical lectures in the classroom.
  • Practical lectures inside the laboratory with the help of teaching assistants in the college.
  • A panel discussion between students and in the presence of the professor to obtain new opinions and ideas.
  • Assignments and tests to motivate students to reach the best way to solve and discuss them with the professor

Methods of assessments

  • Midterm exam = 20
  • Scientific activities (e.g. writing a report or making a presentation) = 10
  • Discussions = 5
  • Practical test = 15
  • Final exam = 50

Course contents

  • Introduction to parallel and distributed computing
  • Performance analysis
  • Parallel computers architecture
  • Peer-to-peer systems
  • Fault tolerance
  • Peer to peer Programing
  • Static scheduling
  • Dynamic scheduling
  • Group communications
  • Group communications II
  • Explicit parallel languages
  • Implicit parallel languages
  • Computations models (eager ,demand)
  • Selected issues in distributed processing

Principles of Games Developments (ITMC404)
Parallel and Distributed Computing (ITMC403)
Mobile Multimedia (ITMC402)
Mobile 3D Graphics (ITMC401)
Mobile Commerce (ITMC304)
Programming Paradigms (ITMC302)
ARM microprocessor (ITMC301)
Arabic language 1 (ITAR111)
General English1 (ITEL111)
Physics (ITPH111)
Intro to Information Technology (ITGS111)
Problem solving Technic (ITGS113)
Mathematics I (ITMM111)
Arabic language 2 (ITAR122)
Mathematics II (ITMM122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Introduction to Networking (ITGS215)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Computer Architucture & Organization (ITGS223)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Information Security (ITGS224)
Introduction to Internet Programming (ITGS226)
Introduction to Databases (ITGS228)
Mobile Applications Development (ITMC311)
Design and Analysis algorithms (ITGS301)
Operating System (ITGS302)
Principles of mobile communication networks (ITMC312)
IT Project Management (ITGS303)
Scientific Writing (ITGS304)
Cross-Platform Mobile App Development (Flutter) (ITMC323)
Heterogeneous and Mobile Databases (ITMC322)
Mobile Interaction Design (ITMC321)
Mobile Operating System (ITMC313)
Security in mobile computing (ITMC411)
Personal Area Networks (ITMC412)
Social Networking (ITMC413)
Networks Programming (ITMC414)
Fundamentals ubiquitous computing (ITMC421)
Cloud Computing (ITMC422)