Параллельное вычисление извлечения данных из базы данных SQL в Matlab - PullRequest
0 голосов
/ 28 ноября 2018

В моей текущей настройке у меня есть цикл for, в котором я извлекаю данные другого типа из базы данных SQL, размещенной на Amazon EC2.Это извлечение выполняется в функции extractData(variableName).После этого данные анализируются и сохраняются как файл матов в parsestoreData(data):

variables = {'A','B','C','D','E'}
for i = 1:length(variables)
    data = extractData(variables{i});
    parsestoreData(data);
end

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

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

Поэтому мне интересно, может ли Matlab решить эту проблему разумным способом с точки зрения паррелелизации?

1 Ответ

0 голосов
/ 30 ноября 2018

Рабочие в параллельном пуле, работающие parfor, в основном представляют собой полные процессы MATLAB без пользовательского интерфейса, и по умолчанию они работают в режиме «одного вычислительного потока».Я не уверен, принесет ли вам parfor пользу в этом случае - цикл parfor просто организует для работников MATLAB параллельное выполнение итераций вашего цикла.Вы можете сами оценить, насколько хорошо ваша проблема будет распараллеливаться, запустив несколько полнофункциональных настольных MATLABs и включив их одновременно.Я бы запустил что-то вроде этого:

maxNumCompThreads(1);
while true
    t = tic();
    data = extractData(...);
    parsestoreData(data);
    toc(t)
end

и затем проверил, как времена, сообщаемые toc, меняются в зависимости от количества клиентов MATLAB.Если время остается постоянным, вы можете разумно ожидать, что parfor принесет вам пользу (поскольку это означает, что тело может быть эффективно распараллелено).Однако, если время значительно уменьшается при запуске большего количества клиентов MATLAB, то почти наверняка, parfor будет испытывать такое же (относительное) замедление.

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