Parallel processing and virtual machines
| English | Chinese | Pinyin |
|---|---|---|
| parallelism | 并行 | bìng xíng |
| Flynn's taxonomy | 弗林分类 | fú lín fēn lèi |
| virtual machine | 虚拟机 | xū nǐ jī |
| SIMD | 单指令多数据 | dān zhǐ lìng duō shù jù |
| MIMD | 多指令多数据 | duō zhǐ lìng duō shù jù |
| massively parallel | 大规模并行 | dà guī mó bìng xíng |
| supercomputers | 超级计算机 | chāo jí jì suàn jī |
| hypervisor | 虚拟机监控器 | xū nǐ jī jiān kòng qì |
| bytecode | 字节码 | zì jié mǎ |
Doing many things at once
- Modern computing relies on parallelism 并行 — many processors working together.
- Flynn's taxonomy 弗林分类 classifies the styles.
- And a virtual machine 虚拟机 runs a whole computer in software.
Computing concept lab
Classify concrete examples by the computing idea they demonstrate.
Flynn's taxonomy
- SISD — one instruction, one data stream (a traditional single core).
- SIMD 单指令多数据 — one instruction works on many data items at once (GPUs, vector units) — great for images and arrays.
- MISD — several operations on the same data (rare, mostly theoretical).
- MIMD 多指令多数据 — many processors run different instructions on different data (multi-core CPUs, clusters) — the most general.

MIMD: each processor runs its own instructions on its own data — the model behind multi-core CPUs

SIMD: many processors run the same instruction on different data
SIMD means:
Single Instruction, Multiple Data — e.g. a GPU running the same operation on thousands of pixels.
Match each of Flynn's categories to an example.
Flynn classifies by how many instruction and data streams run at once: SISD, SIMD, MIMD (and the rare MISD).
Massively parallel 大规模并行 computers
- A massively parallel system uses thousands of processors on a fast network, each with its own distributed memory, exchanging data by messages.
- It is MIMD, needs special software (MPI, CUDA), and powers the largest supercomputers 超级计算机 — climate simulation, ML training, astrophysics.

A CPU heat-sink and fan carry heat away from the processor
A massively parallel computer uses:
Massively parallel systems (supercomputers) link thousands of processors with distributed memory over a fast network.
Virtual machines
- A virtual machine (VM) is a software emulation of a whole computer.
- A system VM runs a complete guest OS; a hypervisor 虚拟机监控器 creates and manages several VMs. Uses: run different OSes on one machine, server consolidation, sandboxing risky software.
- A process (language) VM runs portable bytecode 字节码 (the JVM, .NET CLR): portability, runtime safety, and JIT for speed — at the cost of an extra layer.

Rows of servers in a data centre, like those used for massively parallel computing
A hypervisor is used to:
A hypervisor manages system VMs, letting several guest operating systems share one physical machine.
A system VM (managed by a hypervisor) runs a whole guest operating system, whereas a process VM like the JVM just runs one program's portable bytecode.
System VMs share one physical machine among several guest OSes; process VMs give "write once, run anywhere" for a single program.
You've got it
- Flynn: SISD, SIMD (one instruction, many data — GPUs), MISD, MIMD (multi-core)
- massively parallel = thousands of processors with distributed memory (supercomputers)
- a system VM + hypervisor runs whole guest OSes (sandboxing, consolidation)
- a process VM runs portable bytecode (JVM) — "write once, run anywhere"