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

Reproducing paper benchmarks #14

Closed
sachaservan opened this issue Nov 29, 2021 · 4 comments
Closed

Reproducing paper benchmarks #14

sachaservan opened this issue Nov 29, 2021 · 4 comments

Comments

@sachaservan
Copy link

Hi, I'm trying to run the CLARC benchmarks but it seems to be slower than expected given Table 3 in the paper..

For example, I'm getting that it took ~18s, 763ms to verify (5 in Table 3) when it should be taking ~0s, 170 ms.

For context, I'm running on a 2019 MacBook pro:
./gradlew test --tests de.upb.crypto.clarc.acs.PerformanceTest

Any ideas for what could be going wrong here?

Thanks!

@JanBobolz
Copy link
Member

Hey,

we offer two kinds of pairing groups, (1) a built-in (pretty inefficient) Java pairing group, and (2) a wrapper for the much faster mcl.
For the paper, we used the latter, but the code in this repository defaults to the former (so that it can be easily run without having to install additional external C++ libraries).

Now unfortuntely (at least for this request), we have reworked all of our library and completely broke the API that Clarc depended on. The same is true for our wrapper mclwrap for (2). So to make that work, we will have to find the right (old, compatible) version of mclwrap and of mcl.

We can probably find the appropriate old versions so that the benchmarks can be reproduced. Maybe give us a week for that, you've caught us at a busy time 🙈.

Sorry for the inconvenience.

@sachaservan
Copy link
Author

Ah I see, makes sense. I had a hunch it wasn't using mcl but given the readme didn't have any information on this I was hoping it was something dumb on my end.

@JanBobolz
Copy link
Member

Hi,

with the new commit you should now be able to just run the ./install_mcl.sh script and then future runs of clarc should use the new mcl pairing.

I've also pushed a Dockerfile to make this more easily reproducible.

@sachaservan
Copy link
Author

Thanks a lot for the speedy response and fix. It's working now!

If anyone else is running this on MacOS, you need to move the jawt_md.h and jni_md.h
from
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/include/darwin
to
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/include.

Otherwise ./install_mcl.sh will fail.

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