iterative feedback- directed compilationresource-aware compilation

prettybadelyngeSoftware and s/w Development

Nov 18, 2013 (3 years and 4 months ago)

73 views

3D stacking

A technology to increase transistor density by vertically
integrating two or more dies.

accelerator

A chip or co
-
processor that has been specialized to very
efficiently perform certain kinds of calculations (e.g.,
related to processing video,
audio, artificial intelligence,
…)

adaptive compilation

A compilation process that adapts
, both in the short and
in the long term,

the
user
code to the underlying
hardware and to any changes in the execution
environment.

Examples include
iterative feedba
ck
-
directed compilation
, machine learning based
compilation and
resource
-
aware compilation
.

ambient intelligence

The automatic reactions and sensitivity of electronic
devices to the presence and actions of nearby humans.

best
-
effort (real
-
time)

A system
where deadlines are not necessarily observed,
but
the system will nevertheless try its best to finish all
task on time.

binning

Chip binning consists of grouping manufactured chips
according to their capabilities at the factory. These bins
can be used sal
vage otherwise unusable chips by
creating a diversified product range (different
processing speeds, number of functional cores, …)

bytecode

An encoding of a computer program designed for
efficient interpretation or further compilation down to
machine code
.

certification

Certification
refers to the, usually external, confirmation
of certain characteristics of a process, person or device.

See also
validation
and
verification
.

Examples are the
EU's CE certification mark found on many products, and
the ISO 90
00 quality management certification.

chemical computing

A computing process whereby the
data is represented
using varying concentrations of chemicals and
computations are performed by naturally occurring
chemical reactions.

clock gating

A technique that
prunes the clock signal
tree
in digital
circuits, thereby eliminating the switching power of cut
-
off flip
-
flops.

cloud computing

An environment whereby computing power, storage
and other resources are procured on
-
demand, as
services, from Internet
-
based p
roviders
.

Well
-
known
categories include "Infrastructure as a service" (IaaS,
e.g., a bare
bones
virtual machine), "Platform as a
Service" (PaaS,
e.g., Google App

Engine
, a platform for
developing and hosting web applications in Google
-
managed data centers
) and "Software as a Service (SaaS,
e.g., Google Docs
, a web
-
based office suite
)

composability

A system design principle whereby individual system
components can be combined and assembled in many
different ways in order to promote reusability and
flexibil
ity.

concurrency

Concurrency is the amount of
potential

parallelism in an
algorithm or code fragment: the degree to which it can
be run in parallel on a multi
-
core system.

concurrent
programming

A programming paradigm where the programmer
specifies to w
hat extent
the code may be run in parallel,
but foregoes explicitly specifying how many threads
should be created and which specific data they should
process.

dataflow language

A programming language th
at
defines
computer
programs

in terms of black boxes
with inputs and
outputs, rather than in terms of a sequence of
commands that has to be executed in a particular order
.

de
-
virticalization

See
horizontalization
.

defect

See
fault
.

DSE

Design space exploration (DSE) consists of looking
through the possibl
e
hardware or software design
points

to find an optimal design. DSE can both be
structural (different components) and parametric (fixed
set components of which the parameters are tuned).

electromigration

The displacement of metal atoms of a conductor caus
ed
by the current running through it.

exascale computing

Computing systems that perform operations in the
order of 1 exaflop/s (10^15 floating point operations
per second).

fabless

Fabless companies design chips, but outsource the
manufacturing to other
companies.

fablight

A fablight company
outsources part of its chip
manufacturing business, but also owns (part of) some
foundries itself.

fault

A requirements, design, or implementation flaw or
deviation from a desired or intended state. A
lso

known
as

d
efect
.

gate oxide wearout

Under stress, imperfections in the SiO2 atom bonding in
the gate
-
oxide insulation layer between the gate and
channel of a CMOS transistor grow to conductance paths
between the gate and the channel. This causes the
leakage to incr
ease and, eventually, the transistor to fail.
This problem becomes more severe as transistors
shrink and the insulation layer becomes thinner.

