PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 25 сен 20 12:38

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Помогите!
СообщениеДобавлено: 22 апр 09 11:47 
Не в сети

Зарегистрирован: 7 окт 08 14:05
Сообщения: 20
Откуда: г. Ханты-Мансийск
Всё прекрасно. Хорошо хвалите Фортран. Типа для больших задач... он нужен.
И форум хороший ..., а подсказать не кому. Вот мучаюсь сомнениями по поводу использования
"больших" массивов [код: REAL(4) :: A(100000, 100000)], а тут начал
компилировать в CVF 6.5 (использую Developer Studio для создания проекта) и оказалось,
что максимально допустимый размер A(8100, 8100). При A(8200, 8200) на этапе компиляции
появляется предупреждение =>
Debug/111.exe : warning LNK4084: total image size 269234176 exceeds max (268435456); image may not run.
Если обьявлять два массива то максимальный размер каждого из них:
[код: REAL(4) :: A(4050, 4050)
REAL(4) :: A(4050, 4050)
], и так далее чем больше массивов тем меньше их размерность должна быть.
Как оказалось в моём коде несколько массивов используется поэтому даже если компилируется приложение без ошибок и предупреждений то оно затем вылетает со следующей ошибкой:
Вложение:
222.jpg
222.jpg [ 43.67 КБ | Просмотров: 7860 ]

Откликнулся: Дмитрий О. Коломиец. МГУ, физфак, каф. математики.
Посоветовал увеличить размер стека (128MB - /stack:134217728) при вводе происходит автозамена на /stack:0x8000000.
Вложение:
333.jpg
333.jpg [ 47.23 КБ | Просмотров: 7856 ]

В результате удалось перейти с сетки 11х11 на сетку 51х51, т.е. обьявить и использовать массив размерности
[код: REAL(4) :: A(2601, 2601)].
Спасибо за помощь, очень благодарен!.
Но увы, большего достичь не удалось. Возникает принципиальный вопрос:
Принципиально возможно ли использовать CVF 6.5 (Developer Studio для создания проекта) для решения системы уравнений 100000 х 100000
(т. е. использовать массив код: REAL(4) :: A(100000, 100000))?

А также попутные вопросы:
Или у меня Фортран не тот?
Или чего-то не понимаю?
Или компилятор не тот?
А может проще на С++ мне посчитать?
...
Знатоки компьютерных кодов,
не оставайтесь равнодушными к проблемам начинающих программистов,
откликнитесь, помогите!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите!
СообщениеДобавлено: 22 апр 09 12:01 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 872
Откуда: НИВЦ МГУ
REAL(4) :: A(100000, 100000) - а памяти-то хватит? Это 10 Гига-чисел, каждое 8 байт минимум. У Вас есть машина с 80 ГБ оперативной памяти?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите!
СообщениеДобавлено: 22 апр 09 12:19 
Не в сети

Зарегистрирован: 7 окт 08 14:05
Сообщения: 20
Откуда: г. Ханты-Мансийск
Serg_Zhum писал(а):
REAL(4) :: A(100000, 100000) - а памяти-то хватит? Это 10 Гига-чисел, каждое 8 байт минимум. У Вас есть машина с 80 ГБ оперативной памяти?

Спасибо понял!
Значит статические и динамические размещаемые массивы отпадают.
Но должен же быть какой-нибудь способ (обьявления и размещения) таких массивов.
Программные комплексы по расчёту конструкций методом конечных элементов
решают системы > 1 000 000 уравнений. (APM WinMachine, Лира, Sap2000 - кстати написан на Фортране).
А использование статических библиотек или может быть динамических поможет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите!
СообщениеДобавлено: 22 апр 09 12:59 
Не в сети

Зарегистрирован: 30 дек 08 11:52
Сообщения: 6
При МКЭ, если мне память не изменяет, используются разреженные форматы хранения матриц, т.к. реально ненулевых элементов там ну кот наплакал по сравнению с кол-вом элементов самой матрицы. Посмотрите в сторону http://window.edu.ru/window/library?p_rid=41183, например. Дальше станет понятно, что делать. А вообще лучше да, взять какую-нибудь библиотеку с решателями и использовать. Только от необходимости понимания "что происходит" это всё равно не спасёт :).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите!
СообщениеДобавлено: 22 апр 09 15:27 
Не в сети

Зарегистрирован: 7 окт 08 14:05
Сообщения: 20
Откуда: г. Ханты-Мансийск
rzerda писал(а):
При МКЭ, если мне память не изменяет, используются разреженные форматы хранения матриц, т.к. реально ненулевых элементов там ну кот наплакал по сравнению с кол-вом элементов самой матрицы. Посмотрите в сторону http://window.edu.ru/window/library?p_rid=41183, например. Дальше станет понятно, что делать. А вообще лучше да, взять какую-нибудь библиотеку с решателями и использовать. Только от необходимости понимания "что происходит" это всё равно не спасёт :).


Какую лучше взять библиотеку с решателями и использовать для несимметрической ленточной матрицы?

Есть вариант перейти на 64-х разрядную систему и интеловский компилятор. Поможет ли это увеличить размерность решаемых массивов?

Не скупитесь помогите! Чиркните пару строк!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите!
СообщениеДобавлено: 22 апр 09 16:31 
Не в сети

Зарегистрирован: 30 ноя 05 16:09
Сообщения: 130
Откуда: Ростов-на-Дону
На 32-х битной системе у Вас потолок памяти 2 Гбайта,
а на 64-х битной она ограничивается физической памятью компьютера.
На компьютере с 4 Гб можно решить систему примерно 20000х20000
с плотной матрицей общего вида. Можно использовать и виртуальную
память, но задача станет практически не решаемой.
В любом случае перейти на 64-х битную систему имеет смысл,
если у Вас на компьютере больше 2 Гб
Мне приходилось решать систему общего вида 65000х65000,
но для этого уже нужно 21 компьютер с памятью по 2 Гб. Разумеется
использовался параллельный решатель из библиотеки SCALAPACK.
В нем есть решатели и для ленточных матриц, а для совсем уж пустых
матриц лучше использовать итерационные решатели. Они есть
в Intel MKL и других пакетах типа Aztec, PETS


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB