# CS 5220
## Parallelism and locality in simulation
## 15 Sep 2015
### Parallelism and locality
- Real world has *parallelism* and *locality*
- Particles, people, etc function independently
- Near interactions stronger than distant ones
- Can often simplify dependence on distant objects
- More parallelism / locality through model
- Limited dependency between adjacent time steps
- Can neglect or approximate far-field effects
- Often get parallelism at multiple levels
- Hierarchical circuit simulation
- Interacting models for climate
- Parallelizing trials/fevals in MC or optimization
### Common ideas / issues
- Load balancing
- Imbalance from lack of parallelism, poor distribution
- Can be static or dynamic
- Locality
- Want big blocks with low surface-to-volume ratio
- Minimizes communication / computation ratio
- Can generalize ideas to graph setting
- Tensions and tradeoffs
- Irregular spatial decompositions for load balance at the cost of
complexity, maybe extra communication
### Basic styles of simulation

Often more than one type of simulation appropriate.

Sometimes more than one at a time!

### Basic styles of simulation

#### Discrete event systems

- Continuous or discrete time
- Game of life, logic-level circuit simulation
- Network simulation

### Basic styles of simulation

#### Particle systems

- Billiards, electrons, galaxies, ...
- Ants, cars, ...?

### Basic styles of simulation

#### Lumped parameter models

- Systems of Ordinary Differential Equations (ODEs)
- Circuits (SPICE), structures, chemical kinetics

### Basic styles of simulation

#### Distributed parameter models

- PDEs / integral equations
- Heat, elasticity, electrostatics, ...