Перейти к публикации

Нужна помощь mpi-win7


Рекомендованные сообщения

доброго всем дня

столкнулся с такой проблемой в 13 fluent

имеется один системный блок далее СБ следующей конфигурации

intel i7 x990 3.47 -12 потоков

24гб озу итд...

все стоит Ha asus rampage 3

и еще 4 i7 x950

проблема при распаралеливании такая при подключении х990 к остальным, а точнее остальных к х990 нет ни какого прироста во времени расчёта, а наоборот его увелличение, сеть 1 ггб маршрутизатор cisko пробовал расчёт и на hp-mpi intel mpi которые идут в комплекте, ни чё не помогает посоветуйте хоть что нибудь может кто знает

С ув. Batiska

Ссылка на сообщение
Поделиться на других сайтах


Доброе время суток.

Batiska, на Ваш "крик души" = "... ни чё не помогает посоветуйте хоть что нибудь ...", могу только чуть чуть поделиться опытом и дать направление для дальнейших изысканий:

1) всегда удивляет когда на реальных 4-ёх или теперь уже есть = 6-ти ядерниках (в перспективе 8, 12, и т.д.) распараллеливают соответственно на 8 или 12 процессов, объясню почему, как сам понимаю, так сказать "на пальцах" - реально процессоров всего 4, в Вашем случае 6, тот Гипертрэйдин который принимается операционкой за дополнительный процессор является лишь неким набором инструкций которые могут выполняться когда основной процессор полностью занят, или иначе - это некий шестой палец на руке которым вроде как бы можно где то ковырятся и что то делать пока рука работает, но это неполноценная рука. Как показывают тесты и опыты реальный прирост в специально заточенных программах под работу с Гипертрэйдингом не более 10%. Возникает вопрос - нужны ли Вам эти 10% ? - Сам бы ответил, на длительных расчетах - наверное ДА!, но есть другой момент - Ваша задача делится не на 6 процессов а на 12, следовательно каким то образом каждый процесс должен обмениваться с остальными тем что он сделал чтобы потом считать дальше, а это как понимаете не с пятью соседями договариваться, а с одиннадцатью - и тут теряется в производительности гораздо больше чем приобретается за счет Гипертрэйдинга. Это чисто мое мнение и я не претендую на истину в конечном виде и готов к любому обмену мнениями.

2) если наложить вышесказанное на конкретную персоналку то работа всех процессоров со своей памятью = достаточно быстрая, но если делить процессы между машинами в сети, то времена пересылки информации между процессами возрастают на порядки.

3) честно сказать, я не знаю точно как Fluent автоматически делит задачу на процессы когда используется сетевое распараллеливание - возможно что "соседнии данные" закрепляются за каждой отдельной машиной и Fluent минимизирует обменные данные между машинами. Но как сами понимаете на первом этапе загрузки и распараллеливания Fluent не знает ничего кроме того какой объем ячеек Вашей сетки отдать и скольким процессам. Банально, если есть 1 000 000 ячеек и 10 процессов то он раздаст в районе 100 000 ячеек каждому процессу. Пишу, так сказать "на пальцах", многие разбирающиеся в параллелизме меня могут править, и я с ними соглашусь, но это будет дискуссия не для этой темы. Так вот, представте на Вашем 6-ти и 4-ёх ядернике в сети как поделится эта задача!? - По 100 000 ячеек на ядро. Ядер у Вас всё равно 6+4=10, а если бьете с Гипертрэйдингом то 12+8=20 процессов и следовательно 50 000 ячеек на процесс (который всё равно будет считаться 1-им ядром для 2-ух процессов и всё равно 100 000 ячеек). Но если представить все в виде шахматной доски - чем больше на ней квадратиков, тем больше соседей с которыми надо обмениваться. И хорошо если эти соседи как можно меньше пересылают по сети, а если, например, поделено так что каждый четный процесс на 4-ёх ядернике должен обмениваться с нечетным на 6-ти ядернике?! - то пересылки займу гораздо больше времени чем расчёт!

4) теперь касаемо совета - как быть Вам. Читать ХЕЛП про нижеследующее.

Fluent -> Parallel -> Partitioning and load balansinb...

Там, для своей конкретной задачи выбрать для себя метод, и необходимые параметры на вкладках.

Я, одно время "поигрался" со вкладками - "Weighting", "Dynamic Load Balancing". В первой надо для своей модели правильно включить и задать параметры "сбора ИНФЫ" = весовых характеристик рассчитываемой задачи, а во второй включить "Physical Models" и там всё правильно задать. В результате, если в двух словах, то Fluent после выполнения определенного количества итераций должен сверить заданные параметры, рассчитанные веса и перераспределить объем ячеек между процессами. Если вернуться к примеру из пункта 3) (см. выше) то исходя из сложности задачи между процессами могут поделится данные не по 100 000 ячеек на ядро, а в какие то процессы пойдет по 10-20 тыс. ячеек, а в какие то и по 80-90 тыс. ячеек и при этом задача решаться станет гораздо быстрее.

P.S.

Лично я, спецов сильно разбирающихся в распараллеливании средствами Fluent не встречал и до всего доходил сам. Эта тема мне интересна и если кто то поделится опытом в этом направлении - респект и уважуха. Правдо, с некоторых пор нам в отдел закупаются машины типо вашей - сугубо 6-ти ядерники с 24 ГБ оперативы и т.д...., а для решения "объемных" задач есть доступ к суперкомпьютеру, но всё равно балансировка нагрузки достаточно интересная и полезная тема и для суперкомпьютера, который в нулевом приближении - те же компы связаные по сетке (но очень быстрой сетке). Сам этой темой перестал заниматься из-за нехватки времени, поскольку достаточно затратно эмпирически перебирать параметры и методы, даже для конкретной "вылизаной" задачи.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

огромное спасибо за столь вразумительный отзыв

буду пробовать

С ув. Batiska

Изменено пользователем batiska
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...