Communication Architecture - Parallel Computer Architecture - Lecture Slides, Slides of Computer Science

These are the Lecture Slides of Parallel Computer Architecture which includes Conflict Resolution, Cache Miss, Write Serialization, In-Order Response, Multi-Level Caches, Dependence Graph etc.Key important points are: Communication Architecture, Agenda, Layered Architecture, Shared Address, Message Passing, Convergence, Fundamentals

Typology: Slides

2012/2013

Uploaded on 03/28/2013

ekana
ekana 🇮🇳

4

(44)

370 documents

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Objectives_template
file:///E|/parallel_com_arch/lecture10/10_1.htm[6/13/2012 11:18:07 AM]
Module 6: "Fundamentals of Parallel Computers"
Lecture 10: "Communication Architecture"
Fundamentals of Parallel Computers
Agenda
Communication architecture
Layered architecture
Shared address
Message passing
Convergence
Data parallel arch.
[From Chapter 1 of Culler, Singh, Gupta]
pf3
pf4
pf5

Partial preview of the text

Download Communication Architecture - Parallel Computer Architecture - Lecture Slides and more Slides Computer Science in PDF only on Docsity!

Module 6: "Fundamentals of Parallel Computers"

Lecture 10: "Communication Architecture"

Fundamentals of Parallel Computers

Agenda

Communication architecture

Layered architecture

Shared address

Message passing

Convergence

Data parallel arch.

[From Chapter 1 of Culler, Singh, Gupta]

Module 6: "Fundamentals of Parallel Computers"

Lecture 10: "Communication Architecture"

Agenda

Convergence of parallel architectures Fundamental design issues ILP vs. TLP

Communication architecture

Historically, parallel architectures are tied to programming models Diverse designs made it impossible to write portable parallel software But the driving force was the same: need for fast processing Today parallel architecture is seen as an extension of microprocessor architecture with a communication architecture Defines the basic communication and synchronization operations and provides hw/sw implementation of those

Layered architecture

A parallel architecture can be divided into several layers Parallel applications Programming models: shared address, message passing, multiprogramming, data parallel, dataflow etc Compiler + libraries Operating systems support Communication hardware Physical communication medium Communication architecture = user/system interface + hw implementation (roughly defined by the last four layers) Compiler and OS provide the user interface to communicate between and synchronize threads

Module 6: "Fundamentals of Parallel Computers"

Lecture 10: "Communication Architecture"

Message passing

Very popular for large-scale computing The system architecture looks exactly same as DSM, but there is no shared memory The user interface is via send/receive calls to the message layer The message layer is integrated to the I/O system instead of the memory system Send specifies a local data buffer that needs to be transmitted; send also specifies a tag A matching receive at dest. node with the same tag reads in the data from kernel space buffer to user memory Effectively, provides a memory-to-memory copy Actual implementation of message layer Initially it was very topology dependent A node could talk only to its neighbors through FIFO buffers These buffers were small in size and therefore while sending a message send would occasionally block waiting for the receive to start reading the buffer (synchronous message passing) Soon the FIFO buffers got replaced by DMA (direct memory access) transfers so that a send can initiate a transfer from memory to I/O buffers and finish immediately (DMA happens in background); same applies to the receiving end also The parallel algorithms were designed specifically for certain topologies: a big problem To improve usability of machines, the message layer started providing support for arbitrary source and destination (not just nearest neighbors) Essentially involved storing a message in intermediate “hops” and forwarding it to the next node on the route Later this store-and-forward routing got moved to hardware where a switch could handle all the routing activities Further improved to do pipelined wormhole routing so that the time taken to traverse the intermediate hops became small compared to the time it takes to push the message from processor to network (limited by node-to-network bandwidth) Examples include IBM SP2, Intel Paragon Each node of Paragon had two i860 processors, one of which was dedicated to servicing the network (send/recv. etc.)

Module 6: "Fundamentals of Parallel Computers"

Lecture 10: "Communication Architecture"

Convergence

Shared address and message passing are two distinct programming models, but the architectures look very similar Both have a communication assist or network interface to initiate messages or transactions In shared memory this assist is integrated with the memory controller In message passing this assist normally used to be integrated with the I/O, but the trend is changing There are message passing machines where the assist sits on the memory bus or machines where DMA over network is supported (direct transfer from source memory to destination memory) Finally, it is possible to emulate send/recv. on shared memory through shared buffers and flags Possible to emulate a shared virtual mem. on message passing machines through modified page fault handlers

Data parallel arch.

Array of processing elements (PEs) Each PE operates on a data element within a large matrix The operation is normally specified by a control processor Essentially, single-instruction-multiple-data (SIMD) architectures So the parallelism is exposed at the data level Processor arrays were outplayed by vector processors in mid-70s Vector processors provide a more general framework to operate on large matrices in a controlled fashion No need to design a specialized processor array in a certain topology Advances in VLSI circuits in mid-80s led to design of large arrays of single-bit PEs Also, arbitrary communication (rather than just nearest neighbor) was made possible Gradually, this architecture evolved into SPMD (single-program-multiple-data) All processors execute the same copy of a program in a more controlled fashion But parallelism is expressed by partitioning the data Essentially, the same as the way shared memory or message passing machines are used for running parallel applications