Главная страница
Навигация по странице:

  • Результаты измерений Описание Время ,с

  • Расчет Версия ОС Число программ Описание

  • Обработка результатов .

  • Проведем вычисления для остальных случаев по такому же алгоритму

  • Построение коэффициентов корреляции.

  • Производительность при выполнении параллельных расчетов.

  • Реализация LU разложения с помощью функций IMSL. ОТЧЕТ БИРЮКОВКО КОМПАКТНЫЙ. Отчет на тему


    Скачать 182.56 Kb.
    НазваниеОтчет на тему
    АнкорРеализация LU разложения с помощью функций IMSL
    Дата12.05.2022
    Размер182.56 Kb.
    Формат файлаdocx
    Имя файлаОТЧЕТ БИРЮКОВКО КОМПАКТНЫЙ.docx
    ТипОтчет
    #525125
    страница5 из 5
    1   2   3   4   5

    Листинг программы двойной точности



    program double

    implicit none

    INTEGER*4 IPATH, LDA, LDFAC, N, NLCA, NUCA, IPATH2, LDFAC2, NLCA2, NUCA2, NOUT, IPATH3,, NLCA3, NUCA3, j, k, i

    PARAMETER (IPATH=1, LDA=7, LDFAC=10, N=8, NLCA=3, NUCA=3, IPATH2=1, LDFAC2=10, NLCA2=3, NUCA2=3, IPATH3=1, NLCA3=3, NUCA3=3)

    INTEGER IPVT(N), IPVT2(N)

    REAL*8 A(LDA,N),z(N,4) , p(10500000,8)

    REAL*8 FAC2(LDFAC,N2), RCOND, FAC(LDFAC,N)

    REAL*8 X(N,2), RES(N), AINV(N,N), B(N,4), RJ(N)

    REAL T,Timef

    EXTERNAL DLFTRB, DLFSRB, DWRRRN, DLFCRB, DLFIRB, DSET, UMACH, DLSLRB
    T=Timef()
    do i=1,10500000

    do j=1,8

    p(i,j) = i+j

    END DO

    END DO

    do i = 1,10500000,7

    do j = 1,8,1

    A(1,j)=p(i,j)

    A(2,j)=p(i+1,j)

    A(3,j)=p(i+2,j)

    A(4,j)=p(i+3,j)

    A(5,j)=p(i+4,j)

    A(6,j)=p(i+5,j)

    A(7,j)=p(i+6,j)

    END DO

    !Зададим правую часть линейной системы
    DO k=1,N

    DO j=1,4

    z=j+k

    B(k,j)=z

    END DO

    END DO

    !решение исходного уравнения
    CALL DLFTRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT)
    !решение для правых сторон
    DO 10 J=1, 4

    CALL DLFSRB (N, FAC, LDFAC, NLCA, NUCA, IPVT, B(1,J), IPATH, X(1,J))

    10 CONTINUE
    !вывод результатов
    ! CALL DWRRRN ('X', N, 2, X, N, 0)

    !решение исходного уравнения

    CALL DLFCRB (N, A, LDA, NLCA2, NUCA2, FAC2, LDFAC2, IPVT2, RCOND)

    ! Вывод оценки числа обусловленности

    ! CALL UMACH (2, NOUT)

    ! WRITE (NOUT,99999) RCOND, 1.0E0/RCOND CALL DSET (N, 0.0E0, RJ, 1)

    DO 20 J=1, N

    RJ(J) = 1.0E0

    CALL DLFIRB (N, A, LDA, NLCA2, NUCA2, FAC2, LDFAC2, IPVT2, RJ, IPATH2, AINV(1,J), RES)

    RJ(J) = 0.0E0

    20 CONTINUE

    !вывод результатов
    ! CALL DWRRRN ('AINV', N, N, AINV, N, 0)

    ! 99999 FORMAT (' RCOND = ',F5.3,/,' L1 Condition number = ',F6.3)
    !решение исходного уравнения

    CALL DLSLRB (N, A, LDA, NLCA3, NUCA3, B, IPATH3, X3)
    !вывод результатов
    ! CALL DWRRRN ('X', 1, N, X3, 1, 0)
    END DO

    T=Timef()

    PRINT *,' TIME: ',T

    end program double



    1. Результаты измерений времени выполнения расчета.



    Параметры системы:

    Операционная система: Windows 10 Pro

    Тип системы: 64-разрядная ОС, процессор х64

    Модель ПК: ASUS ZenBook 14 UX433

    Процессор: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx 2.10 GHz

    Установленная память (ОЗУ): 8,00 Гб (зарезервировано аппаратно 2 Гб)

    Количество ядер: 4

    Количество логических процессоров: 8
    Таблица 4. Время выполнения расчетов.

    Результаты измерений

    Описание

    Время ,с

    A

    Расчет в режиме debug с одинарной точностью

    70.475

    B

    Расчет в оптимизированном режиме с одинарной точностью.

    65.583

    C

    Расчет в оптимизированном режиме с двойной точностью

    114.420

    D


    a)Расчет на одном и том же компьютере одной версии программы с одинарной точностью в debug режиме (первая колонка с 1 до 45, вторая с 46 до 90)

    70.214

    70.568

    70.633

    70.532

    70.827

    70.762

    70.655

    70.811

    70.728

    70.621

    70.670

    70.711

    70.625

    70.687

    70.705

    70.624

    70.566

    70.812

    70.448

    70.543

    70.521

    70.445

    70.718

    70.512

    70.771

    70.711

    70.863

    70.764

    70.644

    70.834

    70.506

    70.667

    70.443

    70.555

    70.833

    70.433

    70.773

    70.849

    70.561

    70.714

    70.638

    70.591

    70.825

    70.673

    70.437

    70.875

    70.864

    70.421

    70.540

    70.857

    70.696

    70.356

    70.751

    70.774

    70.738

    70.214

    70.463

    70.743

    70.480

    70.412

    70.516

    70.497

    70.662

    70.543

    70.881

    70.679

    70.449

    70.678

    70.765

    70.484

    70.558

    70.385

    70.759

    70.588

    70.496

    70.743

    70.612

    70.478

    70.523

    70.699

    70.744

    70.532

    70.475

    70.650

    70.771

    70.481

    70.655

    70.756

    70.518

    70.450












    b) Расчет на одном и том же компьютере одной версии программы с одинарной точностью в оптимизированном режиме (первая колонка с 1 до 45, вторая с 46 до 90)

    65.633

    65.555

    65.827

    65.650

    65.655

    65.891

    65.728

    65.659

    65.665

    65.664

    65.625

    65.763

    65.655

    65.671

    65.566

    65.549

    65.448

    65.614

    65.521

    65.379

    65.718

    65.509

    65.771

    65.793

    65.863

    65.707

    65.644

    65.812

    65.506

    65.674

    65.443

    65.505

    65.833

    65.450

    65.773

    65.837

    65.561

    65.611

    65.638

    65.553

    65.825

    65.698

    65.437

    65.793

    65.864

    65.454

    65.540

    65.674

    65.696

    65.709

    65.751

    65.632

    65.738

    65.743

    65.463

    65.655

    65.480

    65.408

    65.516

    65.431

    65.662

    65.513

    65.881

    65.652

    65.449

    65.799

    65.765

    65.396

    65.558

    65.754

    65.759

    65.590

    65.496

    65.509

    65.612

    65.501

    65.523

    65.589

    65.744

    65.593

    65.475

    65.659

    65.771

    65.553

    65.655

    65.806

    65.568

    65.557




    65.782

    65.489











    c) Расчет на одном и том же компьютере одной версии программы с двойной точностью в оптимизированном режиме (первая колонка с 1 до 45, вторая с 46 до 90)







    114,228

    114,302

    114,541

    114,313

    114,383

    114,275

    114,465

    114,125

    114,248

    114,262

    114,286

    114,509

    114,6

    114,216

    114,202

    114,552

    114,205

    114,319

    114,227

    114,237

    114,322

    114,562

    114,345

    114,346

    114,108

    114,578

    114,536

    114,232

    114,422

    114,428

    114,27

    114,479

    114,475

    114,371

    114,524

    114,459

    114,409

    114,274

    114,279

    114,563

    114,464

    114,214

    114,389

    114,337

    114,452

    114,587

    114,317

    114,383

    114,312

    114,149

    114,3

    114,347

    114,516

    114,442

    114,119

    114,297

    114,32

    114,328

    114,472

    114,173

    114,5

    114,418

    114,434

    114,461

    114,366

    114,274

    114,398

    114,231

    114,221

    114,137

    114,551

    114,496

    114,315

    114,22

    114,163

    114,156

    114,421

    114,301

    114,415

    114,179

    114,568

    114,538

    114,376

    114,373

    114,21

    114,148

    114,33

    114,139

    114,27

    114,244

    114,228

    114,302

    114,275

    114,313






    Таблица 5. Время выполнения параллельных расчетов.

    Расчет

    Версия ОС

    Число программ

    Описание

    Время, с



    E



    Windows 10


    2



    Параллельный расчет в оптимизированном режиме одинарная точность

    71.311

    71.988


    3

    72.267

    73.376

    74.064


    4

    74.599

    75.275

    75.572

    76.322



    5

    77.451

    78.560

    78.990

    79.311

    79.865



    6

    81.845

    83.361

    84.798

    85.628

    86.846

    87.331

    7

    88.416

    89.356

    90.480

    91.854

    92.730

    93.527

    93.900

    8

    94.343

    95.612

    96.266

    98.032

    98.517

    98.720

    99.408

    100.440




    1. Обработка результатов.

    В процессе работы была написана расчетная программа на языке высокого уровня Fortran. Она удовлетворяет задаче существенного заполнения RAM компьютера. Занимаемая оперативная память компьютера находится в диапазоне 300‐400 Мб. Для правильной оптимизации расчетного оборудования и отражения специфики работы программ ЯЭ учебная программа считает не менее 40 сек.

    Для определения времени работы, в программу был встроен счетчик, который включается перед началом основного расчета, и выключается после того, как будет найдено решение заданной системы процедур и расчет будет окончен. В конце программы организуется вывод на экран времени счета.

    Для компактного оформления расчета значения измерений в формулы подставляться не будут. Все данные ранжированы с помощью специальной функции Excel.
    Расчет на одном и том же компьютере одной версии программы с одинарной точностью в debug режиме.
    Математическое ожидание ( М ) найдем как среднее арифметическое значений элементов выборки. Найдем по формуле:

    , где = значения элементов,

    N = 90 – количество элементов.

    М = 70.630 с.
    Медиана (Ме) – среднее арифметическое значений двух элементов ранжированной выборки, приходящихся на её середину. В нашем случае это значения под номерами 44 и 45.

    ,
    Ме = 70.647 с.
    Дисперсия выборки ( D ) – степень квадратичного отклонения каждого измеренного значения от мат. ожидания. Найдем по формуле:

    .
    D = 0.02037
    Среднеквадратичное отклонение (σ) – абсолютное отклонение измеренных значений элементов выборки от среднеарифметического значения. Найдем по формуле:
    .
    σ = 0.1427
    Размах выборки (R) – Разница между максимальным и минимальным значениями выборки. Найдем по формуле:

    .
    R = 0.667
    Середину размаха выборки (Rср) найдем по формуле:
    .
    Rср = 70.547 с.
    Мода (М0) – наиболее часто встречающееся значение элемента выборки.
    М0 = 70.214 с.
    Оценка количества интервалов выборки (m):
    1 + 3,322 ∙ lg(𝑁) < 𝑚 < 5 ∙ lg(𝑁)
    7,49 < 𝑚 < 9,77
    Выберем количество интервалов: m = 8
    Ширину интервала (S) для дальнейшего построения гистограмм определим по формуле:
    .
    Определим количество значений элементов в интервале – частоту (n):

    Начиная с наименьшего значения (70.214) двигаемся с шагом S.


    Интервал, с

    Частота

    [70.214 , 70.297375]

    2

    (70.297375,70.38075]

    1

    (70.38075,70.464125]

    11

    (70.464125,70.5475]

    17

    (70.5475,70.630875]

    11

    (70.630875,70.71425]

    20

    (70.71425,70.797625]

    16

    (70.797625,70.881]

    12



    Рис. 1. Гистограмма для 𝑻 𝟗𝟎д
    Асимметрия (А) – симметричность расположения значений элементов выборки относительно математического ожидания. Найдем по формуле:
    .
    A = -0.31, основная часть значений элементов выборки меньше математического ожидания.
    Эксцесс (Е) – показатель остроты пика распределения значений выборки. Найдем по формуле:
    .
    E = -0.278, Значения элементов выборки распределены по всей области значений.

    Расчет объема элементов выборки в интервалах М ± σ и М ± 2σ
    М + 𝜎 = 70.630 + 0,14932 = 70.77932 с.

    М – 𝜎 = 70.630 − 0,14932 = 70.48068 с.

    М + 2 ∙ 𝜎 = 70.630 + 2 ∙ 0,14932 = 70.92864 с.

    М − 2 ∙ 𝜎 = 70.630 − 2 ∙ 0,14932 = 70.33136 с.
    Известно, что нормальное распределение подчиняется правилу «трех сигм»: в пределах одного СКО лежит 68,26% значений элементов выборки, а в пределах двух – 95,44%. Рассчитаем объём элементов выборки в интервалах M±σ и M±2σ


    Интервал

    Объем элементов выборки.

    Процент от общего числа элементов выборки , %

    M ± σ

    64

    71.11

    M ± 2σ

    87

    96.66


    Распределение можно считать нормальным.
    Проведем вычисления для остальных случаев по такому же алгоритму:


    Расчет на одном и том же компьютере одной версии программы с одинарной точностью в оптимизированном режиме.
    Математическое ожидание ( М )

    , где = – значения элементов,

    N = 90 – количество элементов.

    М = 65.6343 с.

    Медиана (Ме) , Ме = 65.647 с.
    Дисперсия выборки ( D ) . D = 0.016962.
    Среднеквадратичное отклонение (σ) . σ = 0.130237.
    Размах выборки (R) . R = 0.512.
    Середина размаха выборки (Rср) . Rср = 65.635c.
    Мода (М0) М0 = 65.655 с.
    Оценка количества интервалов выборки (m):
    1 + 3,322 ∙ lg(𝑁) < 𝑚 < 5 ∙ lg(𝑁)
    7,49 < 𝑚 < 9,77
    Выберем количество интервалов: m = 8
    Ширину интервала (S) для дальнейшего построения гистограмм определим по формуле:
    .
    Определим количество значений элементов в интервале – частоту (n):


    Интервал, с.

    Частота

    [65.379 , 65.443]

    6

    (65.443,65.507]

    12

    (65.507,65.571]

    16

    (65.571,65.635]

    9

    (65.635,65.699]

    18

    (65.699,65.763]

    11

    (65.763,65.827]

    12

    (65.827,65.891]

    6





    Рис. 2. Гистограмма для 𝑻 𝟗𝟎−1.

    Асимметрия (А) .

    A = 0.033 0, симметрия, характерная для нормального распределения.

    Эксцесс (Е) .

    E = -0.9568, значения элементов выборки распределены по всей области значений.

    Расчет объема элементов выборки в интервалах М ± σ и М ± 2σ
    М + 𝜎 = 65.6343 + 0.13024 = 65.7645 с.

    М – 𝜎 = 65.6343 – 0.13024 = 65.5041 с.

    М + 2 ∙ 𝜎 = 65.6343 + 2 ∙ 0.13024 = 65.8948 с.

    М − 2 ∙ 𝜎 = 65.6343 − 2 ∙ 0.13024 = 65.3738 с.


    Интервал

    Объем элементов выборки.

    Процент от общего числа элементов выборки , %

    M ± σ

    57

    63.33

    M ± 2σ

    89

    98.88

    Распределение можно считать нормальным.


    Расчет на одном и том же компьютере одной версии программы с двойной точностью в оптимизированном режиме.
    Математическое ожидание ( М )

    , где = – значения элементов,

    N = 90 – количество элементов.

    М = 114.3472 с.

    Медиана (Ме) , Ме = 114.329 с.
    Дисперсия выборки ( D ) . D = 0.017303.
    Среднеквадратичное отклонение (σ) . σ = 0.131541.
    Размах выборки (R) . R = 0.492.
    Середина размаха выборки (Rср) . Rср = 114.354 c.
    Мода (М0) М0 = 114.27 с.
    Оценка количества интервалов выборки (m):
    1 + 3,322 ∙ lg(𝑁) < 𝑚 < 5 ∙ lg(𝑁)
    7,49 < 𝑚 < 9,77
    Выберем количество интервалов: m = 8
    Ширину интервала (S) для дальнейшего построения гистограмм определим по формуле:
    .
    Определим количество значений элементов в интервале – частоту (n):


    Интервал с.

    Частота

    [114.108 , 114.1695]

    9

    (114.1695,114.231]

    12

    (114.231,114.2925]

    12

    (114.2925,114.354]

    17

    (114.354,114.4155]

    10

    (114.4155,114.477]

    13

    (114.477,114.5385]

    8

    (114.5385,114.600]

    9




    Рисунок 3. Гистограмма для 𝑻 𝟗𝟎−2.


    Асимметрия (А) .

    A = 0.127 , основная часть значений элементов выборки больше математического ожидания.

    Эксцесс (Е) .

    E = -0.9693, значения элементов выборки распределены по всей области значений.
    Расчет объема элементов выборки в интервалах М ± σ и М ± 2σ
    М + 𝜎 = 114.3472 + 0.13154 = 114.47874 с.

    М – 𝜎 = 114.3472 – 0.13154 = 114.21566 с.

    М + 2 ∙ 𝜎 = 114.3472 + 2 ∙ 0.13154 = 114.61028 с.

    М − 2 ∙ 𝜎 = 114.3472 − 2 ∙ 0.13154 = 114.08412 с.


    Интервал

    Объем элементов выборки.

    Процент от общего числа элементов выборки , %

    M ± σ

    59

    65.55

    M ± 2σ

    90

    100

    Распределение можно считать нормальным.



    1. Построение коэффициентов корреляции.


    Коэффициент корреляции (r)- показатель, величина которого варьируется в пределах от -1 до 1. Показывает степень взаимосвязи между двумя показателями.



    Модуль значения

    Интерпретация

    0

    Переменные линейно независимы друг от друга

    До 0.2

    Очень слабая корреляция

    До 0.5

    Слабая корреляция

    До 0.7

    Средняя корреляция

    До 0.9

    Высокая корреляция

    Свыше 0.9

    Очень высокая корреляция


    Коэффициент корреляции между множеством измерений программ одинарной и двойной точности в оптимизированном режиме:
    Значение корреляции вычислим с помощью внутренней функции Excel.
    r1 = 0.031564.


    Рис 4. Зависимость измерений Т 90−1 и Т 90−2 от времени.

    Коэффициент корреляции между множеством измерений программ одинарной точности в оптимизированном режиме и в debug режиме:
    Значение корреляции вычислим с помощью внутренней функции Excel.
    r2 = 0.021342.



    Рис 5. Зависимость измерений Т 90−1 и Т 90д от времени.

    Коэффициент корреляции между множеством измерений программ двойной точности в оптимизированном режиме и в debug режиме:

    Значение корреляции вычислим с помощью внутренней функции Excel.
    r2 = 0.067870.


    Рис 6. Зависимость измерений Т 90−2 и Т 90д от времени.


    1. Производительность при выполнении параллельных расчетов.


    По приведенным выше данным можно построить график зависимости времени выполнения программы от количества выполняемых программ, по сути, данный график и будет показателем производительности:



    Рис 7. Производительность при выполнении параллельных расчетов программ.

    А также приведем зависимости времени выполнения каждого расчета при проведении параллельных вычислений:


    Рис 8. Производительность при выполнении параллельных расчетов с учетом выполнения каждой программы.



    1. Вывод.


    При выполнении данной работы была написана программа в среде программирования Visual Fortran с использованием математической библиотеки IMSL. Были проведены тестовые расчеты программы с целью проверки производительности компьютера и составлен отчет.

    1. Программы одинарной и двойной точности были запущены в нескольких режимах, а именно: в debug режиме и в оптимизированном режиме. Как видно, при выполнении программы в debug режиме, время ее работы незначительно больше времени выполнения той же программы, но скомпилированной в режиме. Это объясняется тем, что практически все вычислительные процессы происходили в процедуре IMSL, которая уже скомпилирована. Переключение режимов компиляции сказывается только на времени выполнения той подготовительной части программы, которая была написана непосредственно нами. Поскольку суммарный вклад во время выполнения этой части мал, разница во времени выполнения также мала.




    1. Распределение времени расчета на одном и том же компьютере одной версии программы происходит по нормальному закону. Об этом говорит сравнение значений мат. ожидания, медианы и середины размаха выборки (они отличаются друг от друга менее чем на процент), а также сравнение полученных данных о распределении элементов выборки с теоретическими данными по закону «трех сигм».




    1. Из полученных графиков (рис. 4-6) видно, что корреляции между множеством измерений программ не наблюдается, как и ожидалось. Следовательно, взаимосвязи между данными значениями нет.



    1. Объем занимаемой памяти прямо пропорционально связан со временем выполнения расчета, то есть чем больше памяти будет занимать буферный массив, тем дольше он будет обрабатываться.




    1. Из полученных графиков (Рис. 7, 8) видно, что с ростом числа запущенных процессов, мы получаем общее замедление выполнения программ. Это объясняется тем, что в ОС реализована система разделения времени: каждой задаче выделяется квант процессорного времени, в течение которого она может занимать процессор. По истечении этого времени задача вытесняется, и запускается следующая.



    1. Различие между временем выполнения для одинарной и двойной точности связано с тем, что при расчете с двойной точностью одно значение реального типа данных занимают 8 байт места в памяти, а при одинарной точности 4 байта, что в свою очередь, приводит к обработке больших объемов данных, следовательно, к повышению времени выполнения самой программы.



    1. Список литературы


    1. Ю. Б. Воробьев Методические указания по проведению лабораторных работ по дисциплине "Компьютерные и сетевые технологии ЯЭ".

    2. IMSL. Math Library. Volumes 1 and 2.

    3. О. В. Бартеньев «Фортран для профессионалов. Математическая библиотека IMSL»

    4. Л. С. Шихобалов «Матрицы и определители».
    1   2   3   4   5


    написать администратору сайта