Correct. If you look at the Javadoc for MoMLParser.parse(URL, URL) it states:
*"If the input URL has already been parsed, then return the model that previously parsed."* Using the MoMLParser.parse(String) method this doesn't happen. MoMLParser.parser(String) just ends up calling MoMLParser.parse(URL, Reader) which states in its Javadoc: *"Note that this bypasses the mechanism of parse(URL, URL) that returns a previously parsed model. This method will always re-parse using data from the stream."* Brian On Fri, Jul 25, 2008 at 1:50 PM, Paul Allen <[EMAIL PROTECTED]> wrote: > I found this answer helpful. I have one follow-up question: You said that > you use MoMLParser.parse(String) to open multiple instances. Does using teh > MoMLParser.parse(URL) version of that method NOT open multiple instances? > > > Brian Hudson wrote: > > Do I remember correctly that Ptolemy does not in any way support >> Java concurrency or multi-threading? >> > > This depends on your domain really. PN for example uses quite a bit of > threading. > > If so, then I would assume that one couldn't safely run 2 models in one >> JVM, even if each had its own instances of TypedCompositeActor, Manager, >> Director, etc. If one wanted concurrency, one would run separate JVM's, >> each with one model that would have no contact with any other model. Right? > > > You can safely run multiple models in one JVM. You just need to make sure > that you have two instances of the model in memory. We do this by using the > MoMLParser.parser(String) to open multiple instances of the same model. > > If (in one JVM) I had a program running that wanted to run several models >> (similar to each other), one after the other, how much reuse of Ptolemy >> instances makes sense? Would you recommend nulling all references after >> each model run, and instantiating all Ptolemy objects fresh? Or would it >> make any sense to reuse the same TypedCompositeActor, Manager, Director, >> etc? > > > We do this as well. We have some code that "injects" some actors into a > model before me run it, and we modify several parameters. When the execution > has completed we remove these "injected" actors and reset the parameters. > When running sequential runs on the same model we reuse everything. > > Does Ptolemy have a way to scrub all actors out of a model, allowing the >> creation of new ones? > > > We create all of our "injected" actors in their own composite at the top > level. That we when we want to delete them we can simply delete that one > CompositeEntity. > > Brian > > On Fri, Jul 25, 2008 at 12:27 PM, Richard Ware <[EMAIL PROTECTED]> > wrote: > >> 1) Do I remember correctly that Ptolemy does not in any way support >> Java concurrency or multi-threading? If so, then I would assume that one >> couldn't safely run 2 models in one JVM, even if each had its own >> instances of TypedCompositeActor, Manager, Director, etc. If one >> wanted concurrency, one would run separate JVM's, each with one >> model that would have no contact with any other model. Right? >> >> 2) If (in one JVM) I had a program running that wanted to run >> several models (similar to each other), one after the other, how much >> reuse >> of Ptolemy instances makes sense? Would you recommend nulling >> all references after each model run, and instantiating all Ptolemy objects >> fresh? Or would it make any sense to reuse the same >> TypedCompositeActor, Manager, Director, etc? Regardless of >> which approach I use, I plan to delete all actors from the first model run >> and create all actors for the second run fresh, for reasons involving the >> nature of my simulation. Does Ptolemy have a way to scrub all actors >> out of a model, allowing the creation of new ones? >> >> I look forward to your clarifications. >> >> Richard Ware >> >> >> >> >> >> >> ---------------------------------------------------------------------------- >> Posted to the ptolemy-hackers mailing list. Please send administrative >> mail for this list to: [EMAIL PROTECTED] >> > >