Модуль 5. Лекция 17 - Школа системного моделирования
Автор
Соавторы
Скрипт для получения и обработки анных профилирования модели КПМ РИТМ
Определение имён и путей
In [ ]:
cd(@__DIR__)
current_model_name = engee.gcm().name;
build_dir = "/home/ritm/build/$(current_model_name)";
profile_name = "$(current_model_name)_verbose_profile.txt";
Подключение модуля RITM_API, определение подключения.
In [ ]:
using Main.EngeeDeviceManager.Targets
using Main.EngeeDeviceManager.Targets.RITM_API
ritm = Targets.RITM.Ritm()
Targets.RITM_API.setUrl(ritm, "http://10.99.3.84:8000/")
Получение данных времени выполнения шага расчёта.
In [ ]:
RITM_API.getData(ritm, current_model_name, engee_location=@__DIR__, in_file=true)
# Вспомогательная функция
function TxtToVec(Path::String)
txt = open(io->read(io, String), Path);
data_str = "[" * replace(txt, "\n" => ",") * "]";
return eval(Meta.parse(data_str))
end
tet = TxtToVec(current_model_name*".txt");
Построение динамического графика
In [ ]:
using Plots
gr(format=:png)
plot(tet; title = "$(current_model_name).engee: TET", label = :none, xlabel = "Model time, ms", ylabel = "Task execution time, ns")
Out[0]:
Построение гистограммы TET
In [ ]:
histogram(tet, bins=100, label = :none, xlabel = "Task execution time, ns", title = "$(current_model_name).engee: распределение TET",
normalize=:probability, color=:skyblue, size=(800, 400))
Out[0]:
Получение файла данных профилирования
In [ ]:
RITM_API.getFile(ritm, profile_name; from = build_dir * "/", to = @__DIR__)
profile_path = "$(@__DIR__)/" * profile_name;
Вывод таболицы с данными профилирования
In [ ]:
using CSV
df = CSV.read(profile_path, DataFrame)
Out[0]:

