Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 1(297)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9, скачать журнал часть 10, скачать журнал часть 11

Библиографическое описание:
Хабаева К.М., Кульчимаев А.Р. СРАВНИТЕЛЬНЫЙ АНАЛИЗ РАБОТЫ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ МАТРИЧНЫХ ОПЕРАЦИЙ ДЛЯ ПОЛНЫХ И РАЗРЕЖЕННЫХ МАТРИЦ В МНОГОЯДЕРНЫХ CPU-СИСТЕМАХ // Студенческий: электрон. научн. журн. 2025. № 1(297). URL: https://sibac.info/journal/student/297/357154 (дата обращения: 31.01.2025).

СРАВНИТЕЛЬНЫЙ АНАЛИЗ РАБОТЫ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ МАТРИЧНЫХ ОПЕРАЦИЙ ДЛЯ ПОЛНЫХ И РАЗРЕЖЕННЫХ МАТРИЦ В МНОГОЯДЕРНЫХ CPU-СИСТЕМАХ

Хабаева Камилла Муратовна

студент, кафедра информационных технологий и систем, Северо-Кавказский горно-металлургический институт (государственный технологический университет),

РФ, г. Владикавказ

Кульчимаев Алишер Русланович

студент, кафедра компьютерного моделирования и автоматизации проектирования, Северо-Кавказский горно-металлургический институт (государственный технологический университет),

РФ, г. Владикавказ,

COMPARATIVE ANALYSIS OF PARALLEL ALGORITHMS OF MATRIX OPERATIONS FOR FULL AND SPARSE MATRICES IN MULTI-CORE CPU SYSTEMS

 

Khamilla Khabaeva

student, Department of Information Technologies and Systems, North Caucasus Mining and Metallurgical Institute (State Technological University),

Russia, Vladikavkaz,

Alisher Kulchimaev

student, Department of Computer Modeling and Automation of Design, North Caucasus Mining and Metallurgical Institute (State Technological University),

Russia, Vladikavkaz

 

АННОТАЦИЯ

В рамках работы был проведен аналитический обзор предметной области, выбрана математическая модель, минимизирующая время работы параллельных алгоритмов матричных операций, разработаны параллельные алгоритмы, использующие для работы многоядерные вычислительные системы. Также создан программный комплекс, реализующий данные параллельные алгоритмы для операций над полными и разреженными матрицами. Была проведена серия экспериментов, подтверждающая адекватность выбранной математической модели и эффективность программного комплекса.

ABSTRACT

As part of the work, an analytical review of the subject area was conducted, a mathematical model was selected that minimizes the running time of parallel algorithms of matrix operations, parallel algorithms were developed that use multi-core computing systems for operation. A software package was also created that implements these parallel algorithms for operations on full and sparse matrices. A series of experiments were conducted to confirm the adequacy of the selected mathematical model and the effectiveness of the software package.

 

Ключевые слова: распараллеливания, умножение матриц, c++, сложение матриц, умножение матрицы на константу, транспонирование матриц, сравнительный анализ, многоядерные cpu-системы, параллельный алгоритм.

Keywords: parallelization, matrix multiplication, C++, matrix addition, matrix multiplication by a constant, matrix transposition, comparative analysis, multi-core CPU systems, parallel algorithm.

 

Введение

С развитием вычислительных систем и расширением возможностей многоядерных процессоров актуальность исследований в области параллельных алгоритмов для операций над матрицами значительно возросла.

Особый интерес представляют нам сравнительные анализы эффективности таких алгоритмов при работе с полными и разреженными матрицами в многоядерных CPU-системах.

Работа посвящена исследованию и сопоставлению работы параллельных алгоритмов матричных операций для обеих типов матриц с целью определения оптимальных стратегий вычислений. Акцент делается на эффективности использования ресурсов и скорости выполнения операций в контексте многоядерных архитектур, что и имеет важное значение для ряда прикладных задач, таких как обработка изображений, машинное обучение, численное моделирование и другие.

Таким образом это исследование направлено на выявление эффективности различных алгоритмов в данной сфере, что имеет потенциал для улучшения производительности и оптимизации вычислительных процессов.

Проведение эксперимента

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

Цели экспериментов:

  • Определение времени, необходимого для выполнения матричных операций;
  • Нахождение коэффициентов k из уравнений;
  • Проверка корректности уравнений.

Эксперименты проводились на ПК с характеристиками, представленными в Таблице 1. Основной параметр, исследуемый в работе программного комплекса, — это время его выполнения.

Для измерения времени выполнения программы использовался класс Stopwatch. Время выполнения сохраняется в Stopwatch.Elapsed.

Таблица 1

Характеристики ПК

Производитель процессора

Intel

Тип процессора

Core i5-10300H

Количество ядер процессора

4

Макс. такт. частота

2496 МГц

Оперативная память (RAM)

8Гб

Частота памяти

