MX in High Performance and Cloud Computing

All candidates for the MX in High Performance and Cloud Computing must satisfy the overall requirements of KFUPM in addition to the following:

a)      The general requirements for the professional Master's are as follows:

  1. A Grade-Point Average (GPA) of 2.5 or higher on a scale of 4.00
  2. Completion of TOFEL with a minimum score of 525 (PBT), 194 (CBT), or 70 (IBT). IELTS is also acceptable with a minimum of 6.0. (TOEFL is not required for students who graduated from KFUPM)
  3. At least two letters of recommendation

b)      The technical backgrounds needed for Admission are:

  1. A 4-year B.Sc. or equivalent degree in Computer Engineering, Computer Science, Software Engineering, or Electrical Engineering.
  2. Knowledge of Programming and data structure.
  3. Basics of Computer Organization and Architecture.
  4. Basics of Linear Algebra

Satisfying the minimum admission requirements does not guarantee admission into the program, as final admission is subject to the evaluation of the entire application, and a personal interview. Based on the assessment of the applicant's file and the personal interview, the admission committee might offer conditional acceptance for students who need to take deficiency courses.

The MX in High Performance and Cloud Computing consists of 9 core courses from different disciplines.

 

Core Courses

 
Sr.Course Code and Title
1COE 502: Parallel Processing Architecture
2COE 506: GPU Programming and Architecture
3COE 523: Distributed Computing
4COE 548: Cloud-Based Systems
5COE 558: Cloud and Edge Computing
6MATH 557: Applied Linear Algebra
7ICS 507: Design and Analysis of Parallel Algorithms
8ICS 574: Big Data Analytics
9COE 619: Project

 

 

Course Description

 

COE 502: Parallel Processing Architecture (3-0-3)

Introduction to parallel processing architecture, sequential, parallel, pipelined, and dataflow architectures. Parallel program models. Basic parallel programming techniques, problem decomposition, assignment, orchestration, and mapping. Examples and case studies of static, semi-static, and dynamic application parallelism. Performance: evaluation, scalability, and workload selection.

Pre-requisites: Graduate Standing

COE 506: GPU Programming and Architecture (3-0-3)

Basics of conventional CPU architectures, their extensions for single instruction multiple data processing (SIMD), and generalizations of single instruction multiple thread processing (SIMT) in modern GPUs. GPU architecture basics in terms of functional units. CUDA programming model. Architecture-specific details (like memory access coalescing, shared memory usage, GPU thread scheduling) that affect program performance. OpenCL/OpenACC can be used for programming both CPUs and GPUs in a generic manner. Different architecture-aware optimization techniques relevant to both CUDA and OpenCL. Application development examples in well-known GPU computing scenarios.

Pre-requisites: COE 502

COE 523: Distributed Computing (3-0-3)

Introduction to distributed computing and systems: processes, tasks, threads, and abstraction. Architectural models of distributed systems and their design issues. Mutual exclusion, condition variables, and atomic instructions. Time and synchronization. Distributed algorithms and their models of execution. Consensus and leader election protocols. Distributed file systems. Distributed ledgers. Scalability-enabling techniques: partitioning and replication. CAP theorem. Locking and transactions: 2PL and 2PC. ACID transactions Programming constructs and techniques: sockets programming, remote procedure calls. Fault-tolerance. Logging and crash recovery. Examples of distributed systems: DNS and CND. Hands-on sessions.

Pre-requisites: Graduate Standing

COE 548: Cloud-Based Systems (3-0-3)

Introduction to Cloud Computing. Cloud characteristics and deployment models. Cloud architectures and enabling technologies. Cloud operations: resource provisioning and load balancing. Cloud performance guarantees: service quality metrics and service level agreement. Cloud infrastructure design, development, and migration. Cloud infrastructure management and monitoring. Cost metrics and pricing models. Cloud laws and regulations. Software-defined networking and network function virtualization. Hands-on activities and case studies. Project.

Pre-requisites: Graduate Standing

COE 558: Cloud and Edge Computing (3-0-3)

Internet and web protocols and technologies. Basics of web development: frontend, backend, and full-stack. Web services and RESTful APIs. Introduction to utility computing: Cloud and Edge computing. Cloud Service-oriented architecture and microservices. The XaaS pyramid. Serverless computing. Cloud resource management. Automated deployment and operations techniques. Virtualization and containerization. Cloud data storage: block storage, object storage, and file storage. Cloud "Big data" processing: MapReduce and Hadoop, Spark, BigTable. Cloud-native applications. Security of Cloud computing.

Pre-requisites: Graduate Standing

MATH 557: Applied Linear Algebra (3-0-3)

Basic finite difference method. Basics concepts from linear algebra and numerical analysis. Direct methods for large, sparse linear systems, Cholesky and LU factorizations. Regularization of ill-conditioned least squares problems. SVD and QR factorizations. Sensitivity and conditioning of linear systems and least square problems. Stationary and non-stationary iterative methods, multigrid methods. Matrix theory includes spectral decompositions and eigenvalue perturbation theory. Eigenvalue and QR algorithm, and computations of SVD. Applications

Pre-requisites: Graduate Standing

ICS 507: Design and Analysis of Parallel Algorithms (3-0-3)

Introduction to parallel computational models (PRAM, Meshes, Trees, Hypercubes, Shuffle-Exchange, Mesh-of-Trees) and complexity measures. Parallel algorithms design techniques: divide-and-conquer, parallel prefix, pointer jumping, list ranking, Euler's path technique, and ear decomposition. Parallel algorithms for selection, merging, sorting, searching, and graph problems. Computational geometry. Graph embedding. Parallel computational complexity: equivalence of Boolean circuits and the PRAM models, the NC class, and P-complete problems.

Pre-requisites: Graduate Standing

ICS 574: Big Data Analytics (3-0-3)

Introduction to Big data, data collection on the cloud, data in IoT, challenges of big data analysis, virtualization in cloud computing systems, hypervisors for creating native virtual machines, Amazon AWS Cloud, AWS Lambda, Google App Engine, and Microsoft Azure, intelligent machines and deep learning networks, Introduction to basic ML learning tools on cloud computing, Machine learning algorithms (Tensorflow) on Hadoop and Spark. 

Pre-requisites: Graduate Standing

COE 619:  Project (0-0-6)

A graduate student will arrange with a faculty member to conduct an industrial project related to the High-Performance Computing or Cloud Computing field of the study. Subsequently, the students shall acquire skills and gain experience in developing industry-based projects. This project culminates in the writing of a technical report, and an oral technical presentation in front of a board of professors and industry experts.

Pre-requisites: Graduate Standing

 

 

 

Degree Plan

Course # Title LT LB CR
First Semester
COE 502 Parallel Processing Architecture 3 0 3
MATH 557 Applied Linear Algebra 3 0 3
  6 0 6
Second Semester
COE 523 Distributed Computing 3 0 3
ICS 507 Design and Analysis of Parallel Algorithms 3 0 0
  6 0 6
Third Semester
COE 506 GPU Programming and Architecture 3 0 3
COE 548 Cloud-based Systems 3 0 3
    Project 0 0 IP
      6 0 6
Fourth Semester      
COE 558 Cloud and Edge Computing 3 0 3
ICS 574 Big Data Analytics 3 0 3
COE 619 Project 0 0 6
      6 0 12
    Total Credit Hours     30