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:
b) The technical backgrounds needed for Admission are:
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.
Sr. | Course Code and Title |
1 | COE 502: Parallel Processing Architecture |
2 | COE 506: GPU Programming and Architecture |
3 | COE 523: Distributed Computing |
4 | COE 548: Cloud-Based Systems |
5 | COE 558: Cloud and Edge Computing |
6 | MATH 557: Applied Linear Algebra |
7 | ICS 507: Design and Analysis of Parallel Algorithms |
8 | ICS 574: Big Data Analytics |
9 | COE 619: Project |
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 |
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 |