Skip to content

Бражников Е.А. ЛР№2 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. OpenMP.#148

Open
Anorak52 wants to merge 13 commits intovalentina-kustikova:masterfrom
Anorak52:Fox-Alg-OpenMP
Open

Бражников Е.А. ЛР№2 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. OpenMP.#148
Anorak52 wants to merge 13 commits intovalentina-kustikova:masterfrom
Anorak52:Fox-Alg-OpenMP

Conversation

@Anorak52
Copy link
Copy Markdown

OpenMP

@Anorak52 Anorak52 changed the title Бражников Е.А. ЛР№1 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. Бражников Е.А. ЛР№2 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. Apr 20, 2020
@Anorak52 Anorak52 changed the title Бражников Е.А. ЛР№2 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. Бражников Е.А. ЛР№2 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. OpenMP. May 14, 2020
@valentina-kustikova
Copy link
Copy Markdown
Owner

@Anorak52, вычистите, пожалуйста, ваш пулл-реквест от ненужных файлов. В репозитории должны быть только файлы с расширениями sln, vcxproj, filters, cpp, h + надо убрать старые лабораторные работы. Структура директорий должна быть аналогична той, что использовалась в прошлом году.


int size = 16; //������ �������
int procNum = 4; //���������� ���������
int BlockSize = int(sqrt(procNum)); //������ �����
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Странные входные данные для алгоритма Фокса. По смыслу в качестве аргументов командной строки должен использоваться размер матрицы (число строк=число столбцов) и размер блока. В предположении, что размер матрицы делится нацело на размер блока. Также в аргументах может задаваться количество потоков. В общем случае количество потоков не совпадает с общим числом блоков.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если я правильно понял, то все вышеперечисленное и включено в эти аргументы, где size - размер матрицы, procNum - количество потоков, и BlockSize - размер блока. Их можно менять и программа будет работать.
Или требуется сделать ввод со стороны пользователя именно при запуске программы уже?

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Надо реализовать передачу параметров через аргументы командной строки,чтобы не пересобирать программу перед запуском.

if (size < 30) {
cout << "Seq Alg " << endl;
PrintMatrix(CSeq, size);
}
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Надо сделать автоматическое поэлементное сравнение результатов работы последовательного и параллельного алгоритмов, а не просто вывод результатов.

A = new double[size * size];
B = new double[size * size];
CSeq = new double[size * size];
CFox = new double[size * size];
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Память из-под матриц нигде не освобождается.

@Anorak52
Copy link
Copy Markdown
Author

@valentina-kustikova все исправил, можно вводить и через коммандную строку, и через саму программу

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants