{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

para15 - Introduction to Parallel Algorithms(15...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Introduction For the bulk of the term, we have discussed advanced data structures and some of the applications to which they have been suited for representing data. Each of these data structures was designed to provide efficient access to the data stored in the structure. Some of these data structures were subtle variants of a more general type of structure, with the subtle variation occurring to enhance access to the data for certain situations arising in the data. For example, the prefix B + -tree enhanced access through the use of prefixes that exist in the key values maintained in the structure. Don’t lose sight of the fact that a data structure’s sole purpose is to maintain and provide access to data which is used to support the algorithm which uses that data. Data structures, no matter how complex, often represent a trade-off in terms of time and space, as there is typically no optimal data structure which covers all possible problem instances. Recall that this is the very reason that so many variants of many data structures exist. We now change our focus from the underlying data structures supporting the algorithm to the algorithms themselves. In some respects, a data structure is chosen because of how naturally it represents the data which defines a problem. For example, trees naturally fit with data that represent hierarchical relationships. Algorithms too exhibit this characteristic, for example, divide and conquer algorithms arise from the natural problem solving strategy of dividing a complex problem into smaller, more manageable pieces. What we are about to examine are algorithms which carry this natural technique much further. Most models of computation represent the computer as a general-purpose, deterministic, random access machine (a vonNeumann machine). Algorithms which can be executed by vonNeumann type machines are called sequential algorithms (sometimes also called serial algorithms ). We are about to examine models of computation that present a much different machine, one in which several instructions can be executed simultaneously. Generally, referred to as, parallel machines or parallel computers , these are computers which have more than one processor operating in parallel. Over the years, there have been many different models of parallel computation that have been developed. As with sequential machines, parallel machines are best suited to certain classes of problems and to take advantage of a parallel architecture, algorithms must be developed specifically for the parallel architecture. We will see several parallel models and discuss their relative merits and weaknesses. Parallel Algorithms - 1 Introduction to Parallel Algorithms (15)
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
In recent years, as microprocessors have become cheaper and the technology for interconnecting them has improved, it has become both possible and practical to build general-purpose parallel computers containing a very large number of processors. Parallel algorithms are natural for many applications. In
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}