Overview
Syllabus
Intro
What is "data parallel" computing?
Running example: sum of C+A+B
Can a coder dream of electric chips ?
An ordinary load-store machine
working assumption: data = arrays
Load-store machine, with arrays
How the Java VM virtualizes a CPU
Old school multi-threading
Threads can step on each others' toes
What went wrong?
In search of the right notation
Timing can be everything
Partition the data, not the code
Partitioned data is naturally simple
Split the data, keep one code stream
What could go wrong?
Communication dominates eventually
Let's stripe the data across the CPUs
Options for localizing data (2)
What is a Java "GPU thread"? (2)
Issue: Placed data needs to be aligned
Mesh computing, with private memory
Regarding vectorization
Summary: Java liabilities / challenges
Summary: Java assets
Taught by
Java