adapt fmi4cpp for distributed systems#152
Conversation
an alternative would be to delete the default constructor instead
enable fmi4cpp as subproject NTNU-IHB#122
allow customization from parent project use GNUInstalldirs to customize with the default values corresponding the to ones as before
…ibuted-mpi-environments resolves 1: enhance fmu constructor for distributed mpi environments
|
I think this PR can be simplified. If |
|
@markaren the boolean is necessary if we let the so in parallel using MPI say, (or multithread for that matter) fmu::fmu(path, mpirank == 0 ); // only rank 0 unzips, the other will read the unzip directory and load the dlldoes that make sense? The use case is really parallel computing. |
|
I was thinking that the FMU was unzipped by the user prior. But that function may not be exposed through the public API. That could be a solution though. Expose an unzip function for the user to control. What would be the best solution? |
|
I think exposing the unzipping function would be more explicit and probably better in the end. |
Yeah, a solution to this is needed. This PR has issues with that as well. Moving the issue to user-land lets the user deal with it. |
|
Anyhow, I exposed |
When deploying thousands of instances of the same FMU (Functional Mock-up Unit) in a distributed system using MPI (Message Passing Interface), it is inefficient for each MPI process to unzip the FMU individually. This pull request introduces an option to control whether the FMU should be unzipped or not. Typically, the MPI process with rank 0 will unzip the FMU once, and the other processes will wait until the FMU is ready to be loaded. This approach reduces redundant file I/O operations and improves initialization performance in large-scale distributed simulations.