Skip to content

Conversation

@loumalouomega
Copy link
Member

📝 Description

This PR introduces benchmarking functionality for CoSimIO. AS initial case I focused on the import/export of large data.

Changes

The following changes were made:

  1. CMake Configuration:

    • Modified CMakeLists.txt to include Google Benchmark for benchmarking purposes.
    • Added support for Google Benchmark with a new macro co_sim_io_add_benchmarks in CMakeLists.txt.
    • Configured the build system to conditionally enable benchmarking through the CO_SIM_IO_BUILD_BENCHMARK flag.
    • Updated other configurations comments, such as linking with MPI and handling compiler-specific settings (e.g., MSVC).
  2. New Benchmarking Module:

    • Created a new benchmarks/CMakeLists.txt to configure and build the benchmark sources.
  3. New Benchmark File:

    • Introduced benchmarks/communication_benchmark.cpp to measure the performance of importing/exporting large data. This file includes various benchmark tests using Google Benchmark for different data sizes (5 MB, 10 MB, 20 MB). (Maybe I will increase it for actually test if large communications fail in Win11)

🆕 Changelog

@loumalouomega loumalouomega added enhancement New feature or request CMake usability dependencies Pull requests that update a dependency file labels Feb 18, 2025
@loumalouomega loumalouomega changed the title [Benchmark] Add Google Benchmark for import/export of large data in CoSimIO [Benchmark] Add Google Benchmark in CoSimIO Feb 18, 2025
@philbucher
Copy link
Member

I did extensive benchmarking in my thesis, ch 3.8.6.

Is that what you need?

@loumalouomega
Copy link
Member Author

loumalouomega commented Feb 18, 2025

I did extensive benchmarking in my thesis, ch 3.8.6.

Is that what you need?

We are suspicious that there is a socket issue in Windows 11 (not 10), that happens with a certain size.

@loumalouomega
Copy link
Member Author

I did extensive benchmarking in my thesis, ch 3.8.6.

Is that what you need?

I did it as in Kratos, pure CMake code in order to not add additional dependencies and libraries to the repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake dependencies Pull requests that update a dependency file enhancement New feature or request usability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants