KaMIS icon indicating copy to clipboard operation
KaMIS copied to clipboard

Doesn't build on non-GNU systems due to use of parallel/numeric

Open yurivict opened this issue 2 years ago • 6 comments

parallel/numeric is Linux-only.

yurivict avatar Jun 26 '22 08:06 yurivict

parallel/numeric seems to only be used in the maximum matching code (lib/mis/kernel/ParFastKer/fast_reductions/src/MaximumMatching.cpp). In parallel/* there are some stl algorithms implemented in parallel - in particular, here only partial_sum is used. If you just want to make this compile on non-GNU systems, you could just replace <parallel/numeric> with <numeric> and __gnu_parallel::partial_sum with std:partial_sum. But be aware that this will probably slow down kernelization a bit because it would then compute prefix sums sequentially.

Hespian avatar Jul 01 '22 07:07 Hespian

This advise seems to work. Thanks!

yurivict avatar Jul 01 '22 08:07 yurivict

Hi @yurivict, I've written and am testing an algorithm that will make parallel/numeric no longer needed. I would propose that we discuss making the FreeBSD port. We would like to make sure that the port is as efficient as our original implementation (i.e., to ensure the running times are consistent with our papers). Can I help with this endeavor? If so, is it possible to commit all of the necessary changes to the github repo, or is there much more that needs to be done for the port?

darrenstrash avatar Jul 06 '22 20:07 darrenstrash

Hi @darrenstrash

Thanks for your offer.

The port already exists. commit info FreshPorts record

I couldn't find how to run the testsuit.

Yuri

yurivict avatar Jul 06 '22 20:07 yurivict

Thanks @yurivict

Just to check: In the commit info, are those the only changes that you had to make from our git repo to your port?

Re testsuite: While some of the algorithms are deterministic, several of them are actually non-deterministic and therefore hard to test. The main performance metric we care about, time, is difficult to write automated tests for. I will try out your port and let you know if I see performance similar to our papers.

darrenstrash avatar Jul 06 '22 21:07 darrenstrash

Just to check: In the commit info, are those the only changes that you had to make from our git repo to your port?

This commit contains all changes needed to add the port.

Re testsuite: While some of the algorithms are deterministic, several of them are actually non-deterministic and therefore hard to test. The main performance metric we care about, time, is difficult to write automated tests for. I will try out your port and let you know if I see performance similar to our papers.

Thanks.

yurivict avatar Jul 06 '22 21:07 yurivict