| Link/Url | Tags |
|---|---|
| Abstract data type [Knowledgebase] An abstract data type (ADT) is a data type defined by its set of allowed values and the available operations on those values. The values and operations are defined independently of a particular rep ... Posted: 2008-05-05 22:53:48 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Abstraction [Knowledgebase] Abstraction can have several meanings depending on the context. In software, it often means combining a set of small operations or data items and giving them a name. For example, control abstractio ... Posted: 2008-05-06 18:04:09 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Address space [Knowledgebase] The range of memory locations that a process or processor can access. Depending on context, this could refer to either physical or virtual memory ... Posted: 2008-05-06 18:06:12 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Amdahl's law [Knowledgebase] A law stating that (under certain assumptions) the maximum speedup that can be obtained by running an algorithm on a system of P processors is where ? is the serial fraction of the program, and T ... Posted: 2008-05-06 18:08:48 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| AND parallelism [Knowledgebase] This is one of the main techniques for introducing parallelism into a logic language. Consider the goal A: B,C,D (read ”A follows from B and C and D”) which means that goal A succeeds i ... Posted: 2008-05-06 18:09:38 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Application Programming Interface [Knowledgebase] An application programming interface (API) defines the calling conventions and other information needed for one software module (typically an application program) to utilize the services provided b ... Posted: 2008-05-06 18:32:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Atomic [Knowledgebase] Atomic has slightly different meanings in different contexts. An atomic operation at the hardware level is uninterruptible, for example load and store, or atomic test-and-set instructions. In the d ... Posted: 2008-05-06 18:34:16 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Autoboxing [Knowledgebase] A language feature available in Java 2 1.5 that provides automatic conversion of data of a primitive type to the corresponding wrapper type, for example from int to Integer. ... Posted: 2008-05-06 19:17:38 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Bandwidth [Knowledgebase] The capacity of a system, usually expressed as “items per second”. In parallel computing, the most common usages of the term bandwidth are in reference to the number of bytes per second ... Posted: 2008-05-06 19:25:15 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Barrier [Knowledgebase] A synchronization mechanism applied to groups of units of execution (UEs), with the property that no UE in the group may pass the barrier until all UEs in the group have reached the barrier. In oth ... Posted: 2008-05-06 19:26:15 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Beowulf cluster [Knowledgebase] A cluster built from PCs running the Linux operating system. Clusters were already well established when Beowulf clusters were first built in the early 1990s. Prior to Beowulf, however, clusters we ... Posted: 2008-05-06 19:27:44 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Bi-section bandwidth [Knowledgebase] The bi-directional capacity of a network between two equal-sized partitions of nodes. The cut across the network is taken at the narrowest point in each bi-section of the network. ... Posted: 2008-05-06 19:29:28 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Bibliography [Knowledgebase] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.Design Patterns: Elements of Reusable Object-Oriented Software.Addison-Wesley, 1995.C. A. R. Hoare.Monitors: An operating system structuri ... Posted: 2008-05-27 01:21:09 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Broadcast [Knowledgebase] Sending a message to all members of a group of recipients, usually all units of execution (UEs) participating in a computation. ... Posted: 2008-05-06 19:30:22 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Bus architecture [Knowledgebase] A method of interconnecting PEs, controllers, and memory by making all visible to each other over a common, shared data path (a set of data, address, and control lines). Only one bus master can con ... Posted: 2008-05-06 19:31:13 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Cache [Knowledgebase] A relatively small memory device close to a processor that mirrors the contents of, and is considerably faster than, the computer's main memory. Cache hierarchies consisting of one or more levels of ... Posted: 2008-05-06 19:48:46 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| ccNUMA [Knowledgebase] Cache-coherent NUMA. A NUMA model where data resident in the caches of the processing elements share a common view of memory. See NUMA. ... Posted: 2008-05-06 19:50:00 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Cluster [Knowledgebase] Any local collection of distinct computers that are connected and used as a parallel computer, to form a redundant system for higher availability, or to expose their pooled resources to users via a ... Posted: 2008-05-06 19:51:57 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Collective communication [Knowledgebase] A high-level operation involving a group of units of execution (UEs) and having at its core the cooperative exchange of information between the UEs. The high-level operation may be a pure communica ... Posted: 2008-05-06 19:52:50 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Concurrent execution [Knowledgebase] A condition in which two or more units of execution (UEs) are active and making progress at the same time. This can be either because they are being executed at the same time on different processin ... Posted: 2008-05-06 19:57:37 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Concurrent program [Knowledgebase] A program that supports concurrent execution. ... Posted: 2008-05-06 19:59:03 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Condition variable [Knowledgebase] Condition variables are part of the monitor synchronization mechanism. A condition variable is used by a process or thread to delay until the monitor's state satisfies some condition. It is also us ... Posted: 2008-05-06 20:01:56 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Contention [Knowledgebase] A state where multiple agents request the same scarce resource at the same time. Contention is resolved by various means, from bus acquisition protocols to backoff-algorithms to cache coherency pro ... Posted: 2008-05-06 20:02:49 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Copy on write [Knowledgebase] A technique to optimize the allocation of physical memory pages while serving multiple processes by delaying the copying of shared pages until a process forces a write. Read-only pages, such as pro ... Posted: 2008-05-06 20:04:14 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Core [Knowledgebase] A core is a distinct processing element inside a processor capable of servicing the full execution needs of a unit of execution (UE). Depending on the processor architecture, a core might have its ... Posted: 2008-05-06 20:05:07 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Counting semaphore [Knowledgebase] See semaphore. ... Posted: 2008-05-06 20:06:10 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Critical section [Knowledgebase] A region of code manipulating shared resources that must be monitored so that only one unit of execution (UE) has access at a time. Exclusive access avoids race conditions, which might leave data i ... Posted: 2008-05-06 20:06:56 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Cyclic distribution [Knowledgebase] A distribution of data (e.g., components of arrays) or tasks (e.g., loop iterations) produced by dividing the set into a number of blocks greater than the number of units of execution (UEs) and the ... Posted: 2008-05-06 20:07:59 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Data parallel [Knowledgebase] A type of parallel computing in which the concurrency is expressed by applying a single stream of instructions simultaneously to the elements of a data structure. ... Posted: 2008-05-15 08:41:12 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Deadlock [Knowledgebase] An error condition common in parallel programming in which the computation has stalled because a group of UEs are blocked and waiting for each other in some cyclic dependency. ... Posted: 2008-05-15 09:02:07 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Design pattern [Knowledgebase] A design pattern is a “solution to a problem in context”; that is, it represents a high-quality solution to a recurring problem in design. ... Posted: 2008-05-15 22:04:58 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Distributed computing [Knowledgebase] A type of computing in which a computational task is divided into subtasks that execute on a collection of networked computers. The networks are general-purpose networks (LANs, WANs, or the Interne ... Posted: 2008-05-15 22:06:48 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Distributed shared memory [Knowledgebase] A computer system that constructs an address space shared among multiple processing elements (PEs) from physical memory subsystems that are distinct and distributed about the system. There may be o ... Posted: 2008-05-15 22:08:41 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| DSM [Knowledgebase] See distributed shared memory. ... Posted: 2008-05-15 22:10:59 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Eager evaluation [Knowledgebase] A scheduling strategy where the evaluation of an expression, or execution of a procedure may occur as soon as (but not before) all of its arguments have been evaluated. Eager evaluation is typical ... Posted: 2008-05-15 22:12:50 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Efficiency [Knowledgebase] The efficiency E of a computation is the speedup normalized by the number of processing elements (PEs) (P). It is given by E(P) = S(P)/P and indicates how effectively the resources in a parallel ... Posted: 2008-05-15 22:15:37 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Embarrassingly parallel [Knowledgebase] A task-parallel algorithm in which the tasks are completely independent of each other. See task parallelism or the Task Parallelism pattern in [Mattson2004]. ... Posted: 2008-05-15 22:18:08 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| EPIC [Knowledgebase] Explicitly Parallel Instruction Computer, an instruction architecture in which instructions intended to execute simultaneously are collected together into bundles, organized at compilation time. Th ... Posted: 2008-05-15 22:21:39 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Explicitly parallel language [Knowledgebase] A parallel programming language in which the programmer fully defines the concurrency and how it will be exploited in a parallel computation. OpenMP, Java, and MPI* are explicitly parallel language ... Posted: 2008-05-15 22:32:38 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Factory [Knowledgebase] Factory corresponds to design patterns described in [GHJV95]. They are implemented using a class that can return an instance of one of several subclasses of an abstract base class. ... Posted: 2008-05-17 02:16:32 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Fence [Knowledgebase] A method for enforcing certain memory ordering in operations between processing elements (PEs). Implemented as a set of instructions, this barrier may require reads, writes, or all memory operation ... Posted: 2008-05-17 02:20:21 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Fork [Knowledgebase] A method for creating new units of execution (UEs) by making a copy of the current (UE) as a child of the original. In operating systems such as UNIX and Linux, a fork system call is often followed ... Posted: 2008-05-17 02:22:57 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Fork/join [Knowledgebase] A programming model used in multithreaded APIs such as Pthreads and OpenMP. A thread executes a fork, which creates or uses additional threads. The collection of threads (called a team in OpenMP) exe ... Posted: 2008-05-17 02:25:14 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Framework [Knowledgebase] A reusable, partially complete program that embodies a design for applications in a particular domain. Programmers complete the program by providing application-specific components. ... Posted: 2008-05-17 23:00:44 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Future variable [Knowledgebase] A mechanism used in some parallel programming environments for coordinating units of execution (UEs). The future variable is a special variable that will eventually hold the result from an asynchro ... Posted: 2008-05-18 22:52:56 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Generic programming [Knowledgebase] A style of computer programming where algorithms and data structures are adaptable through an extended grammar (parameterization) that lets variable parts be specified with each use of the algorith ... Posted: 2008-05-18 22:59:23 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Generics [Knowledgebase] Programming language features which allow programs to contain placeholders for certain entities, typically types. The generic component's definition is completed before it is used in a program. Gen ... Posted: 2008-05-18 22:54:30 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Grid [Knowledgebase] An architecture for distributed computing and resource sharing. A grid system is composed of a heterogeneous collection of resources connected by local-area and/or wide-area networks (often the Int ... Posted: 2008-05-18 23:00:57 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Heterogeneous [Knowledgebase] A heterogeneous system is constructed from components of more than one kind. An example is a distributed system with a variety of processor types. ... Posted: 2008-05-18 23:02:55 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Homogeneous [Knowledgebase] The components of a homogeneous system are all of the same kind. ... Posted: 2008-05-18 23:06:14 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Hypercube [Knowledgebase] A multicomputer in which the nodes are placed at the vertices of a d-dimensional cube. The most frequently used configuration is a binary hypercube where each of 2n nodes is connected to n others. ... Posted: 2008-05-18 23:09:08 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Implicitly parallel language [Knowledgebase] A parallel programming language in which the details of what can execute concurrently and how that concurrency is implemented is left to the compiler. Most parallel functional and dataflow language ... Posted: 2008-05-19 00:45:48 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Incremental parallelism [Knowledgebase] Incremental parallelism is a technique for parallelizing an existing program, in which the parallelization is introduced as a sequence of incremental changes, parallelizing one loop at a time. Foll ... Posted: 2008-05-19 00:47:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Java [Knowledgebase] An object oriented language loosely derived from C++ but without some of the more dangerous language features in C++. Java has both language and standard library components to express parallelism a ... Posted: 2008-05-19 00:51:32 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Java Virtual Machine [Knowledgebase] The Java Virtual Machine, or JVM, is an abstract stack-based computing machine whose instruction set is called Java bytecode. Typically, Java programs are compiled into class files containing Java ... Posted: 2008-05-19 03:21:06 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Latency [Knowledgebase] The fixed cost of servicing a request, such as sending a message, accessing information from a disk, or waiting for an instruction to complete. In cluster computing, the term most often is used to ... Posted: 2008-05-19 03:26:34 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Lazy evaluation [Knowledgebase] A scheduling policy that does not evaluate an expression (or invoke a procedure) until the results of the evaluation are needed. Lazy evaluation may avoid some unnecessary work and in some situatio ... Posted: 2008-05-19 03:28:36 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Linda [Knowledgebase] A coordination language for parallel programming. See tuple space. ... Posted: 2008-05-19 03:31:42 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Live lock [Knowledgebase] A parallel processing error condition similar to that of deadlock, where units of execution (UEs) may not be completely blocked; e.g., may be passing tokens or buffers around, but no useful work is ... Posted: 2008-05-19 03:33:52 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Load balance [Knowledgebase] In a parallel computation, tasks are assigned to units of execution (UEs), which are then mapped onto processing elements (PEs) for execution. The net work carried out by the collection of PEs is t ... Posted: 2008-05-19 03:42:56 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Load balancing [Knowledgebase] The process of distributing work to units of execution (UEs), such that each UE involved in a parallel computation takes approximately the same amount of time. There are two major forms of load bal ... Posted: 2008-05-19 03:45:38 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Locality [Knowledgebase] The extent to which the computations carried out by a processing element (PE) use data that is associated with (i.e., is close to) that processing element. For example, in many dense linear algebra ... Posted: 2008-05-19 03:47:31 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Lock [Knowledgebase] A mechanism to organize the interaction of multiple units of execution (UEs), usually through the control of a shared resource. When one or several UEs own a lock, it or they may regulate access to ... Posted: 2008-05-19 04:20:41 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Many-core processor [Knowledgebase] An architecture that supports multiple cores in a single processor package where the supporting infrastructure (interconnect, memory hierarchy, etc) is designed to support high levels of scalabilit ... Posted: 2008-05-19 04:39:05 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Massively parallel processor [Knowledgebase] A distributed-memory parallel computer designed to scale to hundreds if not thousands of processors. To better support high scalability, the computer elements or nodes in the massively parallel proce ... Posted: 2008-05-19 04:40:56 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Master/Worker [Knowledgebase] A task parallelization technique in which one unit of execution (UE) dispatches units of work to a pool of UEs operating concurrently. As each worker UE finishes its work, it requests more from the ... Posted: 2008-05-19 04:45:41 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| MESI protocol [Knowledgebase] One of several cache coherency protocols for shared memory architectures with local caches. Each cache line exists exclusively in one of four states: Modified (contains only correct content for und ... Posted: 2008-05-19 04:49:23 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Message Passing Interface [Knowledgebase] A standard message-passing interface (MPI) adopted by most MPP vendors, as well as by the cluster-computing community. The existence of a widely-supported standard enhances program portability; an ... Posted: 2008-05-19 04:51:27 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| MIMD [Knowledgebase] Multiple Instruction, Multiple Data. One of the categories of architectures in Flynn's taxonomy of computer architectures. In a MIMD system, each processing element (PE) has its own stream of instr ... Posted: 2008-05-19 04:54:25 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Monitor [Knowledgebase] Monitors are a synchronization mechanism originally proposed by Hoare [Hoa74]. A monitor is an abstract data type implementation that guarantees mutually exclusive access to its internal data. Cond ... Posted: 2008-05-19 04:57:01 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| MPI* [Knowledgebase] See Message Passing Interface. ... Posted: 2008-05-21 21:16:18 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| MPP [Knowledgebase] See massively parallel processor. ... Posted: 2008-05-21 21:18:16 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Multi-core processor [Knowledgebase] An architecture that supports multiple cores in a single processor package that replicates the cache coherent, shared address space architecture common to traditional multiprocessor computers. Typi ... Posted: 2008-05-21 21:23:38 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Multicomputer [Knowledgebase] A parallel computer based on a distributed-memory, MIMD parallel architecture. The system appears to the user as a single computer. ... Posted: 2008-05-21 21:20:48 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Multiprocessor [Knowledgebase] A parallel computer with multiple processors that share an address space. (See also multi-core.) ... Posted: 2008-05-21 21:26:40 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Mutex [Knowledgebase] A mutual exclusion lock. A mutex serializes the execution of multiple units of execution (UEs) by limiting access to an object to only one thread/process at a time. ... Posted: 2008-05-21 21:28:57 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Node [Knowledgebase] A node is a distinct computational element located at a “stop” on a network. It is most commonly used in describing distributed-memory parallel machines where each node has its own memo ... Posted: 2008-05-21 21:30:58 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| NUMA [Knowledgebase] Non-Uniform Memory Access. This term is used to describe a shared-memory computer containing a hierarchy of memories with different access times for each level in the hierarchy. The distinguishing ... Posted: 2008-05-21 21:32:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| OR parallelism [Knowledgebase] An execution technique in parallel logic languages in which multiple clauses may be evaluated in parallel. For example, consider a problem with two clauses A: B,C and A: E,F. (read “A follows ... Posted: 2008-05-21 21:39:18 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Parallel file system [Knowledgebase] A file system that is visible to any processor in the system and can be read and written by multiple units of execution (UEs) simultaneously. Although a parallel file system appears to the computer ... Posted: 2008-05-21 21:44:37 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Parallel overhead [Knowledgebase] The time spent in a parallel computation managing the computation rather than computing results. Contributors to parallel overhead include thread creation and scheduling, communication, and synchro ... Posted: 2008-05-21 21:48:40 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| PE [Knowledgebase] See processing element. ... Posted: 2008-05-21 21:51:32 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Peer-to-peer computing [Knowledgebase] A distributed computing model in which each node has equal standing among the collection of nodes. In the most typical usage of this term, the same capabilities are offered by each node, and any no ... Posted: 2008-05-21 21:56:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Point-to-point architecture [Knowledgebase] An interconnect for processing elements (PEs) comprising a set of links connecting pairs of PEs. The links can operate without contention, but the number of links per PE limits the connectivity. La ... Posted: 2008-05-21 21:58:43 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Polymorphism [Knowledgebase] A feature of some programming languages that enables a common interface (functional or method-based) to be applied to a family of related data types (see abstract data type) with multiple implement ... Posted: 2008-05-21 23:47:04 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| POSIX [Knowledgebase] The “Portable Operating System Interface” as defined by the Portable Applications Standards Committee (PASC) of the IEEE Computer Society. While other operating systems follow some of t ... Posted: 2008-05-21 23:50:08 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Precedence graph [Knowledgebase] A way of representing the order constraints among a collection of statements. The nodes of the graph represent the statements. There is a directed edge from node A to node B if statement A must be ... Posted: 2008-05-22 01:17:31 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Process [Knowledgebase] A complete collection of resources needed to enable the execution of program instructions. These resources can include memory, I/O descriptors, a runtime stack, signal handlers, user and group IDs, ... Posted: 2008-05-22 01:20:23 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Process migration [Knowledgebase] Changing the processor responsible for running a process during execution. Process migration is commonly used to dynamically balance the load on multiprocessor systems. (See load balancing.) It is ... Posted: 2008-05-22 01:22:20 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Processing element [Knowledgebase] A generic term used to reference a hardware element that executes a stream of instructions. The context defines what unit of hardware is considered a processing element (e.g., core, processor, comp ... Posted: 2008-05-22 01:24:56 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Programming environment [Knowledgebase] Programming environments provide the basic tools and application programming interfaces, or APIs, needed to construct programs. A programming environment implies a particular abstraction of the com ... Posted: 2008-05-22 01:26:59 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Programming model [Knowledgebase] An abstraction useful when reasoning about the behavior of programs. These are often closely tied to an abstract view of the hardware. For example the “von Neumann model” is used in tra ... Posted: 2008-05-22 02:08:42 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Pthreads [Knowledgebase] An abbreviation for POSIX threads; i.e., the definition of threads in the various POSIX standards. See POSIX. ... Posted: 2008-05-22 02:12:42 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| PVM [Knowledgebase] Parallel Virtual Machine. A message-passing library for parallel computing. PVM played an important role in the history of parallel computing as it was the first portable message-passing programmin ... Posted: 2008-05-22 02:15:27 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Race condition [Knowledgebase] An error condition peculiar to parallel programs in which the outcome of a program changes as the relative scheduling of units of execution (UEs) varies. This is often the result of modifications t ... Posted: 2008-05-22 02:17:42 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Reader/writer locks [Knowledgebase] This pair of locks is similar to mutexes except that multiple units of execution (UEs) may hold a read lock while a write lock excludes both other writers and all readers. Reader/writer locks are o ... Posted: 2008-05-22 02:26:08 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Reduction [Knowledgebase] An operation that takes a collection of objects (usually one on each unit of execution - UE) and combines them into a single object on one UE, or combines them such that each UE has a copy of the c ... Posted: 2008-05-23 05:03:19 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Refactoring [Knowledgebase] Refactoring is a software engineering technique where a program is restructured carefully so as to alter its internal structure without changing its external behavior. The restructuring occurs thro ... Posted: 2008-05-23 05:04:55 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Remote procedure call [Knowledgebase] A procedure invoked in a different address space (i.e. a different unit of execution) than the caller, often on a different machine. Remote procedure calls are a popular approach for interprocess c ... Posted: 2008-05-23 05:06:53 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| RPC [Knowledgebase] See remote procedure call. ... Posted: 2008-05-23 05:12:42 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Semaphore [Knowledgebase] An abstract data type used to implement certain kinds of synchronization. There are different types of semaphores. The binary semaphore uses a shared single binary value to control access to a sing ... Posted: 2008-05-23 05:15:15 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Serial fraction [Knowledgebase] Most computations consist of parts that contain exploitable concurrency and parts that execute serially. The serial fraction is that fraction of the program's execution time taken up by the parts t ... Posted: 2008-05-23 05:19:52 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Server/workstation farm [Knowledgebase] A type of cluster. The term ”farm” is used to imply that the cluster will be utilized to run large numbers of independent sequential jobs as opposed to running a single applications in ... Posted: 2008-05-23 05:22:22 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Shared address space [Knowledgebase] An addressable block of memory that is shared between a collection of units of execution (UEs). ... Posted: 2008-05-23 05:25:36 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Shared memory [Knowledgebase] A term applied to both hardware and software indicating the presence of a memory region that is shared between system components. For programming environments, the term means that memory is shared ... Posted: 2008-05-23 05:27:31 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Shared nothing [Knowledgebase] A distributed-memory MIMD architecture where nothing other than the local area network is shared between the nodes. ... Posted: 2008-05-23 05:29:30 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| SIMD [Knowledgebase] Single Instruction, Multiple Data. One of the categories in Flynn's taxonomy of computer architectures. In a SIMD system, a single instruction stream runs synchronously on multiple processors, each ... Posted: 2008-05-25 23:06:39 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Simultaneous multithreading [Knowledgebase] Simultaneous multithreading (SMT) is an architectural feature of some processors that allows multiple threads to issue instructions on each cycle. In other words, SMT allows the functional units th ... Posted: 2008-05-25 23:04:38 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Single Program Multiple Data [Knowledgebase] This is the most common way to organize a parallel program, especially on MIMD computers. The idea is that a single program is written and loaded onto each node of a parallel computer. Each copy of ... Posted: 2008-05-25 23:46:21 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Single-assignment variable [Knowledgebase] A special kind of variable to which a value can be assigned only once. The variable initially is in an unassigned state. Once a value has been assigned, it cannot be changed. These variables are co ... Posted: 2008-05-25 23:08:34 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| SMP [Knowledgebase] See symmetric multiprocessor. ... Posted: 2008-05-25 23:10:35 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| SMT [Knowledgebase] See simultaneous multithreading. ... Posted: 2008-05-25 23:13:26 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Snoop filter [Knowledgebase] A device which limits snoop traffic by filtering out requests local to a bus or link between processing elements (PEs). ... Posted: 2008-05-25 23:32:11 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Snooping [Knowledgebase] Maintaining a cache coherency protocol among the local caches of a shared memory architecture requires communications among those caches and memory. This traffic, which adds to the overhead without ... Posted: 2008-05-25 23:19:39 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Speedup [Knowledgebase] Speedup, S, is a multiplier indicating how many times faster a parallel program is than its sequential counterpart. It is given by &nb ... Posted: 2008-05-25 23:42:07 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| SPMD [Knowledgebase] See single program multiple data. ... Posted: 2008-05-25 23:58:07 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Stride [Knowledgebase] The increment used when stepping through a structure in memory. The precise meaning of stride is context-dependent. For example, in an M×N array stored in a column-major order in a contiguous ... Posted: 2008-05-26 00:01:59 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Strongly ordered memory [Knowledgebase] Strongly ordered memory enforces the completion order of memory operations to be the same as their initiation order. See also weakly ordered memory. ... Posted: 2008-05-26 01:19:54 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Symmetric multiprocessor [Knowledgebase] A shared-memory computer in which each processor is functionally identical and has “equal-time” access to every memory address. In other words, both memory addresses and OS services are ... Posted: 2008-05-26 01:22:13 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Synchronization [Knowledgebase] Enter Text Here... ... Posted: 2007-06-27 17:41:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Systolic algorithm [Knowledgebase] A parallel algorithm where tasks operate synchronously with a regular nearest-neighbor communication pattern. Many computational problems can be formulated as systolic algorithms by reformulating a ... Posted: 2008-05-26 01:35:05 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Systolic array [Knowledgebase] A parallel architecture consisting of an array of processors with each processor connected to a small number of its nearest neighbors (see point-to-point architecture). Data flows through the array ... Posted: 2008-05-26 01:32:16 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Task [Knowledgebase] This term can have several meanings, depending on context. We use it to mean a sequence of operations that together make up some logical part of an algorithm or program. ... Posted: 2008-05-26 01:37:28 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Task Parallelism [Knowledgebase] A class of parallelism where the concurrency is expressed in terms of the tasks that execute concurrently. This is a very broad class of techniques and includes master-worker algorithms, systems su ... Posted: 2008-05-26 01:40:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Task queue [Knowledgebase] A queue that holds tasks for execution by one or more units of execution (UEs). Task queues are commonly used to implement dynamic scheduling algorithms in task parallelism algorithms, particularly ... Posted: 2008-05-26 02:03:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Thread [Knowledgebase] A fundamental unit of execution (UE) on certain computers. In a UNIX context, threads are associated with a process and share the process's environment. This makes the threads relatively lightweigh ... Posted: 2008-05-26 02:08:15 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Thread pool [Knowledgebase] A collection of threads that are managed over the course of a program to minimize the overhead of thread creation and destruction. Threads not in use are maintained by the pool in an idle state. Th ... Posted: 2008-05-26 02:12:09 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Transputer [Knowledgebase] The transputer is a microprocessor developed by Inmos Ltd. with on-chip support for parallel processing. Each processor contains four high-speed communication links that are easily connected to the ... Posted: 2008-05-26 02:20:12 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Tuple space [Knowledgebase] A shared-memory system where the elements held in the memory are compound objects known as tuples. A tuple is a small set of fields holding values or variables, as in the following examples. ... Posted: 2008-05-26 02:25:51 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| UE [Knowledgebase] See unit of execution. ... Posted: 2008-05-26 02:35:40 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Unit of execution [Knowledgebase] Generic term for one of a collection of concurrently executing entities, usually either processes or threads. See process and thread. ... Posted: 2008-05-26 02:41:08 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Vector supercomputer [Knowledgebase] A supercomputer with a vector hardware unit as an integral part of its central processing unit. The vector hardware processes arrays in a pipeline fashion. ... Posted: 2008-05-26 02:45:02 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Virtual shared memory [Knowledgebase] A system that provides the abstraction of shared memory, allowing programmers to write to a shared memory even when the underlying hardware is based on a distributed-memory architecture. Virtual sh ... Posted: 2008-05-27 01:08:01 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |
| Weakly ordered memory [Knowledgebase] Relaxing the constraints of strongly ordered memory results in weakly ordered memory. This may benefit performance but can play havoc with synchronization operations. Memory fencing is a technique ... Posted: 2008-05-27 01:11:22 by | Glossary of Technical Terms,Parallel Programming & Multi-Core |