Параллельный компьютер, в котором все процессоры совместно используют общую физическую память, называется мультипроцессором, или системой с общей памятью (рис. 8.15, а). Все процессы, работающие в мультипроцессоре совместно, могут иметь единое виртуальное адресное пространство, отображенное на общую память. Любой процесс с команд LOAD и STORE может считать слово из памяти или записать слово в память. Больше ничего не требуется. Два процесса имеют возможность легко обмениваться информацией - для этого один из них просто записывает данные в общую память, а другой их считывает.
Мультикомпьютеры
Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору. Такая схема называется мультикомпьютером, или системой с распределенной памятью (рис. 8.16, а). Ключевое отличие мультикомпьютера от мультипроцессора состоит в том, что каждый процессор в мультикомпьютере имеет собственную локальную память, к которой этот процессор может обращаться, выполняя команды LOAD и STORE, но никакой другой процессор с этих команд не может получить доступ к локальной памяти данного процессора. Таким образом, мультипроцессоры имеют одно физическое адресное пространство, разделяемое всеми процессорами, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора.
В программе генерируются только убывающие последовательности (a[i]:=-i+random()+20;). Можно при желании массив вводить с клавиатуры. const n=15; var a:array[1..n] of real; i:integer; b:boolean; begin Randomize; for i:=1 to n do begin a[i]:=-i+random()+20; write(a[i]:5:2,' '); end; writeln; b:=true; for i:=1 to n-1 do if a[i+1]>=a[i] then b:=false; if b then begin writeln('Последовательность убывающая'); writeln('p = ',a[n]*a[n div 2+1]:5:2); end else writeln('Последовательность не убывающая') end.
Мультипроцессоры
Параллельный компьютер, в котором все процессоры совместно используют общую физическую память, называется мультипроцессором, или системой с общей памятью (рис. 8.15, а). Все процессы, работающие в мультипроцессоре совместно, могут иметь единое виртуальное адресное пространство, отображенное на общую память. Любой процесс с команд LOAD и STORE может считать слово из памяти или записать слово в память. Больше ничего не требуется. Два процесса имеют возможность легко обмениваться информацией - для этого один из них просто записывает данные в общую память, а другой их считывает.
Мультикомпьютеры
Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору. Такая схема называется мультикомпьютером, или системой с распределенной памятью (рис. 8.16, а). Ключевое отличие мультикомпьютера от мультипроцессора состоит в том, что каждый процессор в мультикомпьютере имеет собственную локальную память, к которой этот процессор может обращаться, выполняя команды LOAD и STORE, но никакой другой процессор с этих команд не может получить доступ к локальной памяти данного процессора. Таким образом, мультипроцессоры имеют одно физическое адресное пространство, разделяемое всеми процессорами, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора.
const n=15;
var a:array[1..n] of real;
i:integer; b:boolean;
begin
Randomize;
for i:=1 to n do begin
a[i]:=-i+random()+20;
write(a[i]:5:2,' ');
end;
writeln;
b:=true;
for i:=1 to n-1 do
if a[i+1]>=a[i] then b:=false;
if b
then
begin
writeln('Последовательность убывающая');
writeln('p = ',a[n]*a[n div 2+1]:5:2);
end
else writeln('Последовательность не убывающая')
end.
Пример:
19.02 18.28 17.91 16.67 15.03 14.68 13.10 12.86 11.91 10.19 9.66 8.35 7.37 6.55 5.20
Последовательность убывающая
p = 66.86