| <- PREV | Index | Next -> |
NHSE ReviewTM: Comments
· Archive
· Search
Amdahl's Law
A rule first formalised by Gene Amdahl in 1967, which states that if F is the fraction of a calculation that is serial and 1-F the
fraction that can be parallelised, then the speedup that can be achieved using P processors is: 1/(F + (1-F)/P) which has a
limiting value of 1/F for an infinite number of processors. This no matter how many processors are employed, if a calculation has
a 10% serial component, the maximum speedup obtainable is 10.
Application Programming Interface (API)
A set of library routine definitions with which third party software developers can write portable programs. Examples are the
Berkeley Sockets for applications to transfer data over networks, those published by Microsoft for their Windows graphical user
interface, and the Open/GL graphics library initiated by Silicon Graphics Inc. for displaying three dimensional rendered objects.
Bandwidth
The communications capacity (measured in bits per second) of a transmission line or of a specific path through the network. Contiguous bandwidth is a synonym for consecutive grouped channels in multiplexer, switch or DACS; i.e. 256kbps (4 x 64kbps channels).
Batching System
A batching system is one that controls the access to computing resources of applications. Typically a user will send a request the batch manager agent to run an application. The batch manager agent will then place the job (See definition below) in a queue (normally FIFO).
Cluster Computing
A commonly found computing environment consists of many workstations connected together by a local area network. The workstations, which have become increasingly powerful over the years, can together, be viewed as a significant computing resource. This resource is commonly know as cluster of workstations.
Distributed Computing Environment (DCE)
The OSF Distributed Computing Environment [30] is a comprehensive, integrated set of services that supports the
development, use and maintenance of distributed applications. It provides a uniform set of services, anywhere in the network,
enabling applications to utilise the power of a heterogeneous network of computers.
flops
Floating point operations per second; a measure of memory access performance, equal to the rate which a machine can perform
single precision floating-point calculations.
Heterogeneous
Containing components of more than one kind. A heterogeneous architecture may be one in which some components are
processors, and others memories, or it may be one that uses different types of processor together.
HPF
A language specification published in 1993 by experts in compiler writing and parallel computation, the aim of which is to define
a set of directives which will allow a Fortran 90 program to run efficiently on a distributed memory machine. At the time of
writing, many hardware vendors have expressed interests, a few have preliminary compilers, and a few independent compiler
producers also have early releases. If successful, HPF would mean data parallel programs can be written portably for various
multiprocessor platforms.
Homogeneous
Made up of identical components. A homogeneous architecture is one in which each element is of the same type - processor arrays and multicomputers are usually homogeneous. (See also Heterogeneous.)
Homogeneous vs Heterogeneous
Often a cluster of workstations is viewed as either homogenous or heterogeneous. These terms are ambiguous, as they refer to
not only the make of the workstation but also to the operating system being used on them. For example, it is possible to have a
homogenous cluster running various operating systems (SunOS and Solaris, or Irix 4 and 5).
In this review we define homogenous as a cluster of workstations of the same make (i.e. Sun, HP, IBM, etc.). In contrast
everything else is referred to as heterogeneous, i.e. a mixture of different makes of workstations.
I/O
Refers to the hardware and software mechanisms connecting a computer with its environment. This includes connections
between the computer and its disk and bulk storage system, connections to user terminals, graphics systems, and networks to
other computer systems or devices.
Interconnection network
The system of logic and conductors that connects the processors in a parallel computer system. Some examples are bus, mesh,
hypercube and Omega networks.
Internet Protocol (IP)
The network-layer communication protocol used in the DARPA Internet. IP is responsible for host-to-host addressing and
routing, packet forwarding, and packet fragmentation and reassembly.
Interprocessor communication
The passing of data and information among the processors of a parallel computer during the execution of a parallel program.
Job
This term generally refers to an application sent to a batching system - a job finishes when the application has completed its run.
Latency
The time taken to service a request or deliver a message which is independent of the size or nature of the operation. The latency
of a message passing system is the minimum time to deliver a message, even one of zero length that does not have to leave the
source processor. The latency of a file system is the time required to decode and execute a null operation.
Load balance
The degree to which work is evenly distributed among available processors. A program executes most quickly when it is
perfectly load balanced, that is when every processor has a share of the total amount of work to perform so that all processors
complete their assigned tasks at the same time. One measure of load imbalance is the ratio of the difference between the finishing
times of the first and last processors to complete their portion of the calculation, to the time taken by the last processor.
Memory Hierarchy
Due to the rapid acceleration of microprocessor clock speeds, largely driven by the introduction of RISC technology, most
vendors no longer supply machines with the same main memory access speeds as the CPU clock. Instead, the idea of having
hierarchies of memory subsystems, each with different access speeds is used to make more effective use of smaller, expensive
fast (so called cache) memories. In the context of computer networks, this hierarchy extends to storage devices, such as the local
disk on a workstation (fast), to the disk servers, to off-line secondary storage devices (slow).
Message passing
A style of inter-process communication in which processes send discrete messages to one another. Some computer architectures
are called message passing architectures because they support this model in hardware, although message passing has often been
used to construct operating systems and network software for uni-processors and distributed computers..
Metacomputer
A term invented by Paul Messina to describe a collection of heterogeneous computers networked by a high speed wide area
network. Such an environment would recognise the strengths of each machine in the Metacomputer, and use it accordingly to efficiently solve so-called Metaproblems. The World Wide Web has the potential to be a physical realisation of a Metacomputer. (See also Metaproblem.)
Metaproblem
A term invented by Geoffrey Fox for a class of problem which is outside the scope of a single computer architecture, but is
instead best run on a Metacomputer with many disparate designs. An example is the design and manufacture of a modern
aircraft, which presents problems in geometry, grid generation, fluid flow, acoustics, structural analysis, operational research,
visualisation, and database management. The Metacomputer for such a Metaproblem would be networked workstations, array
processors, vector supercomputers, massively parallel processors, and visualisation engines.
MIPS
One Million Instructions Per Second. A performance rating usually referring to integer or non-floating point instructions. (See also MOPS.)
Message Passing
A style of interprocess communication in which processes send discrete messages to one another. Some computer architectures
are called message passing architectures because they support this model in hardware, although message passing has often been
used to construct operating systems and network software for uniprocessors and distributed computers.
Message Passing Interface (MPI)
The parallel programming community recently organised an effort to standardise the communication subroutine libraries used for
programming on massively parallel computers such as Intel's Paragon, Cray's T3D, as well as networks of workstations. MPI
not only unifies within a common framework programs written in a variety of existing (and currently incompatible) parallel
languages but allows for future portability of programs between machines.
Massively Parallel Processing (MPP)
The strict definition of MPP is a machine with many interconnected processors, where `many' is dependent on the state of the
art. Currently, the majority of high-end machines have fewer than 256 processors. A more practical definition of an MPP is a
machine whose architecture is capable of having many processors - that is, it is scalable. In particular, machines with a
distributed memory design (in comparison with shared memory designs) are usually synonymous with MPPs since they are not
limited to a certain number of processors. In this sense, "many" is a number larger than the current largest number of processors
in a shared-memory machine.
Multicomputer
A computer in which processors can execute separate instruction streams, have their own private memories and cannot directly
access one another's memories. Most multicomputers are disjoint memory machines, constructed by joining nodes (each
containing a microprocessor and some memory) via links.
Multitasking
Executing many processes on a single processor. This is usually done by time-slicing the execution of individual processes and
performing a context switch each time a process is swapped in or out - supported by special-purpose hardware in some
computers. Most operating systems support multitasking, but it can be costly if the need to switch large caches or execution
pipelines makes context switching expensive in time.
Network
A physical communication medium. A network may consist of one or more buses, a switch, or the links joining processors in a
multicomputer.
NFS
Network Filing System is a protocol developed to use IP and allow a set of computers to access each other's file systems as if
they were on the local host.
Network Information Services - NIS (former Yellow Pages)
Developed by Sun Microsystems, NIS is a means of storing network wide information in central databases (NIS servers), where
they can be accessed by any of the clients. Typically, an NIS database will be used to store the user password file, mail aliases,
group identification numbers, and network resources. The use of a single server avoids the problem of data synchronisation.
Parallel Job
This can be defined as a single application (job) that has multiple processes that run concurrently . Generally each process will
run on a different processor (workstation) and communicate boundary, or other data, between the processes at regular intervals.
Typically a parallel job would utilise a message passing interface, such as MPI or PVM, to pass data between the processes.
Process
The fundamental entity of the software implementation on a computer system. A process is a sequentially executing piece of code
that runs on one processing unit of the system.
Queuing
Queuing is the method by which jobs are ordered to access some computer resource. Typically the batch manager will place a
job the queue. A particular compute resource could possibly have more than one queue, for example queues could be set up for
sequential and parallel jobs or short and long job runs.
Remote Procedural Call (RPC)
A mechanism to allow the execution of individual routines on remote computers across a network. Communication to these
routines are via passing arguments, so that in contrast to using Sockets, the communication itself is hidden from the application.
The programming model is that of the clients-servers.
Sequential computer
Synonymous with a Von Neumann architecture computer and is a "conventional" computer in which only one processing element
works on a problem at a given time.
Sequential Job
This can de defined as a job that does not pass data to remote processes. Typically such a job would run on a single workstation
- it is possible that for a sequential process to spawn multiple threads on its processor.
Single Point of Failure
This is where one part of a system will make the whole system fail. In cluster computing this is typically the batch manager, which
if it fails the compute resource are no longer accessible by users.
Sockets
Also commonly known as Unix Berkeley Sockets, these were developed in the early 1980s as a means of providing application
writers a portable means of accessing the communications hardware of the network. Since sockets allow point to point
communications between processes, it is used in most of the networked workstation implementations of message passing
libraries.
Speedup
The ratio of two program execution times, particularly when the times are from execution on 1 and P nodes of the same
computer. Speedup is usually discussed as a function of the number of processors, but is also a function (implicitly) of the
problem size.
Supercomputer
A time dependent term which refers to the class of most powerful computer systems world-wide at the time of reference.
Transmission Control Protocol (TCP)
TCP is a connection-oriented transport protocol used in the DARPA Internet. TCP provides for the reliable transfer of data as
well as the out-of-band indication of urgent data.
| <- PREV | Index | Next -> |
NHSE ReviewTM: Comments
· Archive
· Search
NHSE: Software Catalog
· Roadmap