Intensive Parallel Computing
A 2.5-hour accelerated course for international exchange students. Learn to write correct, safe, and maintainable concurrent Java programs.
- Format: Single lecture session (150 mins)
- Focus: Shared-memory concurrency fundamentals
- Language: English / Modern Java (17+)
Threads & Lifecycle
Monitors & Locks
ExecutorService
Memory Consistency
Safety Patterns
🚀 Quick Start: Run the Demos
Get the runnable examples. No complex IDE setup required. Works on Linux, macOS, and WSL.
# 1. Clone the demos
git clone https://github.com/intellistream/parallel-computing-course-java-demos.git
# 2. Run the setup (auto-downloads JDK)
cd parallel-computing-course-java-demos/demo
./setup.sh
# 3. Compile and Run an example
./run.sh HelloThreads
Course Syllabus
Part 1: Fundamentals
- Why Parallel? Motivation (Speedup) vs. Concurrency (Responsiveness).
- Hardware Basics: Cores, Caches, Shared Memory, and Amdahl's Law.
- Java Threads:
ThreadvsRunnable, Lifecycle states, formatting output. - The Problem: Race conditions, interleaving, and lost updates.
Part 2: Safety & Tools
- Synchronization: Intrinsic locks,
synchronizedblocks/methods, monitor pattern. - Modern Execution:
ExecutorService, Thread Pools, andFuture. - Coordination:
wait()/notify(), CountDownLatch. - Common Pitfalls: Deadlock, Livelock, Starvation, and Visibility (volatile).
Prerequisites
Students should be comfortable with:
- Basic Java syntax (Classes, Objects, Interfaces).
- Collection frameworks (List, Map).
- Command line basics (compiling and running Java).
Note: No prior OS or Architecture course required.