Возможная ошибка в примере

Я не беру такие ошибки как устаревшие write(a,’ '); но вот эта посерьёзнее. Возможно я ошибаюсь, но там в обоих примерах используется распаралеливание на процессоры, хотя по тексту должен быть сравнение "с и без {$omp parallel for } "

uses Arrays;

procedure ParallelMult(a,b,c: array [,] of real; n: integer);
begin
  {$omp parallel for } 
  for var i:=0 to n-1 do
  for var j:=0 to n-1 do
  begin 
    c[i,j]:=0;
    for var l:=0 to n-1 do
      c[i,j]:=c[i,j]+a[i,l]*b[l,j];
  end;
end;

procedure Mult(a,b,c: array [,] of real; n: integer);
begin
  {$omp parallel for }
  for var i:=0 to n-1 do
  for var j:=0 to n-1 do
  begin 
    c[i,j]:=0;
    for var l:=0 to n-1 do
      c[i,j]:=c[i,j]+a[i,l]*b[l,j];
  end;
end;

const n = 400;

begin
  var a := Arrays.CreateRandomRealMatrix(n,n);
  var b := Arrays.CreateRandomRealMatrix(n,n);
  var c := new real[n,n];
  ParallelMult(a,b,c,n);
  writeln('Параллельное перемножение матриц: ',Milliseconds,' миллисекунд');
  var d := Milliseconds;
  Mult(a,b,c,n);
  writeln('Непараллельное перемножение матриц: ',Milliseconds-d,' миллисекунд');
end.

p.s. Выдаёт одинаковый результаты

И да, если не сложно, как делать красивое форматирование кода?

Зайдите в редактирование своего сообщения и посмотрите форматирование.

В примерах PascalABC.NET в Mult нет директивы omp

Видимо, имелась в виду ошибка в справке, а не в файлах примеров:

2 лайка

Да, исправим