2014-01-29 4 views
1

실행하는 데 약 1 시간이 걸리는 거대한 시뮬 링크 모델이 있습니다. 내 컴퓨터 (HP Z210)에서 실행하면 컴퓨터가 모든 CPU 코어를 100 % 사용합니다. 내게 흥미로운 점은 동료 컴퓨터 (Dell 정밀 T3600)에서 실행되는 동일한 모델이 CPU "전원"의 50 %를 사용한다는 것입니다 (일부 코어는 100 %이고 일부 코어는 유휴 상태로 유지됨).주어진 모델에 대해 여러 코어에서 실행되는 Simulink (또는 아님)

내 질문은 다음과 같습니다

  1. 나는 항상 시뮬링크는 단일 코어에서 실행 생각했다. 나는 parrallel 컴퓨터 도구 상자 또는 다른 도구 상자를 사용하지 않습니다. 저는 Matlab 및 Simulink 라이센스 만 사용하고 있습니다.
  2. 내 컴퓨터에서 실행이 내 동료와 다른 이유는 무엇입니까? 하이퍼 스레딩과 관련이 있습니까?

답변

3

단일 모델을 실행하는 데 simulink 자체가 단일 스레드이지만 블록 자체는 다중 스레드 일 수 있습니다. 예를 들어 행렬 곱셈을 실행하는 시뮬 링크 블록은 matlab에서도 사용되는 다중 스레드 구현을 사용합니다.

2

Simnulink는 확실히 단일 스레드 응용 프로그램입니다. 단, 빠른 가속기 모드를 사용하고 여러 코어를 사용할 수있는 경우 독립 실행 형 실행 파일은 별도의 코어에서 실행됩니다. 자세한 내용은 How Acceleration Modes Work을 참조하십시오.

여러 시뮬레이션을 실행하는 경우 Parallel Computing Toolbox를 사용하여 여러 코어에 배포하거나 MATLAB Distributed Computing Server로 여러 작업자 (기계)까지 배포 할 수 있습니다. 그러나 이는 여러 모델 (예 : Monte-Carlo 시뮬레이션)을위한 것이지 여러 모델의 큰 모델을 깨기위한 것이 아닙니다 (현재까지는 내가 아는 한 불가능 함). 자세한 내용은 Run Parallel Simulations을 참조하십시오.

실행이 한 컴퓨터에서 다른 컴퓨터와 다른 이유는 확실하지 않습니다. 둘 다 같은 릴리즈의 MATLAB을 사용하고 있습니까? 같은 O/S? 서로 다를 수있는 많은 것들이 있습니다. 모델 실행 속도 향상과 관련하여 Simulink 프로파일 러를 사용하여 병목 현상이 어디인지 확인하고 일부 솔버 설정 (예 : 가변 단계 대 고정 단계)을 변경하여 모델을 가속 모드로 실행해볼 수 있습니다. ..

0

모델을 Simulink Coder로 빌드 할 수있는 경우 xMOD 소프트웨어 (www.xmodsoftware.com)를 사용하여 멀티 코어 (각 스레드에 대한 전용 솔버와 스텝 ​​크기로 서브 시스템별로 모델을 실행할 수 있습니다 서브 시스템).