hard error

A permanent, unrecoverable error.
See also
soft error
.

hard real
-
time

A system wherein
not producing

the
result of an
operation before
its

deadline expires

is equivalent to
producing the wrong result
.
See also
soft real
-
time
.

horizontalization

Market h
orizontalization means that many different
companies are involved in the value chain, rather than
that
the chain from raw resource to final product is
controlled by only a few companies
.

instruction level
parallelism (ILP)

Instruction level parallelism denotes how many
operations in an instruction stream can be executed in
parallel. Hence, a more correct t
erm would be
"instruction level
concurrency
"

instructions per clock
cycle (IPC)

The number of instructions per clock cycle is a measure
for the degree of concurrency, as described by the ILP,
that the processor can exploit by executing multiple
instructio
ns in parallel.

iterative feedback
-
directed compilation

A compilation process whereby the compiled program is
tested and profiled, and the results of these
runs are fed
back into the compiler to generate a more optimal
version of the program during a subs
equent
compilation.

leakage/leakage
power

Leakage power is the power that is consumed by
semico
nductor devices apart from the switching power
.
Some causes are quantum tunneling and relatively
slowly switching transistors.

map
-
reduce

Map
-
reduce is a data
processing strategy to exploit
large
-
scale concurrency that consists of two phases.
During the
map

phase, the data is pre
-
processed and
divided into work units. These work units are then
divided over multiple computing nodes and processed
during the
reduce

phase.

mechatronics

Mechatronics is an engineering discipline that combines
electronics, mechanics and computing to design new
systems.

mixed
-
signal

A mixed
-
signal circuit contains both digital and analog
circuits.

molecular computing

Molecular computi
ng uses DNA, biochemistry and
molecular biology to perform computations.

More than Moore

A paradigm whereby system functionality
and efficiency
is improved not only by relying on faster and smaller
transistors, but
by
using holistic system design
principl
es that will eventually result in a convergence of
biology, chemistry and digital computing.

MPSoC

A multiprocessor system
-
on
-
chip is a system
-
on
-
chip
(see
SoC
) that uses multiple, often heterogeneous,
processors.

multi
-
threading

A program is multi
-
threa
ded if the operations it
performs are split over multiple execution threads that
can be executed in parallel on a system with more than
one processor core.

nanotubes

A nanotube is a nanometer
-
scale tube
-
like structure.
The most commonly known variant is t
he carbon
nanotube with its very strong bonding structure.

One
example application of nanotubes is the "carbon
nanotube field effect transistor".

neuromorphic
architectures

Neuromorphic architectures are v
ery
-
large
-
scale
integrated systems containing ana
log circuits that
emulate the behavior of neural systems.

non
-
functional
properties

The non
-
functional properties of a system are those
properties that are not related to the correct functioning
of the system, but which describe other qualities such as
po
wer
,
performance
,
reliability
, …

organic computing

Organic computing is a form of implementing
computing systems based on how organic entities are
organized and perform their tasks (such as cells, or
colonies).

parallelism

Parallelism measures the amount

of concurrency that is
exploited during a
the
execution of a program

on
parallel hardware
.
See also
concurrency
.

peer
-
to
-
peer
computing

See page 11.

portable performance

Portable performance means that platform
-
neutral
software adapts itself to and make
s optimal use of the
hardware resources available on a
ny

given platform.

predictability

See page 30.

proba
bi
l
ity
based
transistors

Probability based transistors trade off accuracy in
return for reduced power consumption.
This can be
useful for applicatio
ns such as video and audio
decoding, which degrade gracefully when only a few bits
are calculated wrong.

process virtualization

Process virtualization refers to running a single
application process isolated in a virtual machine. In
many cases, the applica
tion is encoded in
bytecode
.

Examples are Java and .NET.

See also
system
virtualization
.

quantum computing

