blanketglossary

Parallel algorithm

Definition

In computer science, a parallel algorithm, as opposed to a traditional serial algorithm, is an algorithm which can do multiple operations in a given time. It has been a tradition of computer science to describe serial algorithms in abstract machine models, often the one known as random-access machine. Similarly, many computer science researchers have used a so-called parallel random-access machine (PRAM) as a parallel abstract machine (shared-memory).

Related concepts

APIAbstract machineAlgorithmAmdahl's lawAnalysis of parallel algorithmsApplication checkpointingArray (data structure)Associative arrayAsymmetric multiprocessingAteji PXAutomatic parallelizationBarrier (computer science)Beowulf clusterBit-level parallelismBoost (C++ libraries)Bulldozer (microarchitecture)Bus (computing)Byzantine faultC++ AMPCUDACache-only memory architectureCache coherenceCache invalidationCache stampedeCarnegie Mellon UniversityChapel (programming language)Charm++CilkCloud computingCluster computingCoarray FortranComputer clusterComputer hardwareComputer multitaskingComputer networkComputer programmingComputer scienceConcurrency (computer science)Concurrent algorithmConcurrent computingConsensus (computer science)Cost efficiencyCrossbar switchData parallelismDataflow architectureDataflow programmingDeadlock (computer science)Deterministic algorithmDistributed algorithmDistributed computingDistributed memoryDistributed shared memoryDryad (programming)Embarrassingly parallelExplicit parallelismFiber (computer science)Flynn's taxonomyFrequency scalingGPUOpenGeneral-purpose computing on graphics processing unitsGlobal ArraysGrid computingGustafson's lawHPXHardware accelerationHardware scoutHigh-performance computingImplicit parallelismInstruction-level parallelismInstruction pipeliningInstruction windowKarp–Flatt metricLeader electionLoad balancing (computing)Lock (computer science)Loop-level parallelismManycore processorMassively parallelMemory-level parallelismMemory coherenceMessage Passing InterfaceMessage passingMulti-coreMultiple-agent systemMultiple instruction, multiple dataMultiple instruction, single dataMultiprocessingMultithreading (computer architecture)Mutual exclusionNewton's methodNon-blocking algorithmNon-uniform memory accessNumerical analysisOpenACCOpenCLOpenHMPPOpenMPParallel ExtensionsParallel RAMParallel Virtual MachineParallel algorithms for matrix multiplicationParallel algorithms for minimum spanning treesParallel computingParallel external memoryParallel programming modelParallel random-access machineParallel slowdownPararealPiPipeline (computing)Preemption (computing)Process (computing)PthreadsROCmRace conditionRaftLibRandom-access machineRubik's CubeScalabilitySemiconductor memorySequential algorithmSerial algorithmShared memorySimultaneous and heterogeneous multithreadingSimultaneous multithreadingSingle instruction, multiple dataSingle instruction, multiple threadsSingle instruction, single dataSoftware lockoutSpeculative multithreadingSpeedupStarvation (computer science)Stream processingSuperscalar processorSymmetric multiprocessingSynchronization (computer science)Systolic arrayTask parallelismTemporal multithreadingThread (computing)Threading Building BlocksThree-body problemThroughputUnified Parallel CUniform memory accessVector processorZPL (programming language)

7 concepts already in your glossary