Commit Graph

103 Commits

Author SHA1 Message Date
Guillaume Raffy 3ca66d0063 adapted code to cope with recent change in univ rennes policy that caused github access to require the use of a proxy
As a result, I finally managed to get hibench working on alambix

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 17:44:22 +02:00
Guillaume Raffy cf1235f62c added the option --cmake-path to allow the user to choose the cmake executable to use.
As a result, the cmake path is no longer hardcoded (the hardcoded one was not suitable for alambix)

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 17:41:18 +02:00
Guillaume Raffy 5d59650e84 added the --arch-regexp option to allow the user to restrict benchmarks on some architectures
As an example, this allowed me to run the benchmark on alambix50 only for testing purposes.

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 17:27:05 +02:00
Guillaume Raffy c534d7e135 improved the hosts table to ease adaptation to alambix instead of physix
This hosts description table is still hardcoded, though... at some point it will be better to use external data to make the code more generic (an attempt was made with pandas, but this introduced complexity in the setup so I decided to keep it hardcoded for the moment).

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 17:22:26 +02:00
Guillaume Raffy 350785bfee fixed regressions introduced in commit [b8c8a1b0e6]
since starbench is now an installable package, there is no starbench.py script anymore; starbench is no longer a simple python script; the existing code that assumed starbench was a simple python needed to be adapted.

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 17:12:22 +02:00
Guillaume Raffy 2ba66a498d fixed bugs introduced in commit [4e0e3b60bc]
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 16:58:40 +02:00
Guillaume Raffy f2ceeb2cdb added a mechanism to prevent starbench to hang in case the executed command fails
I had the case where on_exit() was never called because proc had no value and therefore the attempt to pass proc.pid to on_exit caused an exception before on_exit was called. As a result, the mater thread was waiting its children threads forever, as these child never signaled that they finished.

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-08 16:46:53 +02:00
Guillaume Raffy d71bf3f67f added the --results-dir option
- choosing different rsults dir allows to run the same benchmark more than once to have more than one measure
- this makes `hibenchonphysix.py` more decoupled from hibench, in the hope that it will be completely unaware of hibench at some poing (therefore reusable with other benchmarks)
2024-10-07 12:16:47 +02:00
Guillaume Raffy 49aebf38a5 updated documentation regarding last commit's change (rewriting in python)
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-07 12:06:45 +02:00
Guillaume Raffy 4e0e3b60bc rewrote hibench-on-physix.sh in python
this work is preliminary work to add options to make it more generic (eg run something else than hibridon)

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-04 18:27:21 +02:00
Guillaume Raffy 46d7fd1fa7 improved showresults.py:
- added the ability to show the performance per clock cycle (eg to see if avx512 has an effect on the computation)
- the cpus are now sorted on x axis depending on their generation

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-04 18:24:02 +02:00
Guillaume Raffy 1423090328 showresult.py now dislpays a graphic comparing the performance of hibridon on different cpus
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-10-01 14:25:56 +02:00
Guillaume Raffy ccb0acd817 improved hibench results parser to retrieve details of configuration (eg mkl version)
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-09-30 17:47:15 +02:00
Guillaume Raffy 1d66fc1edb added a tool to parse benchmark output files to summarize it into a table, so that it can be exploited to create graphs
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
2024-09-27 23:58:14 +02:00
Guillaume Raffy c4732fee87 improved usecase file hierarchy to accomodate multiple uses cases 2024-09-27 23:53:24 +02:00
Guillaume Raffy 0693b2c948 refactoring: documented mamul1 source code related to clocks to clarify the meansured times 2024-07-01 09:30:26 +02:00
Guillaume Raffy fb7608ecdd removed hardcoded path 2024-06-30 17:16:39 +02:00
Guillaume Raffy de7c1fb2dd fixed styling errors 2024-06-30 17:15:45 +02:00
Guillaume Raffy 249ef1f3e7 refactored by isolated all core functions and classes into a core.py source file 2024-06-30 16:20:34 +02:00
Guillaume Raffy 68cb7169c7 fixed dangerous-default-value / W0102 potential problem 2024-06-30 16:08:10 +02:00
Guillaume Raffy c05ff89d29 added a complete standalone usage example (mamul1: mutiplication of matrices) in the form of a unit test
note: [matmul] is a copy of [https://github.com/g-raffy/flobe/tree/main/benchmarks/mamul1]
2024-06-30 15:53:03 +02:00
Guillaume Raffy 3dc0d12307 decoupled starbench_cmake_app from git repos information, so that starbench_cmake_app can now be used with any source code provider, not only from git repositories (eg an existing directory tree)
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3878]
2024-06-28 15:07:37 +02:00
Guillaume Raffy b8c8a1b0e6 turned starbench into an installable package
work related to  [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3878]
2024-06-21 14:48:00 +02:00
Guillaume Raffy a43eb68db5 fixed all styling warnings and comments, and documented the code
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3872] as I'm planning to reuse starbench to add new automatic benchmarks
2024-06-21 08:50:36 +02:00
Guillaume Raffy dc897e9225 fixed styling errors detected by pylint
work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3878]
2024-06-20 11:51:53 +02:00
Guillaume Raffy f87e564528 reorganized files and documented 2022-06-10 08:39:22 +02:00
g-raffy 165da43619
Create README.md 2022-06-09 15:59:52 +02:00
Guillaume Raffy 2c349315cd the job script is now saved to a location that should avoid it to be written by multiple jobs at the same time, thus avoiding race conditions issues. 2022-06-09 11:16:36 +02:00
Guillaume Raffy 5bc51c78ca fixed bug that caused starbench.py source code to be included twice (and one of them causing syntax errors) 2022-06-09 11:15:00 +02:00
Guillaume Raffy 43ae0a3068 cleanup and documented 2022-06-09 09:09:32 +02:00
Guillaume Raffy 733fda5517 added mechanism to download benchmark results on work.global on success 2022-06-09 08:58:04 +02:00
Guillaume Raffy 75c4b98be0 improved name of job
- also joined job outputs for easier reading
2022-06-09 08:56:47 +02:00
Guillaume Raffy 58dbfc9be6 added ifort build to hibridon's benchmark 2022-06-09 08:54:50 +02:00
Guillaume Raffy f2b8d6cdb4 now the hibridon benchmark runs one job for each machine type on physix
- also tuned memry requirements so that the `representative_test` succeeds
2022-06-07 19:01:30 +02:00
Guillaume Raffy 936dfa793a made changes needed to get hibridon benchmark running on physix (ipr's cluster):
- added in `starbench` the option to choose which cmake executable to use
- fixed typos in sge environment variables
- added job submit mechanism

With these changes, hibridon's benchmark succeeded on physix48
2022-06-07 14:52:56 +02:00
Guillaume Raffy 6715cd1714 made starbench compatible with python 3.5 + :
- removed type hints for vraiable (requires python 3.6 +)
- converted `Path` into `str` where Path type is not supported
- use `_ForwardRef` instead of `ForwardRef`

note: python3.5 was chosen as a target because that's the version of python3 on ipr's cluster
2022-06-07 12:44:25 +02:00
Guillaume Raffy fab373f3c1 made `hibench.job` hibridon independent so that:
- `hibench.job` could be reused as is by another project
- it gives more flexibility to lauch-perf-jobs.sh
2022-06-03 16:10:47 +02:00
Guillaume Raffy 176db9f719 now that `hibench.py` has been made generic (it has no hibridon related code anymore), I renamed it as `starbench.py` 2022-06-03 14:13:32 +02:00
Guillaume Raffy 959fba13b3 the test command is no longer hardcoded and can be chosen via command line arguments 2022-06-02 17:52:38 +02:00
Guillaume Raffy 226871547f removed compiler loop as the used compiler can now be defined by the user via cmake defines 2022-06-02 17:34:16 +02:00
Guillaume Raffy 431f728793 the cmake options are no longer hardcoded
This way, it's more flexible and it will allow this code to be independant from hibridon
2022-06-02 15:59:27 +02:00
Guillaume Raffy ac639b3a08 fixed bug that coused the checkout to fait because it was performed from a non-git repository
also removed unneed hibridon dependency (it's planned to make this bench code work for any git/cmake repository)
2022-06-02 15:58:00 +02:00
Guillaume Raffy 97a04d2831 it's now possible to choose aversion of the code to test
note: previously, it didn't work
2022-06-02 14:34:14 +02:00
Guillaume Raffy 05ec8a5181 made `hibench.py` (better name than `starbench.py`) parse options so that it is more generic.
This change will allow jobs to perform hibridon benchmarks
2022-06-02 13:01:16 +02:00
Guillaume Raffy c65cd60a54 measure_hibridon_perf now takes the name of the test as a parameter to make it more generic 2022-06-01 16:17:10 +02:00
Guillaume Raffy ddcb9f1175 now the number of threads per run is restricted to what the user asks 2022-06-01 12:06:58 +02:00
Guillaume Raffy 0ecddcf8f8 minor flake fix 2022-06-01 12:06:10 +02:00
Guillaume Raffy d45d53c3ac fixed bugs discovered after running from scratch 2022-06-01 12:05:28 +02:00
Guillaume Raffy e643be2435 cleanup by removing debug traces and replacing them with useful messages 2022-05-31 19:03:00 +02:00
Guillaume Raffy 9b12ce7cd2 added a way to redirect stdout and stderr to files to avoid pollution on the console 2022-05-31 18:55:16 +02:00