RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization
http://ospray.org
Apache License 2.0
982 stars 178 forks source link

tbb linking for embree broken under superbuild #490

Closed pnav closed 2 years ago

pnav commented 2 years ago

Hello,

Under OSPRay v 2.7.0 (sha a783bf9), when using the superbuild on TACC Frontera (CentOS 7.8.2003), the superbuild fails to link Embree against the oneAPI TBB download, as many symbols are left undefined by the oneAPI TBB. See attached CMakeCache.txt and the link error output.

As perhaps a second issue, turning off TBB download in the superbuild is an insufficient fix, since the superbuild does not allow the user to specify the TBB location. On our systems, TBB is installed in a non-standard location and needs to be specified to be found.

I was able to build this version of OSPRay successfully by downloading each dependency independently and managing the dependencies within each package's respective cmake config.

All best,

Paul CMakeCache.txt make.out.zip

Twinklebear commented 2 years ago

Hi Paul,

I'm able to reproduce this issue, it seems like when the intel module is loaded on TACC there's some conflict at link time between the TBB provided by the 2019 module (which is too old) vs. the one we're actually supposed to be linking with that was downloaded in the superbuild (2021.3). I am able to build if I unload the intel module, but that's not a great option since then you lose access to Intel MPI, and we should be able to find/link the right TBB even when the system has a different one installed.

We'll look into this more and let you know when we find a resolution.

pnav commented 2 years ago

Great sleuthing, Will! Thanks for the update. Perhaps there are additional CMake vars that can be used to avoid the conflict.

All best,

Paul

On Sep 13, 2021, at 12:21 PM, Will Usher @.**@.>> wrote:

Hi Paul,

I'm able to reproduce this issue, it seems like when the intel module is loaded on TACC there's some conflict at link time between the TBB provided by the 2019 module (which is too old) vs. the one we're actually supposed to be linking with that was downloaded in the superbuild (2021.3). I am able to build if I unload the intel module, but that's not a great option since then you lose access to Intel MPI, and we should be able to find/link the right TBB even when the system has a different one installed.

We'll look into this more and let you know when we find a resolution.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/ospray/ospray/issues/490#issuecomment-918407545, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAI74G3FBK5ZGWYYLEE3WBDUBYXKVANCNFSM5DLZCECQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

johguenther commented 2 years ago

fixed in 5d88a8cd84268c07ec7632bd6a4a2e71f5c377b6, patch release coming within the next days

johguenther commented 2 years ago

@pnav we need to revert the workaround in 5d88a8c, because it creates too many side-effects (e.g., rebuilding the superbuild a 2nd time does not work). You could still apply it to compile on TACC. Additionally, we are also looking for less intrusive solutions.

johguenther commented 2 years ago

Needs to be fixed in TACC's build environment.