CS441 System Architecture
- Course
- 37426
- Section
- F01
- Credits
- 3 + 0
- Prerequisites:
-
- CS321
- EE341
- Instructor
- Orion Lawlor
- Phone
- 907-474-7678
- Office
- Duckering 529
- lawlor@alaska.edu
- Office Hours
- By Appointment
- Meeting Time
- Room
- Chapman 104
- Course Website
- /courses/cs441/2016-spring/
- Required Texts
- NO required text. Totally OPTIONAL text: Computer Organization and Design: The Hardware/Software Interface, Patterson and Hennessy, any edition.
Course Description
By the end of the course, you will be able to understand both the present and future of computer design for performance: parallelism. Specifically, we will cover circuit-level parallelism via circuit simulators; instruction-level transparent parallelism including pipelining, superscalar, and out-of-order execution; vector parallelism including SWAR, SIMD, and GPU programming; as well as coarser-grained parallelism including multicore, multi-thread, and distributed-memory network and cloud computing.
Tentative Schedule
-
- Power fundamentals and circuit design basics
-
- Physical properties of circuit switching
-
- The CPU as a circuit
-
- Pipelining and CPU instruction set design
-
- Superscalar CPU design
-
- SIMD: Single Instruction Multiple Data parallelism
-
- SSE & AVX: SIMD for floating point
-
- Multicore programming
-
- Multicore: locks vs atomics
-
- Deadline to apply for spring 2016 graduation
-
- CUDA programming
-
- CUDA memory model and atomics
-
- CUDA/Multicore cache hierarchy
-
- CUDA/Multicore memory access optimization
-
- Parallelism: high performance computing
-
- Tuning code for high performance
-
- Project 1 presentations
-
- Project 1 presentations cont'd
-
- Spring break (no classes this week)
-
- Bits in a floating point number: IEEE float
-
- File formats and network protocols
-
- Last day for student- and faculty-initiated withdrawals (W grade appears on academic transcript)
-
- Network servers & sockets
-
- HTTP and JavaScript
-
- Begin registration and fee payment for fall 2016 semester (degree students)
-
- JavaScript machine model and performance
-
- JavaScript memory model and emscripten (C++ to JavaScript)
-
- Virtualization technologies
-
- Cloud computing
-
- Quantum computers & programming
-
- Biological computers & atomic hardware parallelism
-
- SpringFest (no classes)
-
- Project 2 presentations
-
- Project 2 presentations cont'd (last day of class)
-
- Final exam begins at 8am (!)
-
- Commencement
Grading Policies
Weight | Description |
---|---|
5% | Attendance and class participation, graded at random intervals throughout the semester |
15% | Homework and in-class exercises |
20% | Project 1: a research project due just before spring break |
20% | Project 2: an applied project due at the end of the semester |
20% | Midterm exam, just before spring break |
20% | Final exam, at the end of the semester |
Grades will be assigned based on the following percentage intervals:
Course Goals And Requirements
To understand this, you will need to know at least the following topics from the course prerequisites:
From CS321 (OS), and its prerequisite CS301 (Assembly)
- Bits, binary, hex, octal, bitwise operations (like & | ~ ^ << >>), and why they matter
- Basic computer hardware: CPU, arithmetic, floating-point, cache, RAM, disk, network sockets
- How the CPU runs, at the level of assembly language and machine code
- Threads, processes, virtual memory, paging, shared memory, concurrency, task switching
From EE 341, and its prerequisite Physics 212
- Volts, amps, ohms, power, capacitance, and how they affect circuit design at high density and speed
- Logic gates: and, or, not, xor, nand, nor, and how they're useful to build circuits
- Glue logic: tristate busses, mux/demux, flip-flops, and how to build circuits with them
Estimated Syllabus Completeness
98%
Late Work Policy
Late work will not be graded, unless it is due to circumstances beyond your control, or if you turn it in before I begin grading. I may begin grading at any time after the due date, even 12:01am the next day. You are encouraged to inquire if I have begun grading yet, since this acts as a reminder for me to do so!
Policies
Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, in-class work (other than quizzes) and homework may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures. Students in this class must pay the CS lab fee.
UAF academic policies http://www.uaf.edu/catalog/current/academics
CS Department policies http://www.cs.uaf.edu/departmental-policies/
Disabilities Services:
The UAF Office of Disability Services implements the Americans with Disabilities Act (ADA), and ensures that UAF students have equal access to the campus and course materials. I will work with the UAF Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities.