병렬 시뮬레이션 실행하기
parsim
명령을 사용하여 모델(설계)의 병렬(동시) Simulink® 시뮬레이션을 실행할 수 있습니다. 이 문맥에서, 병렬 실행은 다수의 시뮬레이션이 여러 워커에서 동시에 실행되는 것을 의미합니다. parsim
을 사용하면 몬테카를로 분석, 파라미터 스윕, 모델 테스트, 실험 설계, 모델 최적화 등의 시나리오에서 서로 다른 입력 또는 서로 다른 파라미터 설정으로 같은 모델을 손쉽게 실행할 수 있습니다. 모델을 더 작은 구성요소로 분해하고 개별 부분을 여러 워커에서 동시에 실행함으로써 단일 시뮬레이션을 병렬 실행하는 것은 현재 지원되지 않습니다.
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
작동 방식
parsim
은 Simulink.SimulationInput
객체를 바탕으로 서로 다른 파라미터 및 값으로 시뮬레이션을 실행합니다. 각 SimulationInput
객체는 모델의 시뮬레이션 하나를 지정합니다. 여러 시뮬레이션에 대해 이러한 객체로 구성된 배열을 만들 수 있습니다. 자세한 내용은 Running Multiple Simulations 항목을 참조하십시오.
Simulink.SimulationInput
객체에서 다음 메서드 및 속성을 사용할 수 있습니다.
setVariables
- 기본 작업 공간, 데이터 사전 또는 모델 작업 공간의 변수 변경setBlockParameter
- 블록 파라미터 변경setModelParameter
- 모델 파라미터 변경setPreSimFcn
- 클러스터에서의 사용자 지정 및 후처리 결과를 위해 각 시뮬레이션 전에 실행할 MATLAB 함수 지정setPostSimFcn
- 클러스터에서의 사용자 지정 및 후처리 결과를 위해 각 시뮬레이션 후에 실행할 MATLAB 함수 지정InitialState
- 초기 상태 변경ExternalInput
- 숫자형 배열, timeseries 또는 Dataset 객체를 모델에 대한 외부 입력으로 지정
다음 순서도는 parsim
실행 시 발생하는 일반적인 이벤트 시퀀스를 보여줍니다
parsim
을 사용할 때 모델 라이브러리 블록에 대한 변경 내용이 덮어쓰일 수 있습니다. 모델이 새 워커에서 구성될 때 모델은 워커 라이브러리로부터 속성을 직접 상속합니다. SetUpFcn
을 parsim
과 함께 사용하여 모델 라이브러리 블록의 변경 내용을 워커로 전송하십시오.
참고 항목
객체
함수
applyToModel
|setBlockParameter
|setModelParameter
|setInitialState
|setExternalInput
|setVariable
|validate
|setPreSimFcn
|setPostSimFcn