Skip to content

Commit c436373

Browse files
committed
Performance Stats - add to client
1 parent da7143c commit c436373

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

src_erl/NerlnetApp/src/Client/clientStatem.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ init({MyName,NerlnetGraph, ClientWorkers , WorkerShaMap , WorkerToClientMap , Sh
7575
EtsRef = ets:new(client_data, [set, public]), %% client_data is responsible for functional attributes
7676
EtsStats = ets:new(ets_stats, [set]), %% ets_stats is responsible for holding all the ets stats (client + workers)
7777
ClientStatsEts = stats:generate_stats_ets(), %% client stats ets inside ets_stats
78+
ClientPerformanceEts = stats:generate_performance_stats_ets(), %% client performance stats ets inside ets_stats
7879
ets:insert(EtsStats, {MyName, ClientStatsEts}),
80+
ets:insert(EtsStats, {performance_stats, ClientStatsEts}),
7981
put(ets_stats, EtsStats),
8082
ets:insert(EtsRef, {workerToClient, WorkerToClientMap}), % All workers in the network (map to their client)
8183
ets:insert(EtsRef, {workersNames, ClientWorkers}), % All THIS Client's workers

src_erl/NerlnetApp/src/Stats/stats.erl

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ generate_stats_ets() -> %% sources, clients , routers , mainserver...
8585
%% Starts the os_mon application if it is not already started.
8686
%% This is necessary for monitoring system performance.
8787
%% It also ensures that the sasl application is started, as os_mon depends on it.
88-
start_os_mon() -> %% TODO check that it works
88+
start_os_mon() ->
8989
% check if os_mon is already started
9090
case application:which_applications() of
9191
[{os_mon, _, _} | _] ->
@@ -97,31 +97,30 @@ start_os_mon() -> %% TODO check that it works
9797
end,
9898
ok.
9999

100-
generate_performance_stats_ets() -> %% sources, clients , routers , mainserver...
100+
generate_performance_stats_ets() -> %% clients
101+
start_os_mon(),
101102
PerformanceStatsEts = ets:new(performance_stats_ets , [set, public]),
102103
ets:insert(PerformanceStatsEts, {average_time_training , 0}),
103104
ets:insert(PerformanceStatsEts, {average_time_prediction , 0}),
104105
ets:insert(PerformanceStatsEts, {average_cpu_all_cores_usage , 0}),
105106
ets:insert(PerformanceStatsEts, {average_cpu_all_cores_peak_usage , 0}),
106-
ets:insert(PerformanceStatsEts, {average_cpu_core_0_usage , 0}),
107-
ets:insert(PerformanceStatsEts, {average_cpu_core_1_usage , 0}),
108-
ets:insert(PerformanceStatsEts, {average_cpu_core_2_usage , 0}),
109-
ets:insert(PerformanceStatsEts, {average_cpu_core_3_usage , 0}),
110-
ets:insert(PerformanceStatsEts, {average_cpu_core_4_usage , 0}),
111-
ets:insert(PerformanceStatsEts, {average_cpu_core_5_usage , 0}),
112-
ets:insert(PerformanceStatsEts, {average_cpu_core_6_usage , 0}),
113-
ets:insert(PerformanceStatsEts, {average_cpu_core_7_usage , 0}),
114-
ets:insert(PerformanceStatsEts, {average_cpu_core_8_usage , 0}),
115-
ets:insert(PerformanceStatsEts, {average_cpu_core_9_usage , 0}),
116-
ets:insert(PerformanceStatsEts, {average_cpu_core_10_usage , 0}),
117-
ets:insert(PerformanceStatsEts, {average_cpu_core_11_usage , 0}),
118-
ets:insert(PerformanceStatsEts, {average_cpu_core_12_usage , 0}),
119-
ets:insert(PerformanceStatsEts, {average_cpu_core_13_usage , 0}),
120-
ets:insert(PerformanceStatsEts, {average_cpu_core_14_usage , 0}),
121-
ets:insert(PerformanceStatsEts, {average_cpu_core_15_usage , 0}),
122107
ets:insert(PerformanceStatsEts, {average_gpu_usage , 0}),
123108
ets:insert(PerformanceStatsEts, {average_gpu_memory_usage , 0}),
124109
ets:insert(PerformanceStatsEts, {average_memory_usage , 0}),
110+
ets:insert(PerformanceStatsEts, {average_memory_peak_usage , 0}),
111+
112+
% cores usage
113+
NumberOfCores = length(cpu_sup:util([per_cpu])),
114+
ets:insert(PerformanceStatsEts, {num_of_cores , NumberOfCores}),
115+
lists:foreach(fun(CoreIndex) ->
116+
KeyAvgStr = lists:flatten(io_lib:format("average_cpu_core_~p_usage" , [CoreIndex])),
117+
KeyAvgAtom = list_to_atom(KeyAvgStr),
118+
ets:insert(PerformanceStatsEts, {KeyAvgAtom, 0}),
119+
KeyPeakStr = lists:flatten(io_lib:format("peak_cpu_core_~p_usage" , [CoreIndex])),
120+
KeyPeakAtom = list_to_atom(KeyPeakStr),
121+
ets:insert(PerformanceStatsEts, {KeyPeakAtom, 0})
122+
end,
123+
lists:seq(0, NumberOfCores)),
125124
PerformanceStatsEts.
126125

127126
generate_workers_stats_ets() -> %% workers..

0 commit comments

Comments
 (0)