龙方淞 <longfangsong(a)icloud.com> writes:
Hi!
I'm glad to see my question has already been asked
and answered.
I was wondering if there has been any consideration given to making
this specific fork of BuDDy thread-safe, or it’s just because there
would be too much work.
I believe this is a lot of work. Changing BuDDy is only one part of the
propblem; one also needs to update BDD operations in Spot, adjust its
API appropriately, and call the result Spot 3... I tend do think that
starting a new library from scratch would be easier :-(
To provide some context, for my master's thesis,
I'm using Spot for ω
-automata operations, specifically performing product and product-or
operations on a large number of automata. While other parts of my
program are multithreaded, I've found that the only way to parallelize
the product and product-or operations is by starting multiple autfilt
processes.
If your program is multi-threaded, you probably already have a
thread-safe representation of your automata. Have you considered
writing your own product?
I did attempt to achieve parallelism by importing Spot
via FFI and do
stuff in threads. However, after reviewing some of the code of Spot,
I noticed the extensive use of static variables.
Yes, Spot has a few static variables, and BuDDy has a lot of them.
Alexandre