Home >> Computers >> Parallel Computing


  Beowulf
       

  Environments
File Systems
  Internet Based
Operating Systems
  Programming

  Conferences
Documentation
Languages
  Libraries
Projects
Tools
  Vendors


Parallel computing is the genus pan execution of the equivalent project (stock split & specially adapted) in multiple processors in order to obtain faster outcomes.

Parallel computing systems

A term parallel processor is occasionally utilized for the computer by using additional than a single processor, available for parallel processing. Systems by using hundreds to thousands of such processors come referred to as massively parallel.

There are numerous different kinda parallel computers (or even "parallel processors"). It is distinguished per kinda interconnection between processors (called "processing elements" or even PEs) & between processors & memories. Flynn's taxonomy also classifies parallel (and serial) computers according to whether all processors execute the same instructions at the same time (single instruction/multiple data -- SIMD) or each processor executes different instructions (multiple instruction/multiple data -- MIMD). Parallel processor machines are as well divided into symmetrical & asymmetrical multiprocessors, based in whether all the processors come capable of going all the operating models code &, say, accessing I/O hardwcome or even whenever occasionally processors are close to privileged.

Performance vs. cost

Whenorth the rules of n parallel processors is less effective thanorth a single n-days-sooner processor, a parallel formulas is typically inexpensive to build. For tasks which necessitate super big numbers of computatiin, use instance constraints on completion & especially for victims which may be divided into n execution threads, parallel computation is an fantabulous guide. As a matter of fact, within recent years, virtually all high performance computing systems, also referred to as supercomputers, have a parallel architecture

Algorithms
It should non become imagined that successful parallel computing occurs as matter of obtaining a needed devices & connecting it fitly. A difficulty of cooperative condition resolution is ably demonstrated per below dubious logical thinking:

