This chapter discusses asynchronous parallelism in MIMD systems. In asynchronous parallelism, problems are partitioned into independent subproblems that are distributed to autonomous processors. The subproblems may require communication and synchronization. MIMD systems allow for multiple instruction streams and asynchronous execution. Processors can have local memory in a loosely coupled system or shared memory in a tightly coupled system. Processes move between ready, running, and blocked states.