Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

Anorak52
Copy link

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
Owner

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


int size = 16; //������ �������
int procNum = 4; //���������� ���������
int BlockSize = int(sqrt(procNum)); //������ �����

Choose a reason for hiding this comment

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

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

Copy link
Author

Choose a reason for hiding this comment

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

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

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);
}

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];

Choose a reason for hiding this comment

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

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

@Anorak52
Copy link
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