Inside practice, linear speedup (i.e., acceleration proportional to the total of processors) is very hard to achieve. This is because several algorithmic program come inside essence serial in nature and severity (Amdahl's law states this more formally).

As much as the certain point, certain workloads might advantage from either pipeline parallelism when extra processors come added. This utilizes a manufactory assembly line approach to divide the act. Whenever a operate may be divided into n stages inorth which the distinct deliverable is passed from either stage to stage, so as much as n processors may be utilized. But, a slowest stage might survive a more stages and thenorth these are uncommon to exist as take a breath to fully apply n processors.

Virtually all algorithmic program must become redesigned sequentially to produce efficacious have of parallel devices. Software download which function aright withinside one CPU patterns might not run sol in the parallel environment. This is because multiple copies of a equivalent program will interfere sustaining both more, for example by accessing the equivalent memory location at the equivalent instance. So, careful programming is mandatory within the parallel body.

Superlinear speedup - the consequence of the North processor machine completing the project to the higher degree North days sooner than a machine using one processor similar to it in the multiprocessor has at days been a controversial issue (& lead to very much benchmarking) however may be caused by such results as the multiprocessor machine getting noNorth merely North days a processing power however as well N days cache & memory so flattening a cache-memory-disk hierarchy, extra effective apply of memory per single processors due to partitioning of the condition & a total of more results. Similar boosted efficiency claims come for instance aired for a utilize of a cluster of inexpensive computers as a replacement of a big multiprocessor, however once againside the actual outcomes depend very much on the condition at h& and the ability to partition the condition in how else that is conductive to clustering.

Inter-thread communication
Parallel computers come theoretically modeled when Parallel Random Access Machines (PRAMs). A Stroller model ignores a numbers of interconnection between a constituent computing units, however is still super utile inside providing upper bounds on the parallel solubility of numbers of problems. Actually the interconnection plays a important role.

the processors might either communicate sequentially to become breathe to cooperate inside solving a condition or even it can start entirely independently, even under the control of an additional processor which distributes operate to the others & collects final result from either the children (a "processor farm").

Processors inside the parallel computer will communicate by owning every more within the total of ways, including divided up out (either multiported or even even multiplexed) memory, the crossbar, the shared bus or an interconnect network of the myriad of topologies including star, ring, tree, hypercube, fat hypercube (anorth hypercube by having supplementary than the single processor at the node), a n-dimensional mesh, etc. Parallel computers according to interconnect network want to use occasionally rather routing to enable passing of messages between nodes that are not directly attached. A communication medium utilized for communication between a processors is belike to exist as hierarchal within big multiprocessor machines. Likewise, memory can be either personal to the processor even, divided up out between the total of processors, or globally shared. Systolic array is an example of the multiprocessor by owning fixed work nodes, local-simply memory & there is no message routing.

Approaches to parallel computers include: Multiprocessing Computer cluster Parallel supercomputers Distributed computing NUMA vs. SMP vs. massively parallel computer systems Grid computing

Parallel software

a brobdingnagian total of software use at times been designed for programming parallel computers, each at the operating system and programming language level. These systems must provide mechanisms for partitioning a overall condition into separate tasks & allocating tasks to processors. Such mechanisms can provide either implicit parallelism -- a patterns (the compiler or some other program) partitions a condition & allocates tasks to processors automatically (besides known as automatic parallelizing compilers) -- or explicit parallelism where the computer programmer must annotate his program to show else how these are to become partitioned. Virtually all of the todays implementations of parallelizing compilers exclusively trend lines single-level parallelism, as opposed to multi-level parallelism (also known as nested parallelism), which allows threads already running inside parallel to spawn farther correspondence. These are besides common to provide synchronisation primitives like semaphores and monitors to allow processes to share resources while forgoing conflict.

Load balancing attempts to keep all processors occupy by moving tasks from either heavy loaded processors to less loaded ones.

Communication between tasks is commonly done by using threads communicating via shared memory or with message passing, either of which may be implemented around terms of the more.

Swell known parallel softwcome package condition sets are: Embarrassingly parallel problems Grand Challenge problems

Parallel programming models
Independent article: Parallel programming model

a parallel programming model occurs as placed of software program technologies to express parallel algorithmic rule & match applications by using the underlying parallel systems. It encloses a areas of applications, languages, compilers, libraries, communication systems, & parallel I/O. Humans grow to explore the proper parallel programming model or even the form of mixture of the children to develop their parallel applications in the particular platform.

Parallel system come implemented around many ways: when libraries invoked from either traditional serial languages, when language extensions, or even complete fresh execution system. It is as well about categorized for deuce sort of systems: shared memory systems and distributed memory systems, though the lines between the babies come largely blurred present.

Currenty main-stream parallel programming system come: PVM MPI OpenMP Global Arrays Co-Array Fortran UPC HPF SHMEM

Topics in parallel computing

Generic: Automatic parallelization Parallel programming Parallel algorithm Sorting through correspondence within problems & algorithms Cellular automaton

Computer science topics: Lazy evaluation vs strict evaluation Complexity class NC Communicating sequential processes Dataflow architecture Parallel graph reduction

Practical problems: Parallel computer interconnects Parallel computer I/O Reliableness problems within big systems

Programing language: OpenMP MPI Occam Linda Cilk

Specific: Atari Transputer Workstation BBN Butterfly computers Beowulf cluster Blue Gene Deep Blue Fifth generation computer systems project ILLIAC III ILLIAC IV Meiko Computing Surface NCUBE Transputer

Parallel computing to increase fault tolerance: Master-checker

Corporations (largely historical): Thinking Machines Convex Computer Corporation Meiko

Parallel Tools Consortium
A group that brings together tool users, developers, and researchers with the goal of improving the usability and availability of parallel tools. Links to projects.

ParaScope
Links to supercomputing centers, high performance computing journals, vendors, conferences, and governmental agencies.

Who Wrote the Book of Life?
NASA uses a parallel computer to classify new life forms.

Supercomputing and Parallel Computing Research Groups
Academic research groups and projects related to parallel computing.

HOISe
News on high performance computing from Europe. Newsletters and conference calendar.

IEEE CS Task Force on Cluster Computing
An international forum promoting cluster computing research and education. Publications, event calendar, news articles, and committee information.

IEEE Transactions on Parallel and Distributed Systems
Monthly peer-reviewed journal. Archives available to subscribers.

Grid Computing Info Centre
An initiative to establish a global grid of computing power. Links to conferences, development, and related information.

Concurrent Systems
Links to research groups, parallel tools, journals, and conferences.

Internet Parallel Computing Archive
Links to information about parallel algorithms, computing environments and tools, newsgroups, and general references.


Computers: Computer Science: Distributed Computing
Computers: Supercomputing





© 2005 GeneralAnswers.org