Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet520/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   516   517   518   519   520   521   522   523   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

parallel for
i
D
1
to
2
3
x
D
x
C
1
4
print
x
After initializing
x
to
0
in line 1, R
ACE
-E
XAMPLE
creates two parallel strands,
each of which increments
x
in line 3.
Although it might seem that R
ACE
-
E
XAMPLE
should always print the value
2
(its serialization certainly does), it could
instead print the value
1
. Let’s see how this anomaly might occur.
When a processor increments
x
, the operation is not indivisible, but is composed
of a sequence of instructions:
1. Read
x
from memory into one of the processor’s registers.
2. Increment the value in the register.
3. Write the value in the register back into
x
in memory.
Figure 27.5(a) illustrates a computation dag representing the execution of R
ACE
-
E
XAMPLE
, with the strands broken down to individual instructions. Recall that
since an ideal parallel computer supports sequential consistency, we can view the
parallel execution of a multithreaded algorithm as an interleaving of instructions
that respects the dependencies in the dag. Part (b) of the figure shows the values
in an execution of the computation that elicits the anomaly. The value
x
is stored
in memory, and
r
1
and
r
2
are processor registers. In step 1, one of the processors
sets
x
to
0
. In steps 2 and 3, processor 1 reads
x
from memory into its register
r
1
and increments it, producing the value
1
in
r
1
. At that point, processor 2 comes
into the picture, executing instructions 4–6. Processor 2 reads
x
from memory into
register
r
2
; increments it, producing the value
1
in
r
2
; and then stores this value
into
x
, setting
x
to
1
. Now, processor 1 resumes with step 7, storing the value
1
in
r
1
into
x
, which leaves the value of
x
unchanged. Therefore, step 8 prints the
value
1
, rather than
2
, as the serialization would print.
We can see what has happened. If the effect of the parallel execution were that
processor 1 executed all its instructions before processor 2, the value
2
would be


27.1
The basics of dynamic multithreading
789
incr
r
1
3
r
1
=
x
2
x

r
1
7
incr
r
2
5
r
2

 x
4
x

r
2
6
x
= 0
1
print
x
8
(a)
step
x
r
1
r
2
1
2
3
4
5
6
7
0
0
0
0
0
1
1

0
1
1
1
1
1



0
1
1
1
(b)

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   516   517   518   519   520   521   522   523   ...   618




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish