Parallel Architectures Lab

Three ways to put many processors to work at once. Each section animates one design from the slides: an array processor, a multiprocessor and a multicomputer. Press Play in any section.

1.0×

1) Array processor

A single control unit broadcasts each instruction to every processor in an 8 × 8 grid. All 64 processors run it at the same moment, each on the data in its own local memory (SIMD: single instruction, multiple data).

Control unitidle
Processor register RLocal memory M

Program (broadcast one at a time)

    0Instructions broadcast
    0Data operations done
    0Steps a single CPU needs

    Each cell shows a processor (top) and its local memory (bottom).

    2) Multiprocessors

    All CPUs share one bus to a shared memory. When more than one CPU requests the bus in the same cycle, only one is granted and the others wait: a bus conflict. CPUs communicate by writing and reading messages in shared memory.

    0Cycle (of 30)
    0Bus transfers
    0Bus conflicts
    0CPU wait cycles

    Run (a) and then (b) to compare conflicts.

    Bus activity

      3) Multicomputer

      Standalone computers, each with its own CPU and memory, connected by a network. Nothing is shared, so they cooperate by passing messages to each other, like email. To the user, the whole network looks like one system.

      0Messages sent
      0Total hops

      PC1 splits the job, sends a range to each other computer, and adds up the replies.

      Messages

        Side by side

        Array processorMultiprocessorMulticomputer
        ControlOne control unit for all processorsEach CPU runs its own programEach computer runs its own program and OS
        MemoryLocal memory per processorShared main memory (plus optional local memory)Private memory only; nothing shared
        CommunicationInstruction broadcast from the control unitRead and write messages in shared memory over the busMessage passing over a network
        Main bottleneckOnly helps when every processor does the same operationBus conflicts; needs an OS to coordinate bus useNetwork delay; more hops mean slower messages