parallel programming
fs25
Time & Location
- Focus Group 9: Every Wednesday from 16:15 - 18:00 in ML J 34.3
- Focus Group 5: Every Friday from 10:15 - 12:00 in LFW B 2
Contact
I prefer messages over WhatsApp and will check it there most frequently. Please join the WhatsApp group of my exercise session. You can find the QR code in the exercise session slides of week 1 below.
You can also contact me the following way:
- Email: erxuli@ethz.ch
- Discord: erxuanli
Homework Assignment Hand-In
Please push your solution to your GitLab repository before the deadline. Afterwards, write me a message to let me know that you want feedback (don’t forget to mention your nethz!).
Also mention if you plan to submit a solution regularly. Then I will check your repository each week.
You will then find feedback.txt in your repository.
Request Content for Exercise Session
The general layout and content for exercise sessions is given by the head TA. Those topics must be presented during the exercise sessions.
If something is unclear from the lecture and you want me to explain it during one of my exercise sessions, you can request it via the following link or just DM me. I will present it if enough people request it and if there is still enough time after the mandatory content.
Feedback
Use the following link (or DM me) to give me feedback. Is the exercise session too fast? Do you want me to go more in depth? …
Exercise Sessions
You can find the slides I used during my exercise sessions here.
Week 1
General course information. Setup of Eclipse, Git and Java.
Week 2
Talked about general concepts. Threads, Concurrency, Parallelism, …
Did some preparation for assignment 2 and ended the exercise session with a small online quiz.
Week 3
Post-Discussion Exercise 2. Pre-Discussion Exercise 3.
Theory recap including bad interleavings, data races, synchronized keyword, locks, wait and notify.
Small quiz at the end.
Week 4
Post- and Pre-Discussion of exercises as usual. Theory including pipelining, instruction-level parallelism, vectorization, work partitioning & scheduling, granularities, divide and conquer, ExecutorService, Fork-Join, Amdahl’s law and Gustafson’s law.
Week 5
Post- and Pre-Discussion of exercises as usual. Small theory recap. Did exam preparation and quiz at the end.
Week 6
Discussed exercises. Theory recap including Task Graphs, Locks, Parallel Prefix-Sum, Parallel Patterns. Big Kahoot at the end. Theory recap based on Kahoot results. If there is still time: some hard exam tasks.
Week 7
Discussed exercises. Theory recap including some definitions, ReentrantLocks and synchronized. Medium sized Kahoot to test your skills. Theory recap based on Kahoot results.
Also took a look at some theory that you have not yet seen in the lectures: Memory reordering, optimizations, volatile keyword, orders (program order, synchronizes-with, sychronization order, happens-before), state space diagrams, Dekker’s Algorithm, Peterson Lock, Filter Lock (a generalization of Peterson Lock), Test-and-set (TAS), compare-and-swap (CAS), Test and Test-and-set (TTAS) and exponential backoff.
Week 8
Discussed exercises. Theory recap and outlook including bakery lock, semaphores, barriers and the topics from last week’s exercise session. In the end, we tested our skills with a Kahoot.