Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.21;
Скачать: CL | DM;

Вниз

Размещение больших динамических массивов   Найти похожие ветки 

 
dim2001   (2002-02-05 21:38) [0]

Предстоит работать с матрицами размером 50000х50000 эл-тов и более. Как узнать хватит ли памяти для размещения динамического массива? В ФОРТРАНЕ в операторе размещения ALLOCATE возвращался признак успешного размещения. А как с этим в DELPHI ? Если есть какие-то функции для этого, то уж приведите пример их корректного использования. Заранее благодарен.


 
Anatoly Podgoretsky ©   (2002-02-05 21:57) [1]

50000*50000 = 2,500,000,000 элементоы, можно не считать, невозможно разместить в памяти, даже если это байт массив.


 
Builder ©   (2002-02-06 00:13) [2]

Прежде чем пользовать память, нужно подумать, ка коно будет обрабатываться - оцени скорость и ляг спать :)

ЗЫ Неужели в этой матрице все элементы существенны и отличны от 0?


 
Фэ ©   (2002-02-06 10:39) [3]

Задачи такого масштаба не на Intel-платформах решаются.
Еще скажите, что захотелось прогноз погоды в планетарном масштабе на год вперед рассчитать или смоделировать термоядерную войну на Плутоне.
Придется с диском работать, но обсчитать матрицу (A-1) такого порядка !
Оценка вычисления обратной матрицы (плотная) при исп стандартных
мат.процедур над extended.

T(X)=160*X^3 где x в тысячах, T в миллисек

X T
1 3 мин
10 2 сут
50 231 сут


 
Johnny Smith   (2002-02-06 11:08) [4]

Так вот, докладываю, что такие проблемы на Intel-платформах решаются.
Слазьте на сайт www.solver.com - одна американская фирма предлагает оптимизатор, работающий с матрицами размером 65 000 на 65 000. Как - не знаю, может, свопят на диск.


 
Фэ ©   (2002-02-06 11:31) [5]

Я говорил о стандартном компиляторе от Delphi.
Достаточно взглянуть на производительность библиотек от Intel или тот же Intel C-компилятор, как резервы скорости станут ясны.
Но от объема никуда не деться.
Возможно даже придется специально организовывать работу с диском.


 
PVOzerski ©   (2002-02-06 13:24) [6]

Ну ребята, есть же API-функция GlobalMemoryStatus. А во FreePascal, например, и MaxAvail, как в TP,
работает. Только сами понимаете, в многозадачной системе сейчас это значение такое, а через
секунду - другое.


 
Romkin ©   (2002-02-06 14:02) [7]

Невозможно запросить памяти для данных процесса более 2Gb, если не ошибаюсь


 
Romkin ©   (2002-02-06 14:13) [8]

Так что единственное - файлы, отображаемые в память, там позиция int64 (два DWORD). Но считать будет доооооолго. И при этом мне неизвестен метод обращения матрицы, при котором не требуется еще одна такая же. А обратная матрица к разреженной разреженной быть не обязана


 
Фэ ©   (2002-02-06 14:20) [9]

Методы есть, но считать точно долго..
Максимум, что мне приходилось 3000x3000 extended



Страницы: 1 вся ветка

Текущий архив: 2002.02.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
1-66542
yaJohn
2002-02-04 17:14
2002.02.21
BorlandMM.dll


3-66427
___Nikolay
2002-01-26 16:58
2002.02.21
!!! СРОЧНО PLZ !!! ___КАК АРХИВИРОВАТЬ ФАЙЛЫ В БД____


1-66562
Eduard
2002-02-05 12:05
2002.02.21
Установка компонентов в Delphi6


1-66606
dim2001
2002-02-05 21:38
2002.02.21
Размещение больших динамических массивов


1-66561
maks_f
2002-02-05 14:40
2002.02.21
Как получить процедуру из DLL