I use Moodle for my courses, which makes it challenging to make my
course content public. The website you see below is an automatically
generated approximation of my Moodle page, based on a script that I've
run.
General materials
- Syllabus
- Course schedule
- Installing Java on your own computer
- Code written in class
Week 1
Readings and references
- Beginner's Introduction to Java's ForkJoin Framework
- Java tutorial: Concurrency
- Documentation for java.util.concurrent
Assignments
- Introduction assignment
- Due Wed Sep 12 13:50:00 CDT 2018
- Multithreaded Java exercises
- Due Fri Sep 14 13:50:00 CDT 2018
Week 2
Readings and references
- Gene Amdahl's statement, which led to Amdahl's Law
- Gustafson's Law (web version of paper)
Assignments
- ForkJoin Java exercises
- Due Wed Sep 19 13:50:00 CDT 2018
- Speedup analysis
- Due Fri Sep 21 14:20:00 CDT 2018
Week 3
- Census assignment
- Census version 1
- Due Wed Sep 26 13:50:00 CDT 2018
- Census version 2
- Due Fri Sep 28 14:20:00 CDT 2018
- Reading to skim: Java memory model
Week 4
Exam 1: Mon, Oct 1
- Exam 1 topics
- Census version 3
- Due Wed Oct 03 13:50:00 CDT 2018
- Census version 4
- Due Fri Oct 05 14:20:00 CDT 2018
- Census version 5
- Due Mon Oct 08 13:50:00 CDT 2018
Week 5
- Reading: Software Transactional Memory
- STM assignment
- STM 1
- Due Wed Oct 10 13:50:00 CDT 2018
- STM 2
- Due Fri Oct 12 14:20:00 CDT 2018
- Reading: Chapter 2 of "The Art of Multiprocessor Programming"
Week 6
- STM 3
- Due Wed Oct 17 13:50:00 CDT 2018
- STM 4
- Due Fri Oct 19 14:20:00 CDT 2018
Readings and references
- Reading: Chapter 9 of "The Art of Multiprocessor Programming"
- Linked Lists slides
- Reading: Java Streams / Aggegate Operations
Week 7
- STM 5
- Due Mon Oct 22 13:50:00 CDT 2018
Exam 2: Wed, Oct 24
- Exam 2 topics
- MPI lab
Readings and references
- Reading: MPI (Wikipedia)
- MPI Tutorial (C++ not Java, so beware, but well written nonetheless)
- Java OpenMPI API
Week 8
- MPI: Exercises 1 and 2
- Due Wed Oct 31 13:50:00 CDT 2018
- MPI: k-means clustering
- Due Fri Nov 02 14:20:00 CDT 2018
Readings and references
- Reading: An Intro to Distributed Systems
- Intro to Distributed System slides
- The Dangers of Replication and a Solution (paper by Jim Gray et al)
- 2 phase commit: section 5.8.3.3 of these lecture notes by Jim Gray, linked from his website
- Apache Spark: The Definitive Guide
- Apache Spark in-class lab, with turn ins
- Due Mon Nov 05 13:50:00 CST 2018
Week 9
- Spark Part 1 (preliminary): Word-to-file index
- Due Wed Nov 07 13:50:00 CST 2018
- Spark Part 1 (for real): Word-to-file index
- Due Fri Nov 09 14:20:00 CST 2018
Readings and references
- Distributed Systems textbook, by van Steen and Tanenbaum
Week 10
- Spark Part 2a: clickstream data
- Due Mon Nov 12 13:50:00 CST 2018
- Spark Part 2b: clickstream data
- Due Wed Nov 14 13:50:00 CST 2018
- Reading: Byzantine Generals
- Exam 3 topics
- The last exam will be self-scheduled, in associati...
Week 11