Information Technology Reference
In-Depth Information
will be shown in the following text, the memory limit of a serial computer is equally
prohibitive for large-scale computations.
10.1.2
From the Perspective of Memory
The technical terms of megabyte (MB) and gigabyte (GB) should sound familiar to
anyone who has used a computer. But how much data can be held in 1 MB or 1 GB of
random access memory exactly? According to the standard binary definition, 1 MB
is 1024 2 D 1;048;576 bytes and 1 GB is 1024 3 D 1;073;741;824 bytes. Scientific
computations typically use double-precision numbers, each occupying eight bytes
of memory on a digital computer. In other words, 1 MB can hold 131;072 double-
precision numbers, and 1 GB can hold 134;217;728 double-precision numbers.
We mentioned in the above text that time savings are the most prominent reason
for adopting parallel computing. But it is certainly not the only reason. Another
equally important reason is to solve larger problems. Let us consider the example
of an 8 GB memory, which is decently large for a single-CPU computer. By simple
calculation, we know that 8 GB can hold 1024 3 double-precision values. For our
simple numerical scheme ( 10.3 ), however, 8 GB is not enough for the case of n D
1;000 , because two double-precision arrays of length .nC1/ 3 are needed for storing
u ` and u `C1 .
Considering the fact that a mesh resolution of 1;0001;0001;000 is insufficient
for many problems, and that a typical simulation can require dozens or hundreds of
large 3D arrays in the data structure, single-CPU computers are clearly far from
being capable of very large-scale computations, with respect to both computing
speed and memory size.
10.1.3
Parallel Computers
In fact, at the time of this writing, serial computers will soon become history. Every
new PC now has more than one processor core, where each core is an independent
processing unit capable of doing the tasks of a conventional processor. It is likely
that all future computers will be parallel in some form. Knowledge about designing
parallel algorithms and writing parallel codes thus becomes essential.
A parallel computer can be roughly defined as a computing system that allows
multiple processors to work concurrently to solve one computational problem.
The most common way to categorize modern parallel computers is by looking at
the memory layout. A shared-memory system means that the processors have no
private memory but can all access a single global memory. Symmetric multiproces-
sors (SMPs) were the earliest shared-memory machines, where the memory access
time is uniform for all the processors. Later, shared-memory computers adopted
the architecture of non-uniform memory access to incorporate more processors.
The recent multicore chips can be considered a revival of SMP, equipped with some
level of shared cache among the processor cores plus tighter coupling to the global
memory.
Search WWH ::




Custom Search