2015-01-13 2 views
1

Мне любопытно пытаться использовать openMP/pThread для имитации моделей моделирования совместного моделирования, но у меня нет опыта работы с openMP или pThread, так что голый со мной, если я задавал глупые вопросы или использовал неправильные слова.Совместное моделирование FMU с использованием openMP или pThread

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

  1. Я хочу знать, если эта простая идея достижима при использовании лесных участков, экспортируемые из Dymola ...
  2. Если возможно, стоит ли это делать? Я блуждаю, если параллельная модель столь же эффективна, как и последовательная на физическом уровне. (Я понимаю, что плохо параллельная программа медленнее, чем последовательная, но мне просто нужно знать, физически она медленнее или быстрее)
  3. Последняя версия Dymola построена в функциях openMP, кто-нибудь когда-либо использовал ее? На что это похоже?

я нашел статью об этом: Master для Co-моделирование с использованием ИФР http://www.ep.liu.se/ecp/063/014/ecp11063014.pdf

высоко оценили за любые ответы или обсуждения.

ответ

2

Я думаю, что это может иметь смысл запустить несколько FMU параллельно, если они могут выполнять свою работу отдельно. В совместной симуляции сложно понять, когда симуляторы должны быть синхронизированы (например, для обмена информацией). Эта синхронизация должна быть минимальной, чтобы повысить эффективность, но достаточно, чтобы избежать отслеживания состояний симулятора (когда это возможно). Кроме того, у него есть шанс работать, когда у вас есть причинно-следственные связи между вашими FMU. Если у вас есть акаузальные отношения, это совсем другая история ...

технически, я бы сказал:

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

мои два цента

+0

Спасибо за ваши ответы, Данто. Я успешно разработал программу, которая может одновременно запускать разные FMU. И результаты выглядят неплохо. Масштабируемость FMU довольно хороша (экспортируется из Dymola, fmi 2.0), и все мои модели на самом деле причинны, но я понял способ сделать это акаузальным. –