director icon indicating copy to clipboard operation
director copied to clipboard

VTK build on OSX is very slow

Open rdeits opened this issue 9 years ago • 9 comments

(too slow for Travis, for example).

We should look into providing a bottled version of vtk5 with python.

rdeits avatar Dec 16 '15 18:12 rdeits

It looks like Homebrew doesn't support bottles for optional arguments: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/FAQ.md#why-do-you-compile-everything

Perhaps we could package our own precompiled VTK? Or even create a vtk5-python recipe and bottle that?

rdeits avatar Dec 16 '15 22:12 rdeits

what do you guys think about packaging director as precompiled vs vtk5 as precompiled?

RussTedrake avatar Jan 23 '16 20:01 RussTedrake

I think the issue of being too slow for travis is resolved by having a build script that prints progress, travis assumes your build has stalled if it goes for too long without printing progress.

is the main concern that the build is too slow for new users, or too slow for build servers? do you imagine the precompiled option being a non-default option that is enabled only for build servers, or a default option enabled for users?

if we eventually enable features in drake-visualizer that link against drake (as we currently do in director), then that dependency must be compiled from source.

patmarion avatar Jan 23 '16 21:01 patmarion

I will let @rdeits confirm, but I think this came in when students in 6.832 were turned off by the incredible build time.

RussTedrake avatar Jan 23 '16 21:01 RussTedrake

I don't know why homebrew doesn't provided a bottled version of vtk, but it might have to do with the +python option. On mac, it can be unpredictable whether the user wants system python, homebrew python, or something else (like anaconda python).

patmarion avatar Jan 23 '16 21:01 patmarion

Yeah, the issue is the --with-python argument. And I think both issues came up: students were annoyed by the very long build time, and travis was stalling (and it wasn't clear how to ensure that homebrew printed enough output to keep it happy).

rdeits avatar Jan 23 '16 23:01 rdeits

An update: a found a trick to get travis to homebrew install vtk without timeout (it takes over 25 minutes). Then I had the travis server make a homebrew bottle for vtk and upload it. In future builds, the bottle can be installed quickly. However, it didn't work for macosx gcc builds. I could make a gcc specific bottle. The homebrew server runs osx mavericks, so it probably won't work for systems earlier than that.

Command to install bottle: https://github.com/RobotLocomotion/drake/pull/1689/files Failure on osx with gcc: https://travis-ci.org/RobotLocomotion/drake/jobs/106893992

patmarion avatar Feb 04 '16 03:02 patmarion

conda has vtk 5.10 and 6.3 packages. http://conda.pydata.org/docs/

I'm not sure how open you guys would be to using a non-system python though. If you're not familiar with conda, the short story is its a python distribution that has binary packages for a lot of existing python packages. We often use it to more easily get a more recent python version on older systems. They provide packages for linux, windows, and osx.

jhoare avatar Mar 18 '16 12:03 jhoare

thanks for the info. We already use a non-system python when doing homebrew installs (although it also works with system python if the user chooses to avoid homebrew python)

patmarion avatar Mar 18 '16 15:03 patmarion