schedule

Визуализируйте планирование задач (генерация кода MATLAB)

Описание

пример

schedule(executionProfile), использование Инспектора Данных моделирования, помогает вам визуализировать, как код был выполнен на целевом компьютере в последнем программном обеспечении в цикле (SIL) или процессор в цикле запущенный (PIL).

schedule(executionProfile,Name,Value) аргументы name-value использования, чтобы управлять отображением функционального выполнения и время выполнения.

Примеры

свернуть все

Для MATLAB® функционируйте, выполните программное обеспечение в выполнении цикла, которое генерирует измерения времени выполнения, и затем используйте данные, чтобы визуализировать планирование задач.

Скопируйте euclidean файлы в качестве примера к вашей локальной рабочей папке. Для получения дополнительной информации о euclidean пример, смотрите, Генерируют код С в Командной строке.

copyfile(fullfile(matlabroot,'help','toolbox','coder','examples','euclidean'));

Сделать код MATLAB подходящим для генерации кода, в euclidean.mзамена:

idx(1)=1;
idx(2)=1;

distance(1)=norm(x-cb(:,1));
distance(2)=norm(x-cb(:,1));

с:

idx = ones(1,2);

distance = ones(1,2)*norm(x-cb(:,1));

Сконфигурируйте выполнение SIL с профилированием.

config = coder.config('lib');
config.GenerateReport = true;
config.VerificationMode = 'SIL';
config.CodeExecutionProfiling = true;
config.CodeProfilingInstrumentation = true;
config.EnableOpenMP = false;

В текущей папке создайте test_example.m, скрипт MATLAB, который вызывает скомпилированную функцию дважды.

[y_min,y_max,idx,distance] = euclidean(x,cb);
[y_min2,y_max2,idx2,distance2] = euclidean(x*2,cb*2);

Сгенерируйте код библиотеки для euclidean Функция MATLAB и интерфейс SIL и запускают выполнение SIL.

load euclidean_data.mat
codegen -report -config config euclidean -args {x, cb} -test test_example
Code generation successful: View report

Running test file: 'test' with MEX function 'euclidean_sil.mexw64'.
### Starting SIL execution for 'euclidean'
    To terminate execution: clear euclidean_sil
    Execution profiling data is available for viewing. Go to Simulation Data Inspector.
    Execution profiling report available after termination.

...

Отключите процесс выполнения SIL путем щелчка по ссылке clear euclidean_sil.

### Application stopped
### Stopping SIL execution for 'euclidean'
    Execution profiling report: report(getCoderExecutionProfile('euclidean'))

Создайте переменную рабочей области, которая содержит данные времени выполнения.

executionProfile=getCoderExecutionProfile('euclidean');

Открыть отчет выполнения кода, запуск:

report(executionProfile)

Чтобы визуализировать, как задачи планируются и сгенерированный код выполнен, запуск:

schedule(executionProfile)

Инспектор Данных моделирования отображает эти графики.

В каждом графике задачи Ось Y перечисляет задачи и функции, вызванные каждой задачей. Из графиков можно вывести следующую информацию:

  • Порядок, в который запущенные задачи. Например, initialize запуски перед euclidean.

  • Время, которое требуется, чтобы выполнять задачу или функцию, вычисленную как различие между остановкой и запускать времена. Например, заметьте что начальные вызовы fabs и sqrt займите больше времени, чтобы запуститься, чем последующие вызовы тех же функций. Когда задача не запускается, значением Оси Y графика является NotRunning.

  • Порядок, в который функции, запущенные в задаче. Например, в euclidean задача, существует три вызова fabs перед каждым вызовом sqrt.

    Если вызовы функции вкладываются, вы видите стек вызовов для функций.

График времени симуляции отображает шифр для euclidean функция. В этом примере существует два вызова euclidean.

Входные параметры

свернуть все

Переменная Workspace, которая содержит выполнение кода профильные данные, сгенерированные SIL или выполнением PIL.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: schedule(executionProfile, 'ShowTasksOnly', false, 'StartSimTime', 2, 'StopSimTime', 4)

Управляйте отображением функциональных графиков выполнения:

  • true – Отобразите выполнение задачи только. Не отображайте функциональное выполнение.

  • false – Отобразите задачу и функциональное выполнение.

Задайте максимальное количество точек, чтобы отобразиться.

Задайте время выполнения в начале отображения.

Задайте время выполнения в конце отображения.

Введенный в R2021b
Для просмотра документации необходимо авторизоваться на сайте