2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Как обработать файлы большого объема (MatLab)?
Сообщение19.11.2012, 03:44 


11/11/12
2
В общем, имеется база данных объема около 2Гб (таблица размера примерно 10^6 строк и 500 столбцов) и мне требуется обработать эти данные с помощью MatLab'a. Но проблема в том, что файл очень большого размера и я не представляю как с этим работать. Наверное, даже если удастся загрузить эту базу, все равно работа с векторами длины миллион - это как-то сильно. Может у кого-то есть опыт такой работы, посоветуйте пожалуйста как мне быть.

 Профиль  
                  
 
 Re: Как обработать файлы большого объема (MatLab)?
Сообщение19.11.2012, 07:56 
Аватара пользователя


13/03/11
139
Спб
единственно что могу посоветовать - это один раз загрузить файл в матлаб, если он у вас в каком-то своем формате и потом сохранить его с помощью функции
Код:
save
. Скорее всего в будущем он будет подгружаться быстре.

А вообще я, когда с таким столкнулся, обрабатывал mex-ом. Причем с интеловским компилятором: в моем случае он дал пятикратный рост производительности против gcc без всяких openmp.

То есть не совсем корренто написал: я сначала пытался компилить матлабовские файлы, получил не особый прирост производительности, а потом написал критичные функции на С, скормил MEX-у, а потом matlab-у. Помогло.

P.S. Может она у вас какая-нибудь разрженная?

 Профиль  
                  
 
 Re: Как обработать файлы большого объема (MatLab)?
Сообщение19.11.2012, 10:34 


11/11/12
2
theambient
Обработка МЕХ-ом - это хорошая идея. Правда, у меня есть сомнения, что MatLab считает файл такого размера. От чего это вообще зависит? т.е. объем оперативной памяти должен быть не меньше чем сколько-то, чтобы считать файл размера 2Гб? или там не только оперативка (а скорее всего так и есть), а еще что-то?

theambient в сообщении #646314 писал(а):
P.S. Может она у вас какая-нибудь разрженная?

Ну вообще там БД (по сути она представляет из себя выборку из 10^6 векторов размерности 500) в этой матрице и строковые элементы есть. Но их в принципе легко заменить на числа (типа пол: муж./жен. -> 0/1). Мне нужно найти в этой выборке выбросы: в одном столбце, в нескольких и во всех (пользователь будет в GUI будет выбирать где именно).

 Профиль  
                  
 
 Re: Как обработать файлы большого объема (MatLab)?
Сообщение19.11.2012, 20:39 
Аватара пользователя


13/03/11
139
Спб
64 бита решат вашу проблему с памятью.

а вам точно ради этого надо матлаб юзать? может по быстрому на каком-нибудь питоне или плюсах реализовать лучше?

попробуйте такого зверя как http://julialang.org - потом расскажете.

 Профиль  
                  
 
 Re: Как обработать файлы большого объема (MatLab)?
Сообщение27.11.2012, 10:51 


20/04/12
114
х64 матлаб по идее сможет загрузить всё сразу даже если не хватит оперативной памяти, надо ему только выделить виртуальную память в системе(своп на жесткий диск) только будет работать всё очень медленно, так что желательно иметь >2гб.

еще вроде есть возможность загрузки кусками .mat файла (не знаю что у вас там за база данных и как вообще делать парсинг бинарных файлов на матлабе)

http://www.mathworks.com/help/matlab/ma ... emory.html
http://www.mathworks.com/help/matlab/ma ... rrors.html

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group