You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In distributed MPI environments, the current design of the fmu constructor in fmi4cpp leads to inefficiencies when thousands of processes simultaneously attempt to unzip an FMU file. This issue proposes an enhancement to the constructor to allow controlled unzipping.
Proposed Change
Introduce a boolean parameter in the fmu constructor to control the unzipping process. This parameter will enable one MPI process to unzip the FMU, while others wait and then directly load the library from the unzipped path.
Code Snippet
fmu::fmu(const fs::path& fmuPath, bool unzipFmu = true) {
// Existing checks and setupif (unzipFmu) {
// Current unzip logic
} else {
// Assume path is to unzipped FMU
resource_ = std::make_shared<fmu_resource>(fmuPath);
modelDescription_ = std::move(parse_model_description(resource_->model_description_path()));
}
}
Rationale
This modification will significantly reduce the filesystem load and enhance performance in MPI-based distributed systems, where only one process needs to perform the unzipping.
Additional Context
The communicator may not always be MPI_COMM_WORLD; it could be a subcommunicator.
The fmu class should remain agnostic of MPI to maintain its design integrity.
Request
Kindly consider this enhancement for upcoming releases to improve fmi4cpp's suitability for large-scale parallel computing environments.
The text was updated successfully, but these errors were encountered:
Description
In distributed MPI environments, the current design of the
fmu
constructor infmi4cpp
leads to inefficiencies when thousands of processes simultaneously attempt to unzip an FMU file. This issue proposes an enhancement to the constructor to allow controlled unzipping.Proposed Change
Introduce a boolean parameter in the
fmu
constructor to control the unzipping process. This parameter will enable one MPI process to unzip the FMU, while others wait and then directly load the library from the unzipped path.Code Snippet
Rationale
This modification will significantly reduce the filesystem load and enhance performance in MPI-based distributed systems, where only one process needs to perform the unzipping.
Additional Context
MPI_COMM_WORLD
; it could be a subcommunicator.fmu
class should remain agnostic of MPI to maintain its design integrity.Request
Kindly consider this enhancement for upcoming releases to improve
fmi4cpp
's suitability for large-scale parallel computing environments.The text was updated successfully, but these errors were encountered: