Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallel inferring #792

Open
Jacarte opened this issue Sep 30, 2020 · 2 comments
Open

Parallel inferring #792

Jacarte opened this issue Sep 30, 2020 · 2 comments

Comments

@Jacarte
Copy link

Jacarte commented Sep 30, 2020

Hi all

I would like to ask if it's possible to have parallel inferring. Right now the candidates inferring is done in a serial process. However, I think it can go faster if more than one candidate is treated at once. Specifically at this place, but, maybe I am missing something.

Thanks in advance.

@regehr
Copy link
Collaborator

regehr commented Oct 1, 2020

I think you'd want to be pretty careful with the parallelism strategy here since when Souper is used as an LLVM plugin you don't want to modify the IR concurrently.

we've not pursued anything like this since there are generally easier forms of parallelism available. when compiling, there's often a lot of parallelism at the level of the build system, for example. we also like to harvest LHSs into Souper's cache and then infer these in parallel, this works very well, the cache_infer program has support for this. there's also potential for parallelism in the enumerative synthesizer but we've not explored that at all seriously.

@Jacarte
Copy link
Author

Jacarte commented Oct 5, 2020

Thank @regehr for the quick and always useful answer.

I agree about having a red light doing parallel IR modifications. I was thinking more about the enumerative synthesis and solver querying part as you mentioned. To create the proof of concept of CROW, we modified Souper here creating a forked process (to some extent using semaphore) for each candidate looking for valid replacements, it seems to work.

Sorry for the sloppy CPP code :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants