MATLAB Параллельный опрос использования памяти Parfor - PullRequest
3 голосов
/ 21 февраля 2012

Я новичок здесь для того, чтобы задавать вопросы, хотя я уже нашел здесь решение многих проблем.

Эта конкретная проблема, на которую я не могу найти ответ, поэтому решил присоединиться и спросить.

Я использую инструментарий параллельных вычислений для одновременного запуска нескольких симуляций, код, который я разрабатываю, должен быть развернут на одном ядре, поэтому нет необходимости преобразовывать алгоритм в параллель.

структуры данных, создаваемые каждой из симуляций, велики, и выполнение 8 симуляций одновременно использует всю доступную оперативную память на моей машине (4 ГБ).

В настоящее время я смотрю на сокращение памяти, используемой каждой симуляциейи задавался вопросом, знает ли кто-нибудь, как получить информацию об использовании памяти из каждого экземпляра функции.

До сих пор я звонил:

parfor i=1:8
   [IR(:, i) Data(i)] =   feval(F, NX, NY(i), SR, NS, i);
end

И внутри функции F

[usr, sys] = memory;
format short eng;
TEST.Mem = usr.MemUsedMATLAB;

Но это, понятно, возвращает память, используемую всеми 8 экземплярами F.

Я хотел бы получитьt информация из каждого экземпляра F.

Примечание. Структура данных TEST возвращается в качестве данных в функцию верхнего уровня.

Заранее благодарим за любую помощь.

1 Ответ

0 голосов
/ 30 июля 2012

Вы можете использовать профилировщик Matlab, чтобы получить подсказку об использовании памяти:

% start profiler
profile -memory on;

% start your simulation
my_sim();


% look at profiler results
profile viewer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...