runtimeverification / rv-predict

Code for improved rv-predict and installer
BSD 3-Clause "New" or "Revised" License
2 stars 3 forks source link

parallelizing the backend #520

Open yilongli opened 9 years ago

yilongli commented 9 years ago

Right now the backend is completely single-threaded. I notice that it could be huge bottleneck when testing Eclipse. However, synchronization between threads is also very expensive. So the decision of what to parallelize must be done based on experiment. Perhaps it will be enough to only parallelize the event processing .

yilongli commented 9 years ago

One thing to be aware of: we have "polluted" the Fork/Join framework with our logging code, so we cannot use the F/J framework or the parallel stream api in our own code.

traiansf commented 9 years ago

I noticed in the LLVM TSan implementation that they have their own versions for a couple of classes which were used in the backend. Can't we do something similar here?

yilongli commented 9 years ago

F/J framework and the parallel stream api are quite complicated. The stream api is also closely involved with the Collection/Map api. So it's not practical have our own versions of classes for them. Besides, we don't need them anyway to parallelize our code.