-
Notifications
You must be signed in to change notification settings - Fork 49
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
base: master
Are you sure you want to change the base?
Conversation
18. Нахождение минимальных значений по столбцам матрицы
Gather
gather
Final ver
FoxAlg work
@Anorak52, вычистите, пожалуйста, ваш пулл-реквест от ненужных файлов. В репозитории должны быть только файлы с расширениями sln, vcxproj, filters, cpp, h + надо убрать старые лабораторные работы. Структура директорий должна быть аналогична той, что использовалась в прошлом году. |
|
||
int size = 16; //������ ������� | ||
int procNum = 4; //���������� ��������� | ||
int BlockSize = int(sqrt(procNum)); //������ ����� |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Странные входные данные для алгоритма Фокса. По смыслу в качестве аргументов командной строки должен использоваться размер матрицы (число строк=число столбцов) и размер блока. В предположении, что размер матрицы делится нацело на размер блока. Также в аргументах может задаваться количество потоков. В общем случае количество потоков не совпадает с общим числом блоков.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если я правильно понял, то все вышеперечисленное и включено в эти аргументы, где size - размер матрицы, procNum - количество потоков, и BlockSize - размер блока. Их можно менять и программа будет работать.
Или требуется сделать ввод со стороны пользователя именно при запуске программы уже?
There was a problem hiding this comment.
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); | ||
} |
There was a problem hiding this comment.
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]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Память из-под матриц нигде не освобождается.
@valentina-kustikova все исправил, можно вводить и через коммандную строку, и через саму программу |
OpenMP