Main Content

병렬 시뮬레이션 실행하기

parsim 명령을 사용하여 모델(설계)의 병렬(동시) Simulink® 시뮬레이션을 실행할 수 있습니다. 이 문맥에서, 병렬 실행은 다수의 시뮬레이션이 여러 워커에서 동시에 실행되는 것을 의미합니다. parsim을 사용하면 몬테카를로 분석, 파라미터 스윕, 모델 테스트, 실험 설계, 모델 최적화 등의 시나리오에서 서로 다른 입력 또는 서로 다른 파라미터 설정으로 같은 모델을 손쉽게 실행할 수 있습니다. 모델을 더 작은 컴포넌트로 분해하고 개별 부분을 여러 워커에서 동시에 실행함으로써 단일 시뮬레이션을 병렬 실행하는 것은 현재 지원되지 않습니다.

Simulink 편집기에서 다중 시뮬레이션 패널을 사용하여 여러 시뮬레이션을 실행할 수 있습니다. 모델 캔버스에서 필요한 블록 파라미터를 선택하고 시뮬레이션에 사용할 값을 지정할 수 있습니다. 다중 시뮬레이션 패널을 사용하면 병렬 연산과 같은 구성을 제공하고 시뮬레이션을 병렬로 실행할 수 있습니다. 설정한 시뮬레이션을 실행하려면 먼저 설계 연구를 선택한 다음 Simulink 툴스트립의 시뮬레이션 탭에서 모두 실행 버튼을 클릭합니다. 시뮬레이션이 완료되면 시뮬레이션 관리자에서 결과를 확인하고 관리할 수 있습니다. 자세한 내용은 Multiple Simulations Panel: Simulate for Different Values of Stiffness for a Vehicle Dynamics SystemConfigure and Run Simulations with Multiple Simulations Panel 항목을 참조하십시오.

parsim으로 시뮬레이션을 병렬 실행하려면 로컬 워커에 대한 Parallel Computing Toolbox™가 필요합니다. 또한 다수의 컴퓨터 클러스터, 클라우드, 그리드에 대해 MATLAB® Parallel Server™를 사용할 수 있습니다. Parallel Computing Toolbox 및 MATLAB Parallel Server가 없는 경우, parsim은 시뮬레이션을 직렬로 실행합니다. 자세한 내용은 Parallel Computing Toolbox 항목과 MATLAB Parallel Server 항목을 참조하십시오.

병렬 풀이 없으면 parsim은 디폴트 클러스터 프로파일로부터 풀을 생성합니다. 디폴트 외의 클러스터를 사용하려면 parsim을 호출하기 전에 해당 클러스터 프로파일로 풀을 생성하십시오.

이 예제에서는 스윕 파라미터 세트에 대해 다수의 시뮬레이션을 병렬로 실행합니다.

% 1) Load model
openExample('sldemo_suspn_3dof');
model = 'sldemo_suspn_3dof';
load_system(model);

% 2) Set up the sweep parameters
Cf_sweep  = 2500*(0.05:0.1:0.95);
numSims   = numel(Cf_sweep);

% 3) Create an array of SimulationInput objects and specify the sweep value for each simulation
simIn(1:numSims) = Simulink.SimulationInput(model);
for idx = 1:numSims
    simIn(idx) = simIn(idx).setBlockParameter([model '/Road-Suspension Interaction'], 'Cf', num2str(Cf_sweep(idx)))
end

% 4) Simulate the model 
simOut = parsim(simIn)

parsim 작동 방식

parsimSimulink.SimulationInput 객체를 바탕으로 서로 다른 파라미터 및 값으로 시뮬레이션을 실행합니다. 각 SimulationInput 객체는 모델의 시뮬레이션 하나를 지정합니다. 여러 시뮬레이션에 대해 이러한 객체로 구성된 배열을 만들 수 있습니다. 자세한 내용은 Running Multiple Simulations 항목을 참조하십시오.

Simulink.SimulationInput 객체에서 다음 메서드 및 속성을 사용할 수 있습니다.

  • setVariables - 기본 작업 공간, 데이터 사전 또는 모델 작업 공간의 변수 변경

  • setBlockParameter - 블록 파라미터 변경

  • setModelParameter - 모델 파라미터 변경

  • setPreSimFcn - 클러스터에서의 사용자 지정 및 후처리 결과를 위해 각 시뮬레이션 전에 실행할 MATLAB 함수 지정

  • setPostSimFcn - 클러스터에서의 사용자 지정 및 후처리 결과를 위해 각 시뮬레이션 후에 실행할 MATLAB 함수 지정

  • InitialState - 초기 상태 변경

  • ExternalInput - 숫자형 배열, timeseries 또는 Dataset 객체를 모델에 대한 외부 입력으로 지정

다음 순서도는 parsim 실행 시 발생하는 일반적인 이벤트 시퀀스를 보여줍니다

parsim을 사용할 때 모델 라이브러리 블록에 대한 변경 내용이 덮어쓰일 수 있습니다. 모델이 새 워커에서 구성될 때 모델은 워커 라이브러리로부터 속성을 직접 상속합니다. SetUpFcnparsim과 함께 사용하여 모델 라이브러리 블록의 변경 내용을 워커로 전송하십시오.

참고 항목

객체

함수

관련 항목