RenderKit / embree

Embree ray tracing kernels repository.
Apache License 2.0
2.32k stars 383 forks source link

HPX support #473

Open ct-clmsn opened 5 months ago

ct-clmsn commented 5 months ago

This PR finalizes work started last year that adds HPX runtime system support to Embree. HPX is an asynchronous many task runtime system implementing ISO C++ STL's data parallelism and concurrency API. HPX is implemented over a user-land thread implementation and tends to yield good strong and weak scaling performance.

ct-clmsn commented 5 months ago

Updated readme and licenses where appropriate; the support was developed on a Mac M2 environment and an x86 environment.

jenetscaria-mcw commented 2 months ago

@ct-clmsn , we tried to run embree pathtracer example with hpx in an x64 system. We have installed hpx from the source and tried configuring HPX with -DHPX_WITH_MALLOC option with tcmalloc, jemalloc and system but we are facing errors as:

hpx::init: std::exception caught: Requested more than 64 --hpx:threads to use for this application, use the option -DHPX_WITH_MAX_COUNT_CPU_COUNT=<N> when configuring HPX.
Error: std::bad_alloc

We have tried modifying DHPX_WITH_MAX_COUNT_CPU_COUNT option and always ending up at the same error. Have you faced this issue before?

ct-clmsn commented 1 month ago

@jenetscaria-mcw my apologies for the late response. I'll verify this on an x86 system. The development work was done on a Mac Arm gen2 machine. I hadn't seen this particular issue before on that system but the x86 system should be a good test environment for this problem. Thank you for your time and patience!