Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
12ec2c1
Added RPDE, Spectral Flatness Score computing
AntonBeasis Feb 27, 2025
2ecfa81
Added visualization of Cepstrum Cepstrum, still WIP
AntonBeasis Feb 28, 2025
c430350
Fixed x axis scaling for cepstrum plot
AntonBeasis Feb 28, 2025
e00a422
Small fixes
AntonBeasis Mar 11, 2025
d3de7ca
Merge remote-tracking branch 'origin/development' into feature_period…
AntonBeasis Mar 30, 2025
ba1b30b
Added basic classifier with threshholds for rpde and sf
AntonBeasis Apr 1, 2025
f176334
WIP: local changes before merge
AntonBeasis Jun 3, 2025
bc2c874
Merge completed
AntonBeasis Jun 3, 2025
995e61c
Fixed minor bug with peak_sharpness function
AntonBeasis Jun 11, 2025
c35be23
Reapply stashed changes after rebase
AntonBeasis Jun 11, 2025
28f859f
Added correlation for windows of signal, to check for similarity with…
AntonBeasis Jun 24, 2025
6258f5c
Fixed formatting
AntonBeasis Jun 26, 2025
7f9d87b
Merge remote-tracking branch 'origin/development' into feature_period…
AntonBeasis Jul 21, 2025
32e00cd
Outsourced periodicity detection, added args flags for periodicity an…
AntonBeasis Jul 27, 2025
a6fc6cf
fixed formatting
AntonBeasis Jul 27, 2025
ce743e8
fixed arguments for autocorrelation, periodicity analysis and cepstrum
AntonBeasis Jul 31, 2025
286435a
fixed cepstrum plot
AntonBeasis Jul 31, 2025
0f99653
Merge remote-tracking branch 'origin/development' into feature_period…
AntonBeasis Aug 21, 2025
cf58e91
optimizing output of periodicity functions
AntonBeasis Aug 21, 2025
586ac42
Update README.md
AntonBeasis Aug 21, 2025
c576879
updating contributing.md
AntonBeasis Aug 21, 2025
aad063e
Fixing bugs from pull request
A-Tarraf Aug 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,8 @@ Several flags can be specified. The most relevant settings are:
| -d, --dtw | performs dynamic time warping on the top 3 frequencies (highest contribution) calculated using the DFT if set (default=False) |
| -re, --reconstruction | plots reconstruction of top 10 signals on figure |
| -np, --no-psd | if set, replace the power density spectrum (a*a/N) with the amplitude spectrum (a) |
| -c, --autocorrelation | if set, autocorrelation is calculated in addition to DFT. The results are merged to a single prediction at the end |
| -au, --autocorrelation | if set, autocorrelation is calculated in addition to DFT. The results are merged to a single prediction at the end |
| -p, --periodicity | Activate calculation of new periodicity score. Options are recurrence period density entropy (RPDE), spectral flatness (SF), correlation (corr) and individual period correlation (ind) |
| -w, --window_adaptation | online time window adaptation. If set to true, the time window is shifted on X hits to X times the previous phases from the current instance. X corresponds to frequency_hits |
| -fh FREQUENCY_HITS, --frequency_hits FREQUENCY_HITS | specifies the number of hits needed to adapt the time window. A hit occurs once a dominant frequency is found |
| -v, --verbose | sets verbose on or off (default=False) |
Expand Down Expand Up @@ -391,4 +392,4 @@ the [EuroHPC ADMIRE project](https://admire-eurohpc.eu/).

[parallel.bedge]: https://img.shields.io/badge/Parallel_Programming:-Ahmad_Tarraf-blue

<!--* links *-->
<!--* links *-->
32 changes: 32 additions & 0 deletions daf
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
commit bc2c874a2166cbc0ab6740e83dbd6d1ea8f2d28c (HEAD -> feature_periodic_score, origin/feature_periodic_score)
Merge: f176334 34a108b
Author: AntonBeasis <anton@holderied.de>
Date: Tue Jun 3 11:13:19 2025 +0200

Merge completed

create mode 100644 docs/contributing.md
create mode 100644 docs/ftio_server.md
create mode 100644 ftio/analysis/__init__.py
create mode 100644 ftio/analysis/_correlation.py
rename ftio/{freq => analysis}/_logicize.py (55%)
rename ftio/{freq => analysis}/anomaly_detection.py (80%)
create mode 100644 ftio/analysis/signal_analysis.py
create mode 100644 ftio/api/gekkoFs/data_control.py
create mode 100644 ftio/api/gekkoFs/file_queue.py
create mode 100644 ftio/api/gekkoFs/jit/find_procs.py
create mode 100644 ftio/api/gekkoFs/jit/plot_res.py
create mode 100644 ftio/api/gekkoFs/posix_control.py
create mode 100644 ftio/api/io_malleability/diff.py
create mode 100644 ftio/freq/_analysis_figures.py
create mode 100644 ftio/freq/_dft_x_dwt.py
create mode 100644 ftio/freq/_fourier_fit.py
create mode 100644 ftio/freq/_share_signal_data.py
create mode 100644 ftio/freq/prediction.py
create mode 100644 ftio/plot/plot_dft.py
delete mode 100644 ftio/prediction/analysis.py
create mode 100644 ftio/prediction/online_analysis.py
rename ftio/processing/{operations.py => compact_operations.py} (74%)
create mode 100644 ftio/processing/print_output.py
create mode 100644 ftio/util/live_plot.py
create mode 100644 ftio/util/server_ftio.py
3 changes: 2 additions & 1 deletion docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,5 @@ By contributing, you agree that your contributions will be licensed under the sa

We sincerely thank the following contributors for their valuable contributions:
- [Ahmad Tarraf](https://github.com/a-tarraf)
- [Jean-Baptiste Bensard](https://github.com/besnardjb): Metric proxy integration
- [Jean-Baptiste Bensard](https://github.com/besnardjb): Metric proxy integration
- [Anton Holderied](https://github.com/AntonBeasis): bachelor thesis: new periodicity score
138 changes: 114 additions & 24 deletions examples/jupyter_notebooks/quick_example.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,55 @@
"\n",
"# Set up data\n",
"## 1) overlap for rank level metrics\n",
"b_rank = [0.0,0.0,1000.0,1000.0,0.0,0.0,1000.0,1000.0,0.0,0.0,1000.0,1000.0,0.0,0.0]\n",
"t_rank_s = [0.5,0.0,10.5,10.0,20.5,20.0,30.5,30.0,40.5,40.0,50.5,50.0,60.5,60]\n",
"t_rank_e = [5.0,4.5,15.0,14.5,25.0,24.5,35.0,34.5,45.0,44.5,55.0,54.5,65.0,64.5]\n",
"b,t = overlap(b_rank,t_rank_s, t_rank_e)\n",
"b_rank = [\n",
" 0.0,\n",
" 0.0,\n",
" 1000.0,\n",
" 1000.0,\n",
" 0.0,\n",
" 0.0,\n",
" 1000.0,\n",
" 1000.0,\n",
" 0.0,\n",
" 0.0,\n",
" 1000.0,\n",
" 1000.0,\n",
" 0.0,\n",
" 0.0,\n",
"]\n",
"t_rank_s = [\n",
" 0.5,\n",
" 0.0,\n",
" 10.5,\n",
" 10.0,\n",
" 20.5,\n",
" 20.0,\n",
" 30.5,\n",
" 30.0,\n",
" 40.5,\n",
" 40.0,\n",
" 50.5,\n",
" 50.0,\n",
" 60.5,\n",
" 60,\n",
"]\n",
"t_rank_e = [\n",
" 5.0,\n",
" 4.5,\n",
" 15.0,\n",
" 14.5,\n",
" 25.0,\n",
" 24.5,\n",
" 35.0,\n",
" 34.5,\n",
" 45.0,\n",
" 44.5,\n",
" 55.0,\n",
" 54.5,\n",
" 65.0,\n",
" 64.5,\n",
"]\n",
"b, t = overlap(b_rank, t_rank_s, t_rank_e)\n",
"\n",
"# ## 2) or directly specify the app level metrics\n",
"# t = [10.0, 20.1, 30.0, 40.2, 50.3, 60, 70, 80.0,]\n",
Expand All @@ -33,19 +78,19 @@
"\n",
"# set up data\n",
"data = {\n",
" \"time\": np.array(t),\n",
" \"bandwidth\": np.array(b),\n",
" \"total_bytes\": total_bytes,\n",
" \"ranks\": ranks \n",
" }\n",
" \"time\": np.array(t),\n",
" \"bandwidth\": np.array(b),\n",
" \"total_bytes\": total_bytes,\n",
" \"ranks\": ranks,\n",
"}\n",
"\n",
"#parse args\n",
"args = parse_args(argv,\"ftio\")\n",
"# parse args\n",
"args = parse_args(argv, \"ftio\")\n",
"\n",
"# perform prediction\n",
"prediction, analysis_figures = core(data, args)\n",
"\n",
"#display prediction\n",
"# display prediction\n",
"display_prediction(\"ftio\", prediction)"
]
},
Expand Down Expand Up @@ -76,29 +121,74 @@
"\n",
"# Set up data\n",
"## 1) overlap for rank level metrics\n",
"b_rank = [0.0,0.0,1000.0,1000.0,0.0,0.0,1000.0,1000.0,0.0,0.0,1000.0,1000.0,0.0,0.0]\n",
"t_rank_s = [0.5,0.0,10.5,10.0,20.5,20.0,30.5,30.0,40.5,40.0,50.5,50.0,60.5,60]\n",
"t_rank_e = [5.0,4.5,15.0,14.5,25.0,24.5,35.0,34.5,45.0,44.5,55.0,54.5,65.0,64.5]\n",
"b,t = overlap(b_rank,t_rank_s, t_rank_e)\n",
"b_rank = [\n",
" 0.0,\n",
" 0.0,\n",
" 1000.0,\n",
" 1000.0,\n",
" 0.0,\n",
" 0.0,\n",
" 1000.0,\n",
" 1000.0,\n",
" 0.0,\n",
" 0.0,\n",
" 1000.0,\n",
" 1000.0,\n",
" 0.0,\n",
" 0.0,\n",
"]\n",
"t_rank_s = [\n",
" 0.5,\n",
" 0.0,\n",
" 10.5,\n",
" 10.0,\n",
" 20.5,\n",
" 20.0,\n",
" 30.5,\n",
" 30.0,\n",
" 40.5,\n",
" 40.0,\n",
" 50.5,\n",
" 50.0,\n",
" 60.5,\n",
" 60,\n",
"]\n",
"t_rank_e = [\n",
" 5.0,\n",
" 4.5,\n",
" 15.0,\n",
" 14.5,\n",
" 25.0,\n",
" 24.5,\n",
" 35.0,\n",
" 34.5,\n",
" 45.0,\n",
" 44.5,\n",
" 55.0,\n",
" 54.5,\n",
" 65.0,\n",
" 64.5,\n",
"]\n",
"b, t = overlap(b_rank, t_rank_s, t_rank_e)\n",
"\n",
"# command line arguments\n",
"argv = [\"-e\", \"plotly\"]\n",
"\n",
"# set up data\n",
"data = {\n",
" \"time\": np.array(t),\n",
" \"bandwidth\": np.array(b),\n",
" \"total_bytes\": total_bytes,\n",
" \"ranks\": ranks \n",
" }\n",
" \"time\": np.array(t),\n",
" \"bandwidth\": np.array(b),\n",
" \"total_bytes\": total_bytes,\n",
" \"ranks\": ranks,\n",
"}\n",
"\n",
"#parse args\n",
"args = parse_args(argv,\"ftio\")\n",
"# parse args\n",
"args = parse_args(argv, \"ftio\")\n",
"\n",
"# perform prediction\n",
"prediction, analysis_figures = core(data, args)\n",
"\n",
"#display prediction\n",
"# display prediction\n",
"display_prediction(\"ftio\", prediction)\n",
"analysis_figures.show()"
]
Expand Down
3 changes: 3 additions & 0 deletions ftio/analysis/anomaly_detection.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
from sklearn.neighbors import LocalOutlierFactor, NearestNeighbors

from ftio.plot.anomaly_plot import plot_decision_boundaries, plot_outliers
from ftio.plot.cepstrum_plot import plot_cepstrum


def outlier_detection(
Expand Down Expand Up @@ -164,6 +165,8 @@ def z_score(
if len(dominant_index) != 0:
i[np.array(dominant_index) - 1] = -1
plot_outliers(args, freq_arr, amp, indices, conf, i)
if args.cepstrum:
plot_cepstrum(args, freq_arr, amp, indices)

return dominant_index, conf, text

Expand Down
Loading