2933 Мгц

Производитель видеокарты

NVIDIA

Графический контроллер

GeForce GTX 1650

Жесткий диск (HDD)

1000ГБ

ОС

Windows 10 PRO (64 bit)

 

В рамках работы была проведена серия экспериментов с целью определения двух зависимостей:

  • зависимость времени выполнения матричной операции от количества используемых потоков и размера матрицы;
  • зависимость времени выполнения от размера матрицы при использовании одного потока и оптимального количества потоков.

Ход эксперимента:

В ходе эксперимента для матричной операции умножения полной и разреженной матриц брались исходные матрицы размером: 2000, 3000, 4000, 5000, 6000. Количество потоков менялось от 1 до 6. Было проведено по 50 замеров для каждого размера матрицы. Полученное время записывалось в файл.

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

Таблица 2

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

N

 

1

2

3

4

5

6

 

20002

D(X)

0,00016303

0,00188616

0,00220017

0,00333420

0,004174

0,001939

σ

0,012768152

0,043429939

0,046905975

0,057742557

0,064604

0,044036

 

30002

D(X)

0,0003069

0,0014519

0,002669

0,004236

0,004142

0,007339

σ

0,017518

0,0381043

0,051662

0,065082

0,064359

0,085666

 

40002

D(X)

0,0018932

0,00146461

0,00426819

0,0053013

0,0041777

0,005635

σ

0,04351088

0,03827025

0,06533137

0,0728103

0,0646355

0,07507

 

50002

D(X)

0,00646645

0,0065579

0,007771

0,024781

0,018167

0,005822

σ

0,08041423

0,0809812

0,088152

0,157418

0,134784

0,0763

 

60002

D(X)

0,0083682

0,0065435

0,0094996

0,0436786

0,0107152

0,026754

σ

0,0914779

0,0808922

0,0974657

0,2089943

0,1035143

0,163565

 

Таблица 3.

Время выполнения матричной операции умножения для полных матриц разным числом потоков в зависимости от размера матриц

N\x

1

2

3

4

5

6

20002

0,512211

0,316174

0,283503

0,320021

0,332067

0,388246

30002

1,1314

0,626793

0,489935

0,49413

0,520417

0,548786

40002

2,056181

1,101207

0,831873

0,806826

0,760382

0,783868

50002

3,271071

1,757814

1,326836

1,224893

1,173437

1,147612

60002

4,685598

2,455861

1,721829

1,46238

1,546163

1,648655

 

Рисунок 1. Время работы алгоритма разным числом потоков в зависимости от размера матрицы

 

Коэффициент корреляции между временем и числом процессоров получился отрицательный, потому что с увеличением числа процессоров время уменьшается. Коэффициент корреляции между временем и количеством элементов матрицы положительный, так как с возрастанием размера матрицы растет и время. А коэффициент корреляции между числом процессоров и количеством элементов матрицы равен нулю потому, что они не зависят друг от друга.

Ниже представлена таблица, в которой записаны коэффициенты

k10, k11, k12, k13, k14, k15, k16, k17, k18, k19:

Таблица 4.

Коэффициенты ki для билинейной интерполяции

k10

k11

k12

k13

k14

0,072

-1,166*10-8

0,027

5,205*10-9

-0,135

0,59

-5,783*10-8

-0,031

9,778*10-9

-1,411

-0,154

-8,492*10-8

0,144

1,616*10-8

-0,014

k15

k16

k17

k18

k19

1,432*10-7

0

0

0

0

2,447*10-7

0,823

-6,55*10-8

0

0

 

Рисунок 2. Сумма квадратов разности (St) и средняя ошибка аппроксимации (At)

 

Результат:

В результате эксперимента на основе выражения (2.5) получены следующие данные:

Таблица 5

Аналитические данные времени работы

Размер матрицы

Время выполнения операции

Количество потоков

1

2

3

4

5

6

20002

0.491

0.319

0.294

0.305

0.33

0.363

30002

1.149

0.646

0.527

0.505

0.521

0.556

40002

2.071

1.104

0.854

0.784

0.787

0.825

50002

3.257

1.692

1.274

1.144

1.129

1.171

60002

4.706

2.41

1.788

1.584

1.547

1.594

 

Рисунок 3. Аналитическая и экспериментальная зависимости времени счета от числа потоков при размере матрицы, равным 30002

 

Рисунок 4. Зависимость времени решения функции одним потоком и оптимальным количеством потоков

 

Таблица 6.

Время выполнения умножения разреженных матриц разным числом потоков в зависимости от размера матриц

N\x

1

2

3

4

5

6

20002

0.130771

0.147200

0.150879

0.172055

0.159087

0.171799

30002

0.273758

0.238180

0.246785

0.272610

0.248235

0.275068

40002

0.483907

0.368095

0.342284

0.407074

0.415192

0.387777

50002

0.772305

0.503385