Quantum computing directly uses quantum
-
mechanical
phenomena to perform computations.

reactive system

A reactive system does not compute one partic
ular
output, but instead continuously acts based on both
internal and external inputs and stimuli.

real
-
time

A real
-
time system is a system whereby the correctness
or quality of the output not only depends on the
produced value, but also on when this valu
e becomes
available.
See also
hard real
-
time

and
soft real
-
time
.

resource
-
aware
compilation

Use knowledge of the program to configure its use of the
processor to maximize the energy
-
delay product, e.g., by
making optimal use of
accelerators
.

reversible c
omputing

Reversible computing is a computing model where the
computations can be, to a certain extent, reversed. Both
physical and logical reversibility exist, with the former
depending on the latter. Reversible computing is
predicted to be more energy
-
eff
icient than non
-
reversible computing.

scratchpad memory

A small but very
fast
memory that is explicitly managed
by the run time system or programmer. Conceptually, it
is similar to a manually managed cache.

self
-
adaptive system

A self
-
adaptive system con
tains control logic to let the
system modify its execution based on the input and
environment without requiring external intervention.

sensor fusion

Sensor fusion means that the inputs from different
sensors are combined in a way that
results in a quality

that is higher than when the inputs would be used
separately.

SiP

A
System in Package
, see page 35.

SoC

A System
-
on
-
Chip is a system whereby all components
of the entire computing system have been integrated on
a single integrated circuit.

soft error

A

soft error is a transient or recoverable error. See also
hard error
.

soft real
-
time

In a soft real
-
time system the result of a calculation that
becomes available only after the deadline has passed
will at worst cause graceful degradation, but otherwise
t
he system will keep functioning correctly.

speculative multi
-
threading

Speculative multi
-
threading means that multiple
threads are created that perform operations that may or
may not be beneficial to the main thread(s) of execution.
A well
-
known example i
s speculative prefetching,
whereby a secondary thread touches memory that will
hopefully be required soon by one of the main thread(s).

spintronics

Spintronics exploits the spin of the electron, and the
associated magnetic moment,
in addition to its
elect
ronic charge.

split compilation

With split compilation the compilation stage is divided
into two or more stages.
First, the compiler used by the
application developer transforms
the program into a
form that can be easily processed and optimized in
future
stages. The final stage is either an install time or
run time compilation wherein the application is
specialized for the actual device or run time
environment.

stream computing

Given a set of data (a stream), a series of operations
(kernel functions) are
applied to each element in the
stream. Kernel functions are usually pipelined, and local
on
-
chip memory is reused to minimize external memory
bandwidth.

synchronous language

A synchronous language is a programming language
that is optimized for programmi
ng
reactive systems
.

It
deals with time at a logical level and treats everything
that occurs during a single logical time cycle as
synchronous.

system virtualization

A system virtual machine creates an abstraction layer
that is either almost or completely

indistinguishable
from a particular kind of physical machine, and which
can run the same software stack (including the
operating system) as the machine it virtualizes.
See also
process virtualization
.

transactional memory

Transactional memory groups memo
ry loads and stores
into transactions, which are then atomically committed
to memory at synchronization points.

tunable compiler

A tunable compiler offers interfaces to influence the way
it generates code at a very fine
-
grained level and is often
used for

the purpose of
adaptive compilation
.

validation

Validation is
the

process of establishing that a product,
service, or system

conforms to the needs of an external
user of a product
.

See also
certification

and
verification
.

verification

Verification is
th
e

process

of reviewing, inspecting and
testing to determine whether the product or process
meets the imposed regulatory or technical standards
.

See also
certification

and
validation
.

WCET

The worst
-
case execution time (WCET) is the time
necessary for a pa
rt of a program to perform its task
under the worst possible circumstances.


Portions
from the glossary come from
Wikipedia

and the entire glossary is licensed under the
Creative Commons
Attribution
-
ShareAlike 3.0 Unported License
.