-
Notifications
You must be signed in to change notification settings - Fork 82
Test FMUs with external dependencies #122
Comments
@t-sommer @chrbertsch @andreas-junghanns please comment on this issue. If you agree that it is backed by the specification, then I will go ahead and prepare a pull request for it. |
FMI Specification 2.0.2, Section 1.1
FMI Specification 2.0.2, Section 2.3
FMI Cross-Check rules 4.1, Section 9.1.3
These rules seem very clear to me and not subject to interpretation. Making exceptions means that some importing tools may not be able to run some FMUs only because of external dependencies, thus getting a worse score for reasons that are totally independent from their quality of implementation of the FMI standard. This is obviously unfair. The FMI cross-check is endorsed by the Modelica Association. I would find it very odd that the MA itself does not apply its own rules when it comes to comparing the performance of different tools that support a MA standard. |
See also #57 |
@lochel : We have checked our FMU from fmus/2.0/cs/win64/Silver/3.3/* and found nothing wrong. |
@andreas-junghanns There are issues with the shared objects when running your examples in wine. However, I can confirm that it works fine natively in Windows. The corresponding pull request is already closed. Speaking of #122: It was closed without releasing fmi 2.0.3. It is certainly not ideal to point to a not-existing release for the baseline of the cross-check project. And even with the changes for (a potential future) version 2.0.3, the cross-check rules state:
This general rule seems reasonable for the cross-check. I support the relaxed requirements for the fmi specification, but I don't think it is a good idea to collect such examples in the cross-check repository. |
A further comment from my side. I fully agree that the cross-check rules should be either followed or changed, see also my comment here. Being able to actually run the FMU is not a side issue, it is central to the whole point of the XC tool. Regarding the yet unreleased 2.0.3 specification, I understand there is consensus in the MAP-LANG group that tools can start using new features or exploit clarifications in yet unreleased versions of the specification, as long as they have already been approved and are no longer a matter of discussion. Which seems reasonable to me. We've done it several times already, e.g. with the updated conversion scripts. Does this hold also for MAP-FMI? |
Would UniFMI be a solution for this particular problem? See Portable runtime environments for Python-based FMUs: With this it could be possible to specify a docker image that holds all dependencies for a specific FMU. It wont solve the underlying problem that the FMU itself doesn't have needed external dependencies, but would at least solve my problems for e.g. #57. Something like FROM ubuntu:18.04 would be enough for nearly all of the FMUs in the cross check. |
The following examples depend on shared objects which are not available or cannot be loaded on a standard target machine:
win64 (Windows 10):
linux64 (Ubuntu 20.04 LTS)
The fmi-cross-check repository should follow strictly the FMI standard and ensure that the provided FMUs can be simulated by any importing tool that supports the FMI standard without the burden of chasing export specific libraries.
The quality of the cross-check depends highly on the quality of the provided examples. I am very much concerned that it technically is not possible to import the provided examples. It would make the test results and therwith the entire cross-check effort useless.
The text was updated successfully, but these errors were encountered: