0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|||||||||||
1 | |||||||||||
Параллельная рекурсия22.01.2020, 19:19. Показов 2349. Ответов 20
Здраствуйте, мне нужна помощь с распараллеливанием функции для нахождения определителя квадратной двухмерной матрицы, размеры которой могут быть более 100*100. Код нашёл на просторах интернета, рабочий проверил, однако при больших матрица "задумывается".
0
|
22.01.2020, 19:19 | |
Ответы с готовыми решениями:
20
Параллельная матрица не считает при большом количестве элементов Параллельная программа для метода холецкого с помощью openMp и mpi параллельная конфигурация Параллельная прямая |
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 20:05 [ТС] | 3 |
Считает очень долго (23 минуты спустя ответ не получил)
0
|
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 20:16 [ТС] | 5 |
Проверял на матрице 4*4, быстро посчитал
0
|
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 20:40 [ТС] | 7 |
На секунду задумался, но посчитал
проверил результат через калькулятор матриц
0
|
22.01.2020, 21:06 | 8 | |||||
Я считал не через миноры, я считал методом дописывания столбцов и строки матрицы. Тут есть примеры моего кода: https://github.com/Avazart/Bic... r/Matrix.h https://ideone.com/7yK0up Но что там там все же не так, по тому как 100x100 чет всегда выдает ноль 0. Что скорее всего не верно. Очевидно что нужно еще следить как-то за переполнением int при таких размерах матрицы ...
1
|
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 21:09 [ТС] | 9 |
Массив ниже используется
0
|
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 21:16 [ТС] | 11 |
Попробую сделать, спс
0
|
22.01.2020, 21:20 | 12 | |||||
Называется "Правило Саррюса"
https://ru.wikipedia.org/wiki/... 1%81%D0%B0 Вот куски кода, но возможно есть ошибки
2
|
фрилансер
5835 / 5353 / 1101
Регистрация: 11.10.2019
Сообщений: 14,314
|
|
22.01.2020, 21:21 | 13 |
JariXx, также можно заменить рекурсию на самодельный локальный стек, это и скорость чуток увеличит, и отладку упростит
а тут только Си или C++ можно ?
0
|
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 21:22 [ТС] | 14 |
С++
0
|
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 57
|
|
22.01.2020, 21:25 [ТС] | 16 |
А разве Саррюс не для матрицы 3*3?
0
|
22.01.2020, 22:09 | 17 |
Помогает избавиться от рекурсии вовсе.
Но боюсь я что-то накосячил с определение дописываемых элементов. Добавлено через 20 секунд Для любых. Добавлено через 7 минут В теории можно и обойтись и без выделения памяти при разложении на миноры, но там все равно будет рекурсия и легче запутаться с индексами элементов. И опять же нужно следить за переполнением int Добавлено через 35 минут Короче я перепроверил свой код, вроде как из-за того что в int не влазиет происходит переполнение при суммирование и перемножении довольно быстро при таких размерах матрицы. Нужно брать int64 и больше (вроде в новых стандартах должны были появится). Так же по идее можно использовать библиотеку mpir
1
|
715 / 675 / 110
Регистрация: 29.05.2015
Сообщений: 4,064
|
|
23.01.2020, 09:49 | 18 |
1. Ну так чего ж на этом остановился? Нужно дальше проверять - 11х11, 12х12 и т.д. и смотреть, как растёт время выполнения. Возможно при увеличении матрицы на 1 время выполнения в 2 (и более) раз растет. Что-бы дождаться результата 100х100 тебе жизни не хватит.
2. Рекурсия потребляет много лишней памяти - программа с рекурсией быстрее "выберет" всю доступную память и рухнет. Да на быстродействие рекурсия скорее всего плохо влияет - необходимость записывать в стек всю функцию, что бы вызвать следующую. Для больших вычислений лучше обходиться без неё. А что там за алгоритм, можно как-то проще объяснить на примере маленькой матрицы? А то неохота в чужом коде разбираться.
0
|
Avazart
|
23.01.2020, 13:35
#19
|
Не по теме: alexu_007, В школе что плохо было с матрицами? Стандартный алгоритм у него - разложения на миноры
0
|
zayats80888
|
23.01.2020, 18:01
Параллельная рекурсия
#20
|
0
|
23.01.2020, 18:01 | |
23.01.2020, 18:01 | |
Помогаю со студенческими работами здесь
20
Параллельная обработка Параллельная обработка файлов Параллельная обработка файлов Параллельная конфигурация неправильна Параллельная сортировка Бэтчера Параллельная работа с файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |