parsim
동적 시스템의 다중 시뮬레이션을 병렬 또는 직렬로 실행
설명
은 simOut
= parsim(in
)SimulationInput
객체 in에 지정된 입력을 사용하여 모델을 시뮬레이션합니다. parsim
함수는 SimulationInput
객체로 구성된 배열을 사용하여 다중 시뮬레이션을 실행합니다.
는 simOut
= parsim(in
,Name=Value
)SimulationInput
객체에 지정된 입력과 하나 이상의 이름-값 인수를 사용하여 지정된 옵션을 사용하여 병렬로 모델을 시뮬레이션합니다.
parsim
함수에서 시뮬레이션을 병렬로 실행하려면 Parallel Computing Toolbox™ 라이선스가 필요합니다. parsim
함수는 병렬 풀을 만들 수 없거나 Parallel Computing Toolbox가 사용되지 않는 경우 시뮬레이션을 직렬로 실행합니다.
예제
고속 액셀러레이터로 parsim
사용하기
고속 액셀러레이터 모드에서 모델 vdp
를 시뮬레이션합니다.
모델을 불러옵니다.
openExample('simulink_general/VanDerPolOscillatorExample') mdl = "vdp"; load_system(mdl)
다음 단계는 고속 액셀러레이터 타깃을 빌드합니다.
Simulink.BlockDiagram.buildRapidAcceleratorTarget(mdl);
SimulationInput
객체를 만들고 setModelParameter
함수를 사용하여 RapidAcceleratorUpToDateCheck
를 "off"
로 설정합니다.
in = Simulink.SimulationInput(mdl); in = setModelParameter(in,SimulationMode="rapid-accelerator"); in = setModelParameter(in,RapidAcceleratorUpToDateCheck="off");
모델을 시뮬레이션합니다.
out = parsim(in);
parsim을 사용하여 병렬로 모델 시뮬레이션하기
변수를 스윕하여 병렬로 CSTR 모델을 시뮬레이션합니다. SimulationInput 객체의 배열을 사용하여 스윕을 수행합니다.
스윕 값을 지정합니다.
FeedTempSweep = 250:10:300;
SimulationInput 객체로 구성된 배열을 만듭니다.
for i = length(FeedTempSweep):-1:1 in(i) = Simulink.SimulationInput('CSTR'); in(i) = in(i).setVariable('FeedTemp0',FeedTempSweep(i)); end
병렬로 모델을 시뮬레이션합니다.
out = parsim(in, 'ShowSimulationManager', 'on')
[29-Jun-2022 15:05:52] Checking for availability of parallel pool... Starting parallel pool (parpool) using the 'Processes' profile ... Connected to the parallel pool (number of workers: 6). [29-Jun-2022 15:07:01] Starting Simulink on parallel workers... [29-Jun-2022 15:07:34] Configuring simulation cache folder on parallel workers... [29-Jun-2022 15:07:35] Loading model on parallel workers... [29-Jun-2022 15:07:49] Running simulations... [29-Jun-2022 15:08:24] Completed 1 of 6 simulation runs [29-Jun-2022 15:08:24] Completed 2 of 6 simulation runs [29-Jun-2022 15:08:24] Completed 3 of 6 simulation runs [29-Jun-2022 15:08:27] Completed 4 of 6 simulation runs [29-Jun-2022 15:08:28] Completed 5 of 6 simulation runs [29-Jun-2022 15:08:28] Completed 6 of 6 simulation runs [29-Jun-2022 15:08:28] Cleaning up parallel workers... out = 1x6 Simulink.SimulationOutput array
입력 인수
in
— 병렬 시뮬레이션을 위한 입력 및 구성
Simulink.SimulationInput
객체로 구성된 배열
병렬 시뮬레이션을 위한 입력 및 구성으로, Simulink.SimulationInput
객체로 구성된 배열로 지정됩니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: ShowProgress="on"
AttachedFiles
— 병렬 풀에 연결할 파일
문자형 벡터로 구성된 셀형 배열
병렬 풀에 연결할 추가 파일로, 문자형 벡터로 구성된 셀형 배열로 지정됩니다. parsim
함수는 From File 블록을 사용하여 하위 디렉터리 내 MAT 파일 데이터를 불러오는 것을 지원하지 않습니다.
ShowProgress
— 시뮬레이션 진행률을 표시하는 옵션
"on"
(디폴트 값) | "off"
시뮬레이션 진행률을 표시하는 옵션으로, "on"
또는 "off"
로 지정됩니다. MATLAB® 명령 창에서 시뮬레이션 진행률을 보려면 "on"
으로 설정하십시오. "off"
로 설정된 경우 진행률을 표시하지 않습니다.
참고
진행률을 표시하는 경우 마지막 몇 개의 시뮬레이션이 완료되기 직전에 'Cleaning up parallel workers..'
메시지가 표시될 수 있습니다. 이 메시지는 시뮬레이션의 완료 여부를 기준으로 하지 않습니다. 시뮬레이션은 future
에서 출력을 가져올 때 완료됩니다. 자세한 내용은 Simulink.Simulation.Future
항목을 참조하십시오.
RunInBackground
— 백그라운드에서 시뮬레이션을 실행하는 옵션
"off"
(디폴트 값) | "on"
백그라운드에서 시뮬레이션을 실행하는 옵션으로, "off"
또는 "on"
으로 지정됩니다. "on"
으로 설정하면 시뮬레이션을 비동기식으로 실행하면서 MATLAB 명령 프롬프트가 사용할 수 있는 상태로 유지됩니다. 백그라운드에서 실행되는 시뮬레이션을 종료하려면 Simulink.Simulation.Future
객체의 cancel
함수를 사용하십시오.
'RunInBackground'
인수를 "on"
으로 지정하면 parsim
함수는 Simulink.Simulation.Future
객체를 반환합니다. SimulationOutput
객체에 액세스하려면 Simulink.Simulation.Future
객체를 사용하십시오.
SetupFcn
— 시뮬레이션 시작 전 워커마다 한 번씩 실행되는 함수
함수 핸들
시뮬레이션 시작 전 워커마다 한 번씩 실행되는 함수로, 함수 핸들로 지정됩니다.
예: SetupFcn=@()openProject("Modelex/Model_example.prj")
참고
SetupFcn
에서 buildRapidAcceleratorTarget
을 사용하고 모델에 외부 입력이 지정되어 있다면 LoadExternalInput
을 "off"
로 설정하거나 지정된 외부 입력을 워커에서 사용 가능하게 해서 컴파일 오류를 방지하십시오.
CleanupFcn
— 시뮬레이션 실행 후 워커마다 한 번씩 실행되는 함수
함수 핸들
시뮬레이션 실행 후 워커마다 한 번씩 실행되는 함수로, 함수 핸들로 지정됩니다.
ManageDependencies
— 모델 종속성을 관리하는 옵션
"on"
(디폴트 값) | "off"
모델 종속성을 관리하는 옵션으로, "on"
또는 "off"
로 지정됩니다. ManageDependencies
를 "on"
으로 설정하면 필요한 경우 모델 종속성이 병렬 워커로 자동 전송됩니다. ManageDependencies
를 "off"
로 설정하면 모델 종속성이 병렬 풀에 명시적으로 연결됩니다.
UseFastRestart
— 빠른 재시작을 사용하는 옵션
"off"
(디폴트 값) | "on"
빠른 재시작을 사용하는 옵션으로, "off"
또는 "on"
으로 지정됩니다. UseFastRestart
를 "on"
으로 설정하면 시뮬레이션은 빠른 재시작을 사용하여 워커에서 실행됩니다.
Simscape™ 컴포넌트의 속성을 바꾸는 파라미터 스윕을 수행하는 경우(예: Simscape Multibody™에 있는 Solid 블록의 질량과 관성) Simscape 블록 파라미터를 런타임에 구성 가능하도록 지정하십시오. 자세한 내용은 About Simscape Run-Time Parameters (Simscape) 항목을 참조하십시오.
참고
parsim
함수는 To File 블록이 포함된 모델의 빠른 재시작을 지원하지 않습니다.
TransferBaseWorkspaceVariables
— 병렬 워커에 변수를 전달하는 옵션
"off"
(디폴트 값) | "on"
병렬 워커에 변수를 전달하는 옵션으로, "off"
또는 "on"
으로 지정됩니다. TransferBaseWorkspaceVariables
를 "on"
으로 설정하면 모델에서 사용하는 변수와 기본 작업 공간에 정의된 모든 항목이 병렬 워커로 전달됩니다.
대규모 시뮬레이션에는 TransferBaseWorkspaceVariables
옵션이 권장되지 않습니다. 불필요한 기본 작업 공간 데이터를 전송하면 네트워크와 메모리 사용량이 낭비됩니다. 대신 프로젝트 시작 스크립트, 모델 콜백 함수 또는 SetupFcn
이름-값 인수를 사용하여 기본 작업 공간 데이터를 정의해 보십시오.
ShowSimulationManager
— 시뮬레이션 관리자를 여는 옵션
"off"
(디폴트 값) | "on"
시뮬레이션 관리자를 여는 옵션으로, "off"
또는 "on"
으로 지정됩니다. ShowSimulationManager
를 "on"
으로 설정하면 시뮬레이션 관리자를 사용하여 시뮬레이션을 모니터링할 수 있습니다.
StopOnError
— 시뮬레이션 오류 발생 시 남은 시뮬레이션을 건너뛰는 옵션
"off"
(디폴트 값) | "on"
시뮬레이션 오류 발생 시 남은 시뮬레이션을 건너뛰는 옵션으로, "off"
또는 "on"
으로 지정됩니다. StopOnError
를 "on"
으로 설정할 경우 시뮬레이션 오류가 발생하면 시뮬레이션 실행이 중지됩니다.
출력 인수
simOut
— 시뮬레이션 결과
Simulink.SimulationOutput
객체로 구성된 배열
시뮬레이션 결과로, 모든 기록된 시뮬레이션 데이터를 각각 포함하는 Simulink.SimulationOutput
객체로 구성된 배열로 반환됩니다. 배열의 크기는 Simulink.SimulationInput
객체로 구성된 배열의 크기와 같습니다.
모든 시뮬레이션 출력(기록된 시간, 상태 및 신호)은 단일 Simulink.SimulationOutput
객체로 반환됩니다. 구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창을 사용하여 기록할 데이터를 지정합니다. To Workspace, Scope 같은 블록을 사용하여 신호를 기록할 수 있습니다. 신호 및 스코프 관리자는 신호를 직접 기록할 수 있습니다.
확장 기능
자동 병렬 지원
Parallel Computing Toolbox™를 사용해 자동 병렬 계산을 실행하여 코드 실행 속도를 높일 수 있습니다.
Parallel Computing Toolbox가 설치되어 있다면 parsim
을 사용할 때 MATLAB이 로컬 컴퓨터에서 자동으로 워커의 병렬 풀을 엽니다. MATLAB은 사용할 수 있는 워커 전체에서 시뮬레이션을 실행합니다. 병렬 기본 설정을 사용하면 클러스터로의 확장 등을 포함해 병렬 동작을 제어할 수 있습니다
자세한 내용은 Running Multiple Simulations 항목을 참조하십시오.
버전 내역
R2017a에 개발됨
참고 항목
객체
툴
함수
applyToModel
|setBlockParameter
|setModelParameter
|setInitialState
|setExternalInput
|setVariable
|validate
|setPreSimFcn
|setPostSimFcn
|cancel
|fetchNext
|fetchOutputs
|wait
도움말 항목
- Rapid Accelerator Simulations Using Parsim
- Parallel Simulations Using Parsim: Test-Case Sweep
- Parallel Simulations Using Parsim: Parameter Sweep in Normal Mode
- Parallel Simulations Using Parsim: Parameter Sweep in Rapid Accelerator Mode
- Running Multiple Simulations
- Run Parallel Simulations for a Thermal Model of a House Using parsim
- 병렬 시뮬레이션 실행하기
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)