-
Notifications
You must be signed in to change notification settings - Fork 50
Description
Describe the bug
I have created a HELICS federate using the cpp98 api. I configured the federate to consist of two endpoints where it sends a fixed payload from one endpoint to the other. At each timestep I check for receipt of any message process said message then attempt to clear message from memory. then I create and send a new message through the designated sending endpoint then clear the newly sent message from memory. I run the simulation for 86400 seconds. I monitor my memory usage and see it steadily rise to around 2 GB for the duration of the simulation. the size of the message payload around 13 KB in size.
When doing the exact same thing using a Python HELICS federate I see no visible increase in my memory usage as it runs.
What is the expected behavior?
I expect the memory usage to behave similar to the Python HELICS federate usage as they both use the C api under the hood.
To Reproduce
Steps to reproduce the behavior:
I'm providing a tarball with my cpp89 federate executable (helicsCppFederate) and source code is helicsCppFederate.cpp and my python federate code found in the pythonFederate folder.
running the cpp89 federate:
./helicsCppFederate federateEndpointConfig.json 86400.
running the python federate:
python helicsFederate.py federateEndpointConfig.json 86400.
both federates start up their own broker and connect to it so no need to run a broker in a separate terminal.
Environment (please complete the following information):
WSL2 Ubuntu 24.04
HELICS 3.6.1
cmake 3.28
gcc/g++ 13.3.0