2015-01-13 1 views
1

공동 시뮬레이션 FMU 모델을 시뮬레이트하기 위해 openMP/pThread를 사용하는 것이 궁금하지만 openMP 또는 pThread에 대한 경험이 없으므로 어리석은 질문을하거나 사용하면 나에게 들러 듭니다. 잘못된 단어.openMP 또는 pThread를 사용하는 FMU 공동 시뮬레이션

섀시는 마스터 FMU로 사용되며, 엔진, 변속기, 타이어 등은 제 3 자의 것이므로 슬레이브 FMU로 사용하려고합니다. 이 방식으로 모델을 병렬 처리하려고합니다. 마스터 FMU가 기본 스레드에 배치되고 다른 모든 스레드는 다른 스레드에 포크됩니다.

  1. 나는
  2. 가능하다면, 그것은 그 일을 가치가있다 ...이 간단한 아이디어는 Dymola에서 내 보낸 FMUs를 사용하여 얻을 수 있는지 알고 싶어? 병렬 모델이 물리 수준에서 순차적 모델만큼 효율적이라면 나는 방황합니다. (나쁘게 평행 한 프로그램이 순차적 인 프로그램보다 느리다는 것을 이해하지만, 물리적으로 느리거나 빠르다는 것을 알아야합니다.)
  3. 최신 Dymola는 openMP 기능을 내장하고 있으며 누구도 사용하지 않았습니까? 그것은 어떻게 생겼습니까? 크게 어떤 답변이나 토론을위한 감사

    FMI 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에서 내 보낸) 모든 모델은 사실 인과 관계가 있습니다. 그러나 나는 그것을 왜곡시키는 방법을 찾아 냈습니다. –

관련 문제