In
computing,
MIMD (multiple instruction, multiple data) is a technique employed to achieve parallelism. Machines using MIMD have a number of
processors that function
asynchronously and independently. At any time, different processors may be executing different instructions on different pieces of data. MIMD architectures may be used in a number of application areas such as
computer-aided design/
computer-aided manufacturing,
simulation,
modeling, and as communication switches. MIMD machines can be of either
shared memory or
distributed memory categories. These classifications are based on how MIMD processors access memory. Shared memory machines may be of the
bus-based, extended, or hierarchical type. Distributed memory machines may have
hypercube or
mesh interconnection schemes.