Как стать автором
Обновить

Комментарии 14

Каков прирост производительности?
Производительность очень зависела от множества факторов. Я столкнулся со следующими:

1. Задержки во времени при передаче данных между лабораториями очень критичны. Как при загрузке исходных данных, так и при работе. Для каждой определенной задачи у меня был порог, только перейдя который я добывался увеличения производительности. Для этого с новыми силами взялся оптимизировать уже размеры файлов участвующих в расчетах.

2. Тип расчета. Классические задачи типа вычисления числа pi ускоряются на ура. Они программно оптимизированы для параллельного вычисления и равномерно загружают все ноды. А вот модель Simulink переведенную в Си код мне удалось ускорить далеко не с десятой попытки. Некоторое время занимала компиляция или пере компиляция. Да и сам код сложной системы тоже весьма сложен. Если простые алгоритмы я могу раздать нодам чуть ли не в ручную, то в случае генерированного кода я мог надеяться только на встроенные алгоритмы распределения задач. По моим наблюдениям некоторые ноды при этом простаивали.

Уже тогда я понял, что этот метод не очень подходит для ускорения моделирования систем. Стал искать возможность связи с нодами прямо из модели Simulink.

Так вот. Общая производительность увеличилась в моем случае раза в 3. Мизерный результат по сравнению с классическими задачами.

В следующем посту постараюсь показать сравнения работы кластера на различных задачах. Но хотелось бы все это сделать уже с новыми инструментами, которые успели появится у компании Mathworks.
Почему бы не использовать ec2 от амазона или какой другой облачный сервис?
Зачем нужны облака, если матлабовский кластер можно поднять на десятке машин в той же лаборатории и считать по ночам бесплатно?
А здесь зависит от того какие мощности и на какой срок нужны. Тогда можно вычислить в деньгах что будет дешевле свои 10 машин или же например GPU Cloud ;)
Ну я не зря упомянул лабораторию. Я сам администратор кластера в университете с развернутым же матлабом, и могу с точностью сказать, что рассчитывать никто ничего не будет.
:)
О!
Могу ли я рассчитывать на советы от профессионала в этой области?
Не знаю, но можно попробовать поработать вместе над созданием статей :)
Что думаете на счет использования графического процессора?
Руки чешутся, но Matlab поддерживает GPU с CUDA не ниже 1.3, а у меня в распоряжении таких видеокарт нет. Есть правда сторонние решения типа Jacket, обещающие поддержку от 1.1. Можно попробовать, но вариант с родной поддержкой мне нравится больше.

И думаю не под любые задачи подойдет использование GPU. В ближайшее время займусь попытками разделить модель между нодами самостоятельно, но для этого нужно организовать между ними связь. Это сделать у меня пока не получилось. Запустить одну модель с различными параметрами можно элементарно в оболочке parfof (использует массив лабораторий для параллельного выполнения итераций), а вот одну сложную модель распределить — это уже совсем другое дело.
Пробовали строить кластер также на MATLAB R2010b с применением Simulink, но развертывали под Ubuntu Linux. К сожалению, ограниченность во времени и ресурсах подняться проекту не дали, но опыт остался.
Спасибо за статью, может, снова руки дойдут.
НЛО прилетело и опубликовало эту надпись здесь
В основном по мануалам.
До этого мы использовали PelicanHPC и GNU Octave, кстати, тоже интересные решения для кластерных систем.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.