Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.02.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
1-66546
daos
2002-02-05 07:52
2002.02.21
Событие при перемещении формы.


4-66718
Death
2001-12-21 05:47
2002.02.21
Дебагинг...


4-66704
masha
2001-12-22 02:00
2002.02.21
WIN API


1-66537
Василий Свиридов
2002-02-03 00:08
2002.02.21
Не знаю как сделать type xxx=record


6-66639
Lamok
2001-11-29 23:40
2002.02.21
Socket





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский