CS 475: Distributed Computer Systems

Dr. Ziad A. Al-Sharif

Fall 2021


Course Syllabus:

This is a three Credit hours course. First it introduces the Linux system as a development environment, then it covers advanced topics such as the definitions and characteristics of distributed computer systems, architectural and software models, remote procedure calls, distributed objects, processes and threads, logical clocks and ordering of events, distributed algorithms (e.g., mutual exclusion, consensus and election, termination detection), pervasive computing, distributed multimedia systems, distributed file systems, replication, and transactions and concurrency control.

Course Topics

  • Review of C programming under Linux (i.e. Linux VM, WSL, C dynamic memory allocation, gcc, gdb, makefile, etc.)
  • Introduction to parallel computing (Parallel Hardware and Parallel Software)
  • Introduction to parallel programming design process (Parallel Programming Models)
  • Parallel programming using a shared memory address space (Pthreads/OpenMP)
  • Parallel programming using a distributed memory address space (MPI)
  • Course Learning Outcomes

  • CLO1: Students should be able to identify the main C language features and the UNIX/Linux based development environment that support parallel programming (25%)
  • CLO2: Students should be able to describe the main parallel computing concepts, classes, limits, costs, memory architectures, and the major steps in the parallel solution design process (25%)
  • CLO3: Students should be able to implement a simple parallel algorithm using Pthreads / OpenMP (25% )
  • CLO4: Students should be able to implement a simple parallel algorithm using MPI (25%)

  • Professor: Ziad A. Al-Sharif
    Office: Online
    Office Hours: Online (ejust.org)
    Email: zasharif@just.edu.jo
    URL: https://www.just.edu.jo/~zasharif/
    ---- ----
    Class: CS 475: Distributed Computer Systems
    Prerequisite: CS 342 (Computer Networks) + CS 375 (Principles of Modern Operating Systems)
    Class Hours:
    Sec. No. Days: Time Location
    1 Monday & Wednesday 8:30 am- 10:00 am PH2 101


    Text Book:

  • An Introduction to Parallel Programming
    by Peter Pacheco,
    ISBN-10: 0123742609 • ISBN-13: 978-0123742605
    Book Website
    Amazon

  • Distributed Systems: Concepts and Design, 5th Edition,
    by George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair,
    ISBN-10: 0132143011 • ISBN-13: 978-0132143011
    Amazon

  • Additional Resources:

    • Distributed Systems: Principles and Paradigms, 2nd Edition,
      by Andrew S. Tanenbaum and Maarten van Steen,,
      ISBN-10: 153028175X • ISBN-13: 978-1530281756
      Amazon

    • Ananth Grama, George Karypis, Vipin Kumar, and Anshul Gupta,
      Introduction to Parallel Computing, 2nd Edition,
      ISBN-10: 0201648652 • ISBN-13: 978-0201648652
      Amazon

    • Avi Silberschatz, Peter Baer Galvin, and Greg Gagne,
      Operating System Concepts, 10th Edition , John Wiley & Sons, Inc. April 15, 2018,
      ISBN-10: 1119456339 • ISBN-13: 978-1119456339
      The Book Website, other editions are avilable at: www.os-book.com


    Grading Policies:

    • Based on the JUST University rules: there will be two in-class exams scheduled by the University during the semester:
      • Midterm Exam : 25%
      • Final Exam : 50%
    • Class Activities Including:
      • Homework & Assignments : 10%
      • Quizzes: 15%


    Schedule & Handouts:

    Lecture # Topics Handouts HWs &
    Quizzes
    Code SamplesLinks & Extra Notes
    Week 1:
    10 Oct. - 16 Oct.
    Syllabus
    What to Expect
    Linux Essentials
    Linux Shell
    Commands (CLI)
    WSL vs. VM
    What is WSL
    00-LinuxEssentials.pptx
    WSL: Windows Subsystem for Linux
    What is WSL?
    Containers vs. VMs
    VirtualBox
    Ubuntu Image
    VirtualBox Images
    cheat_sheet.pdf
    Week 2:
    17 Oct. - 23 Oct.
    Editing/Managing Files in shell
    The Essentials of C Language ()
    scanf(), printf()
    main(int argc, char **argv)
    01-EditingFiles.pptx
    02-C-Essentials.pptx
    The GNU C Reference Manual
    The C Programming Language.pdf
    Week 3:
    24 Oct. - 30 Oct.
    More on C: functions, pointers, malloc() and free()
    Dynamic: One-Dimensional & Two-Dimensional Arrays
    02-C-Essentials.pptx
    Quiz#1 is on ejust.org
    topics: Linux shell commands

    HW1.pdf
    first_test_1.c
    first_test_2.c
    first_test_3.c
    first_test_4.c
    Week 4:
    31 Oct. - 6 Nov.
    More on Compiling and Debugging C Programs
    on Linux: using GCC & GDB
    Makefile and the make command
    03-GDB.pdf
    04-GCC.pptx
    05-Makefiles.pptx
    main.c
    my_print.c
    makefile
    An Introduction to GCC
    GDB: The GNU Project Debugger
    GNU make
    An Introduction to Makefiles
    Week 5:
    7 Nov. - 13 Nov.
    Introduction to Parallel Computing
    Why Parallel Computing ?
    Parallel Hardware and Parallel Software
    06-WhyParallelComputing.pptx
    07-Parallel-Hardware-Software.pptx
    Quiz#2 is on ejust.org
    topics: GCC, GDB, & Makefiles
    What is Parallel Computing?
    Concepts and Terminology
    Parallel Computer Memory Architectures
    Week 6:
    14 Nov. - 20 Nov.
    Parallel Programming Models 08-Parallel-Programming-Models.pptx
    Parallel Programming Models
    Intro. to Parallel Computing Tutorial Designing Parallel Programs
    Week 7:
    21 Nov. - 27 Nov.
    Intro. to OpenMP 09-OpenMP-Part1.pptx
    10-OpenMP-Part2.pptx
    Quiz#3 is on ejust.org
    Parallel HW, SW, and programming models

    HW2.pdf
    HelloWorld_1.c
    HelloWorld_2.c
    HelloWorld_3.c
    HelloWorld_4.c
    HelloWorld_5.c

    openmp.org
    OpenMP Tutorial
    Intro. to Parallel Computing Tutorial

    pymp
    Pymp – OpenMP-like Python Programming
    Week 8:
    28 Nov. - 4 Dec.
    OpenMP: Parallel Regions & Worksharing 11-1-OpenMP-Part3.pptx
    Mon. Nov. 29: Lecture:In Class

    Wed. Dec.1: Lecture:(Recorded)
    Will be available on MS Teams
    Please do not forget HW#2
    dotprod_serial.c
    dotprod_parallel_1.c
    dotprod_parallel_2.c
    dotprod_parallel_for.c
    Week 9:
    5 Dec. - 11 Dec.
    Worksharing & Nested Loops
    sections, master, single
    11-2-OpenMP-Part3.pptx
    11-4-OpenMP-Part3.pptx
    11-5-OpenMP-Part3.pptx
    parallel_1.c
    sections_1.c
    sections_2.c
    sections_3.c
    single_1.c
    single_2.c
    master_1.c
    master_2.c
    Week 10:
    12 Dec. - 18 Dec.
    More on OpenMP:
    Data Environment
    Synchronization Constructs
    11-6-OpenMP-Part3.pptx
    11-7-OpenMP-Part3.pptx
    data_shared_1.c
    data_shared_2.c
    data_private_1.c
    data_private_2.c
    data_firstprivate_1.c
    data_lastprivate_1.c
    data_lastprivate_2.c
    data_reduction_1.c

    partial_sum.c
    reduction_sum.c

    critical_1.c
    critical_2.c
    atomic_1.c
    barrier_1.c
    barrier_2.c
    single_1.c
    master_1.c
    master_2.c
    orderd_1.c
    orderd_2.c
    orderd_3.c
    orderd_4.c
    Week 11:
    19 Dec. - 25 Dec.
    Intro. to MPI
    Simple Examples
    12-MPI-Basics-01.pptx
    Quiz#4: OpenMP is on ejust.org
    mpi_hello_0.c
    mpi_hello_0.cpp
    mpi_hello_0.py
    Book: Parallel Programming with MPI
    Message Passing Interface(MPI)
    MPI Forum
    MPICH
    OpenMPI
    mpi4py.pdf
    Parallel programming in Python (part1)
    Parallel programming in Python (part2)
    Midterm Exam
    Thursday, Dec. 30, 2021
    Time: 11:30 am -- 12:30 pm, Location: LAB N2 L-1
    Topics: OpenMP
    Week 12:
    26 Dec. - 1 Jan.
    Intro. to MPI 12-MPI-Basics-02.pptx
    mpi_hello_1.c
    mpi_hello_2.c
    mpi_hello_3.c
    mpi_hello_4.c
    Book: Parallel Programming with MPI
    Message Passing Interface(MPI)
    MPI Forum
    MPICH
    OpenMPI
    mpi4py.pdf
    Parallel programming in Python (part1)
    Parallel programming in Python (part2)
    Week 13:
    2 Jan. - 8 Jan.
    MPI Communicators and Groups 12-MPI-Basics-03.pptx
    mpi_send_recv_1.c
    mpi_send_recv_2.c
    mpi_wtime_1.c
    mpi_wtime_2.c

    mpi_Sum.c
    mpi_SumN.c
    mpi_SumN_WithoutMaster.c
    mpi_SumN_WithoutMaster_Collective.c
    mpi_NonBlockingSendReceive.c
    Computing pi in C with MPI
    MPI Exercise
    Using MPI and Using Advanced MPI
    Videos from OpenMPI
    Week 14:
    9 Jan. - 15 Jan.
    MPI Communicators and Groups 12-MPI-Basics-04.pptx
    Week 15:
    16 Jan. - 22 Jan.
    Final Projects: In-class discussions and presentations
    Final Examination Period
    22 Jan. - 5 Feb.
    Final Exam's Date:Saturday, February 5, 2022. Time: 9:00am -- 10:45am, Location: NF 25

    Make ups:

    Unless arrangements are worked out in advance, missed assignments cannot be made up, and 10% per week will be deducted for late submissions. Exams' makeup must go through the department and faculty approvals process.

    Homework and Assignments:

    Several Lab assignments will be assigned. Most assignments will be submitted electronically using the e-learning system. Homework and assignments must be submitted before their corresponding due date and time, as indicated in the assignment description. Late submissions will be assessed a 10% penalty per day. All Lab Assignments must be submitted before the start of the next lab week and will not be graded thereafter.

    In-Class Computers and Handheld Devices:

    Phone calls, text messages, instant messages, email, and general web surfing are not allowed during class time. Computers may only be used to follow the material in class. Violators will have their devices confiscated or asked to leave the room.

    Cheating:

    In this course, all assignments, exams, and project submissions implicitly imply that it is the sole work of the author, unless joint work is explicitly authorized. Help may be obtained from the instructor or other students to understand the description of the problem and any technology, but the solution must be the student's own work. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered a cheating attempt, and as a minimum, will result in failure of the submission and as a maximum reporting the incident to the department and the faculty to apply the University rules.


    This page is initiated on October 10, 2021.

    Flag Counter