0.472291

0.567689

0.590396

0.608549

60002

1.108748

0.717748

0.622438

0.789885

0.736474

0.803914

 

Рисунок 5. Время выполнения операции разным числом потоков в зависимости от размера матрицы

 

Множественный коэффициент корреляции равен 0,943.

Коэффициент корреляции между временем и числом процессоров получился отрицательный, потому что с увеличением числа процессоров время уменьшается. Коэффициент корреляции между временем и количеством элементов матрицы положительный, так как с возрастанием размера матрицы растет и время. А коэффициент корреляции между числом процессоров и количеством элементов матрицы равен нулю потому, что они не зависят друг от друга.

Для операции умножения разреженных матриц у меня используется математическая модель 2.4, в которой были найдены коэффициенты k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 (Таблица 4.9).

Таблица 7.

Коэффициенты ki для операции умножения разреженных матриц

k10

k11

k12

k13

k14

0,205

-4,636*10-9

-0,014

3,361*10-9

-0,191

0,231

1,313*10-8

-0,017

1,388*10-9

-0,254

0,653

-1,092*10-7

-0,116

3,02*10-8

7,836*10-3

k15

k16

k17

k18

k19

3,18*10-8

0

0

0

0

-1,199*10-8

0,04

2,825*10-8

0

0

-2,272*10-9

-0,947

1,889*10-9

0,403

-7,697*10-8

 

Таблица 8

Сумма квадратов разности (St) и средняя ошибка ап- аппроксимации (At)

 

Результат:

В результате эксперимента на основе выражения (2.6) получены следующие данные:

Таблица 9

Аналитические данные времени работы

Размер матрицы

Время выполнения операции

Количество потоков

1

2

3

4

5

6

20002

0.124

0.148

0.165

0.172

0.173

0.169

30002

0.277

0.235

0.242

0.261

0.272

0.267

40002

0.493

0.357

0.35

0.385

0.41

0.404

50002

0.769

0.513

0.489

0.545

0.588

0.591

60002

1.107

0.705

0.659

0.74

0.806

0.797

 

Рисунок 6. Аналитическая и экспериментальная зависимости времени счета от числа потоков при количестве элементов матрицы, равным 50002

 

Проведем сравнительный анализ при параллельном и последовательном режиме. На графике 4.5. показана зависимость времени решения функции на одном потоке и на оптимальном числе потоков.

Таблица 10.

Время решения на одном и на оптимальном количестве потоков

Размерность матрицы

T1(N)

Tопт(N)

20002

0,130772

0,130772

30002

0,273758

0,238181

40002

0,483907

0,342285

50002

0,772305

0,472291

60002

1,108749

0,622438

 

Рисунок 7. Зависимость времени решения одним и оптимальным количеством потоков

 

Эксперимент показал эффективность разработанного программного комплекса, так как реализованный мною параллельный алгоритм дал значительный прирост производительности, в сравнении с последовательно работающим алгоритмом. Также показал адекватность выбранной математической модели, так как экспериментальные данные практически совпали с аналитическими.

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

Заключение

В данной работе проведен сравнительный анализ работы параллельных алгоритмов матричных операций для полных и разреженных матриц в многоядерных CPU-системах. Основной целью исследования было выявление эффективности различных алгоритмов при работе с разными типами матриц, а также оценка их производительности на современных многоядерных процессорах.

В ходе работы были выполнены следующие задачи:

  1. Разработаны и реализованы параллельные алгоритмы для выполнения основных матричных операций, таких как сложение и умножение, для полных и разреженных матриц.
  2. Проведены экспериментальные исследования производительности разработанных алгоритмов на различных типах матриц и в различных режимах параллельного выполнения.
  3. Осуществлен анализ полученных результатов с точки зрения времени выполнения, использования вычислительных ресурсов и масштабируемости.

 

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

  1. Мирошников А. С. Система управления параллельной обработки данных в локальных вычислительных сетях. Дисс… канд. техн. наук. Владикавказ, 2000.
  2. Голубев В. В. "Численные методы линейной алгебры". - М.: Триумф, 2003. – 806 с.
  3. Воронов В. В., Базылев П. Н. "Линейная алгебра и численные методы"- М.: Аст, Астрель, 2006. – 446 с.
  4. Фаддеев Д. К., Фаддеева В. Н. "Вычислительные методы линейной алгебры" - 2009. – 576 с.
  5. Пономарев А. Г. "Алгоритмы и методы оптимизации". — 2006. — С. 390. — 879
  6. Преображенский Н. А. "Математические методы и алгоритмы обработки разреженных матриц" - М.: Триумф, 2009. – 396 с.
  7. Ильин В. А., Ким В. П. "Методы вычислений" - 2006. – 446 с.
  8. Эндрю Троелсен: Язык программирования C++. М.: Вильямс 2018 - 4-е изд. 1344 с.

Оставить комментарий