On the topic of thread-safety, the fmi standard (in both versions 2 and 3) only has the following to say: "FMI functions of one instance are not required to be thread-safe" (in addition to forbidding changes to global settings). No mention is made of the behaviour of functions on different instances.
In another discussion I saw that the following requirement was at least considered at some point: "Instances of the same FMU and instances of different FMUs must not influence each other", however I have not found it in the standard anywhere. My question is whether this requirement somehow follows from another part of the standard or whether there is a good reason that it was left out of the standard. Not being able to assume this severely limits how a simulation environment can use multi-threading to evaluate model equations.
On the topic of thread-safety, the fmi standard (in both versions 2 and 3) only has the following to say: "FMI functions of one instance are not required to be thread-safe" (in addition to forbidding changes to global settings). No mention is made of the behaviour of functions on different instances.
In another discussion I saw that the following requirement was at least considered at some point: "Instances of the same FMU and instances of different FMUs must not influence each other", however I have not found it in the standard anywhere. My question is whether this requirement somehow follows from another part of the standard or whether there is a good reason that it was left out of the standard. Not being able to assume this severely limits how a simulation environment can use multi-threading to evaluate model equations.