Мне нужно выполнить несколько независимых анализов для одного и того же набора данных.
В частности, мне нужно выполнить пакеты анализа 100 glm (обобщенные линейные модели), и я подумал, чтобы воспользоваться моей видеокартой (GTX580).
Поскольку у меня есть доступ к Matlab и Parallel Computing Toolbox (и я плохо разбираюсь в C ++), я решил попробовать.
Я понимаю, что один GLM не идеален для параллельных вычислений, но, поскольку мне нужно запустить 100-200 параллельно, я подумал, что использование parfor может быть решением.
Моя проблема в том, что мне не ясно, какой подход я должен использовать. Я написал gpuArray-версию функции matlab glmfit, но использование parfor не имеет никаких преимуществ перед стандартным циклом for.
Это как-то связано с настройкой matlabpool? Мне даже не понятно, как настроить это, чтобы «видеть» карту GPU. По умолчанию это число ядер в процессоре (4 в моем случае), если я не ошибаюсь.
Я совершенно не прав на подходе?
Любое предложение будет высоко оценено.
Редактировать
Спасибо. Я знаю о GPUmat и Jacket, и я мог бы начать писать на C без особых усилий, но я тестирую возможности вычислений на GPU для отдела, где все используют Matlab или R. Конечной целью будет кластер на основе C2050. и сервер распространения Matlab (или, по крайней мере, это был первый проект).
Читая объявления от Mathworks, у меня сложилось впечатление, что параллельные вычисления возможны даже без навыков Си. Невозможно попросить исследователей в моем отделе изучать C, поэтому я предполагаю, что GPUmat и Jacket являются лучшими решениями, даже если ограничения достаточно велики, а поддержка нескольких часто используемых подпрограмм, таких как glm, отсутствует.
Как их можно связать с кластером? Они работают с какой-то системой распределения работы?