From david.thompson at kitware.com Tue Jan 6 16:56:26 2015 From: david.thompson at kitware.com (David Thompson) Date: Tue, 6 Jan 2015 16:56:26 -0500 Subject: [Smtk-developers] Some timing data Message-ID: <43553036-FF73-4533-BF00-1DD3C3F7F89A@kitware.com> Hi all, Hoping that things would change for the better, I built CGM and SMTK with OpenCascade 6.8 (as well as 6.5 that is in the superbuild already). Attached is a graph showing that 6.8 is often slower than 6.5 in generating surface tessellations for display. In the graph, blue points are timings from OCC6.5 and red from OCC6.8. The largest model tested was the stargate model. Both versions of OCC were compiled in release mode. The raw data is also attached and includes timings of loads with and without tessellations being generated (in the latter case, the number of primitives and vertices reported will be 0). David -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2015-01-06 at 4.33.50 PM.png Type: image/png Size: 32878 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: timing.json Type: application/json Size: 7424 bytes Desc: not available URL: From david.thompson at kitware.com Wed Jan 14 16:32:49 2015 From: david.thompson at kitware.com (David Thompson) Date: Wed, 14 Jan 2015 16:32:49 -0500 Subject: [Smtk-developers] Some timing data In-Reply-To: <43553036-FF73-4533-BF00-1DD3C3F7F89A@kitware.com> References: <43553036-FF73-4533-BF00-1DD3C3F7F89A@kitware.com> Message-ID: <3CA2A46C-B917-4CCD-A398-64D6422951A8@kitware.com> Hi all, I've finally been able to build a 32-bit SMTK linked to Cubit 14.0 and run some files through the same timer script as the OCC models. One problem is that the models that the Cubit and OCC backends can both read are in the STEP and IGES format... but Cubit always runs these files through an external conversion program (to ACIS SAT) before loading the result. So the timings include this conversion. The conversion program can be run manually, but then the benchmark is loading files of different types (native for Cubit/ACIS and STEP for OCC), making direct comparison a little dubious. As an example, loading the Stargate.stp model in SMTKTestData takes 299s including the conversion to ACIS SAT format and 222s reading the SAT file directly. OCC 6.5 took 127s and OCC 6.8 took 155s. However, the Cubit import generated about 3e6 primitives while the OCC imports generated 2.0e6 (OCC 6.5) and 2.1e6 (OCC 6.8) primitives for the same chord and normal error criteria. The Audi model takes 238s (Cubit, including STEP->SAT conversion) and generates 3.9e6 primitives. David > Hoping that things would change for the better, I built CGM and SMTK with OpenCascade 6.8 (as well as 6.5 that is in the superbuild already). Attached is a graph showing that 6.8 is often slower than 6.5 in generating surface tessellations for display. In the graph, blue points are timings from OCC6.5 and red from OCC6.8. The largest model tested was the stargate model. Both versions of OCC were compiled in release mode. > > The raw data is also attached and includes timings of loads with and without tessellations being generated (in the latter case, the number of primitives and vertices reported will be 0). > > David From utkarsh.ayachit at kitware.com Tue Jan 20 13:20:48 2015 From: utkarsh.ayachit at kitware.com (Utkarsh Ayachit) Date: Tue, 20 Jan 2015 13:20:48 -0500 Subject: [Smtk-developers] Python error with SMTK in custom application Message-ID: For a custom application based on SMTK commit c8b0d2d511b2ec5153b4174a7f14b68c3a17cde7 I am getting the following error. Any ideas on why and how to overcome it? I cannot update to SMTK master since the project doesn't build with SMTK master. ---------------------------------------------- Fatal Python error: [libshiboken] Failed to initialise Shiboken.SbkEnumType metatype. ---------------------------------------------- Utkarsh From david.thompson at kitware.com Tue Jan 20 13:34:55 2015 From: david.thompson at kitware.com (David Thompson) Date: Tue, 20 Jan 2015 13:34:55 -0500 Subject: [Smtk-developers] Python error with SMTK in custom application In-Reply-To: References: Message-ID: <719D2E0F-B114-47DC-BFA2-74B1D5EF33FD@kitware.com> Hi Utkarsh, > For a custom application based on SMTK commit > c8b0d2d511b2ec5153b4174a7f14b68c3a17cde7 I am getting the following > error. Any ideas on why and how to overcome it? I cannot update to > SMTK master since the project doesn't build with SMTK master. > > ---------------------------------------------- > Fatal Python error: [libshiboken] Failed to initialise > Shiboken.SbkEnumType metatype. > ---------------------------------------------- I have not seen that error before, but that commit is related to environment variable settings that were causing the dashboards to fail. They really should only affect the tests (looking at git diff cc5812e..c8b0d2d). 1. What platform are you running on? 2. You said "the project doesn't build with master". Is the above a compilation error? If so, what target was building? 3. Are you able to run a python interpreter with the same environment as your project's executable and try "import smtk" with a new SMTK? Is it a problem loading the library or does the library get loaded properly? Can you add ${CMB_SUPERBUILD_DIR}/install/lib/python2.7/site-packages to your PYTHONPATH and see if "import shiboken" runs properly (without first importing smtk)? David From utkarsh.ayachit at kitware.com Tue Jan 20 13:40:25 2015 From: utkarsh.ayachit at kitware.com (Utkarsh Ayachit) Date: Tue, 20 Jan 2015 13:40:25 -0500 Subject: [Smtk-developers] Python error with SMTK in custom application In-Reply-To: <719D2E0F-B114-47DC-BFA2-74B1D5EF33FD@kitware.com> References: <719D2E0F-B114-47DC-BFA2-74B1D5EF33FD@kitware.com> Message-ID: Thanks for your prompt reply, David. I suspect you may be on the right path with (3). I'll get back to that later today and will see if I can figure it out. My inline responses follow for your reference. > 1. What platform are you running on? Linux, Ubuntu 14.04 > 2. You said "the project doesn't build with master". Is the above a compilation error? If so, what target was building? No, I meant that project cannot use git/master SMTK. It has to use the specific SHA I specified for details unknown to me. Evidently, the SMTK API has changed since this app was developed. > 3. Are you able to run a python interpreter with the same environment as your project's executable and try "import smtk" with a new SMTK? Is it a problem loading the library or does the library get loaded properly? Can you add ${CMB_SUPERBUILD_DIR}/install/lib/python2.7/site-packages to your PYTHONPATH and see if "import shiboken" runs properly (without first importing smtk)? I'll follow up with this later today and let you know. Thanks. From david.thompson at kitware.com Tue Jan 20 13:47:03 2015 From: david.thompson at kitware.com (David Thompson) Date: Tue, 20 Jan 2015 13:47:03 -0500 Subject: [Smtk-developers] Python error with SMTK in custom application In-Reply-To: References: <719D2E0F-B114-47DC-BFA2-74B1D5EF33FD@kitware.com> Message-ID: <552C250F-3B6E-492F-AB8A-7E7D376E90C0@kitware.com> >> 1. What platform are you running on? > > Linux, Ubuntu 14.04 The dashboards that commit fixed are Ubuntu 12.04. My best guess is that perhaps you have conflicting SMTK libraries installed and both sets are in your path? David From utkarsh.ayachit at kitware.com Wed Jan 21 09:59:11 2015 From: utkarsh.ayachit at kitware.com (Utkarsh Ayachit) Date: Wed, 21 Jan 2015 09:59:11 -0500 Subject: [Smtk-developers] Python error with SMTK in custom application In-Reply-To: <552C250F-3B6E-492F-AB8A-7E7D376E90C0@kitware.com> References: <719D2E0F-B114-47DC-BFA2-74B1D5EF33FD@kitware.com> <552C250F-3B6E-492F-AB8A-7E7D376E90C0@kitware.com> Message-ID: David, Here's an update. import shiboken fails with the same error: Fatal Python error: [libshiboken] Failed to initialise Shiboken.SbkEnumType metatype. I verified that this is not an issue with multiple versions of shiboken/smtk. The loaded libraries are indeed the ones that were build by this project (I verified by using LD_DEBUG=libs). On Tue, Jan 20, 2015 at 1:47 PM, David Thompson wrote: >>> 1. What platform are you running on? >> >> Linux, Ubuntu 14.04 > > The dashboards that commit fixed are Ubuntu 12.04. My best guess is that perhaps you have conflicting SMTK libraries installed and both sets are in your path? > > David From david.thompson at kitware.com Wed Jan 21 11:25:22 2015 From: david.thompson at kitware.com (David Thompson) Date: Wed, 21 Jan 2015 11:25:22 -0500 Subject: [Smtk-developers] Python error with SMTK in custom application In-Reply-To: References: <719D2E0F-B114-47DC-BFA2-74B1D5EF33FD@kitware.com> <552C250F-3B6E-492F-AB8A-7E7D376E90C0@kitware.com> Message-ID: <051F2A98-440C-45B2-ACDE-135313B0A441@kitware.com> Hi Utkarsh, > Here's an update. import shiboken fails with the same error: ... > I verified that this is not an issue with multiple versions of > shiboken/smtk. The loaded libraries are indeed the ones that were > build by this project (I verified by using LD_DEBUG=libs). Are you sure that you are running the same python that SMTK was linked against (superbuild python vs system python)? David From david.thompson at kitware.com Thu Jan 29 21:29:41 2015 From: david.thompson at kitware.com (David Thompson) Date: Thu, 29 Jan 2015 21:29:41 -0500 Subject: [Smtk-developers] Big rename Message-ID: <408BBBF8-FE9F-446C-8EE0-1DEBB2338526@kitware.com> Hi all, I plan to perform a large rename of classes in SMTK tomorrow and want to make sure you have a chance to merge branches before it takes place. Please let me know if you need me to postpone. The list of renames is Cursor -> EntityRef Bridge -> Session (not a Cursor subclass) BridgeSession -> SessionRef (a Cursor subclass) GroupEntity -> Group InstanceEntity -> Instance ModelEntity -> Model RemusRemoteBridge -> Session BridgeIO -> SessionIO BridgeIOJSON -> SessionIOJSON BridgeExodusIOJSON -> SessionExodusIOJSON BridgeRegistrar -> SessionRegistrar The scripts I will use on SMTK (and adapt to CMBv4) are below. David ## This is the shell script to rename files and ## run VIM on every SMTK file to capture name changes: git mv smtk/model/Cursor.h smtk/model/EntityRef.h git mv smtk/model/Cursor.h smtk/model/EntityRef.cxx git mv smtk/model/Cursor.cxx smtk/model/EntityRef.cxx git mv smtk/model/Bridge.h smtk/model/Session.h git mv smtk/model/Bridge.cxx smtk/model/Session.cxx git mv smtk/model/BridgeIO.h smtk/model/SessionIO.h git mv smtk/model/BridgeIO.cxx smtk/model/SessionIO.cxx git mv smtk/model/BridgeIOJSON.h smtk/model/SessionIOJSON.h git mv smtk/model/BridgeIOJSON.cxx smtk/model/SessionIOJSON.cxx git mv smtk/model/BridgeRegistrar.h smtk/model/SessionRegistrar.h git mv smtk/model/BridgeRegistrar.cxx smtk/model/SessionRegistrar.cxx git mv smtk/model/BridgeSession.h smtk/model/SessionRef.h git mv smtk/model/BridgeSession.cxx smtk/model/SessionRef.cxx git mv smtk/model/ModelEntity.h smtk/model/Model.h git mv smtk/model/ModelEntity.cxx smtk/model/Model.cxx git mv smtk/model/GroupEntity.h smtk/model/Group.h git mv smtk/model/GroupEntity.cxx smtk/model/Group.cxx git mv smtk/model/InstanceEntity.h smtk/model/Instance.h git mv smtk/model/InstanceEntity.cxx smtk/model/Instance.cxx git mv smtk/bridge/remote/RemusRemoteBridge.h smtk/bridge/remote/Bridge.h git mv smtk/bridge/remote/RemusRemoteBridge.cxx smtk/bridge/remote/Bridge.cxx git mv CMake/SMTKBridgeJSON.cmake CMake/SMTKSessionJSON.cmake git mv smtk/bridge/cgm/Bridge.h smtk/bridge/cgm/Session.h git mv smtk/bridge/cgm/Bridge.cxx smtk/bridge/cgm/Session.cxx git mv smtk/bridge/cgm/Bridge_json.h smtk/bridge/cgm/Session_json.h git mv smtk/bridge/cgm/Bridge.json smtk/bridge/cgm/Session.json git mv smtk/bridge/discrete/Bridge.h smtk/bridge/discrete/Session.h git mv smtk/bridge/discrete/Bridge.cxx smtk/bridge/discrete/Session.cxx git mv smtk/bridge/discrete/Bridge.json smtk/bridge/discrete/Session.json git mv smtk/bridge/discrete/Bridge_json.h smtk/bridge/discrete/Session_json.h git mv smtk/bridge/exodus/Bridge.h smtk/bridge/exodus/Session.h git mv smtk/bridge/exodus/Bridge.cxx smtk/bridge/exodus/Session.cxx git mv smtk/bridge/exodus/Bridge.json smtk/bridge/exodus/Session.json git mv smtk/bridge/exodus/BridgeExodusIOJSON.h smtk/bridge/exodus/SessionExodusIOJSON.h git mv smtk/bridge/exodus/BridgeExodusIOJSON.cxx smtk/bridge/exodus/SessionExodusIOJSON.cxx find doc smtk CMake -type f -exec vim -S /path/to/vscript {} \; ## This is the contents of the "vscript" file that ## performs the renames in VIM using the most excellent ## VIM "abolish" plugin: ## http://www.vim.org/scripts/script.php?script_id=1545 %S+BridgeSession+SessionRef+g %S+BridgeIOJSON+SessionIOJSON+g %S+BridgeIO+SessionIO+g %S+BridgeRegistrar+SessionRegistrar+g %S+Bridge+Session+g %S+Cursor+EntityRef+g %S+GroupEntity+Group+g %S+InstanceEntity+Instance+g %S+ModelEntity+Model+g %S+RemusRemoteBridge+Bridge+g %S+BridgeExodusIOJSON+SessionExodusIOJSON+g wq From david.thompson at kitware.com Fri Jan 30 19:21:58 2015 From: david.thompson at kitware.com (David Thompson) Date: Fri, 30 Jan 2015 19:21:58 -0500 Subject: [Smtk-developers] Large class rename complete; please update Message-ID: <96E02F4C-A511-40B6-9B90-6B220D9EA70A@kitware.com> Hi all, I have pushed the class rename changes to both the SMTK and CMBv4 repositories. See https://github.com/Kitware/SMTK/issues/5 for the renames and the actual commits. Note that this changes the names of some libraries (because Bridge is replaced by Session) so you will need to make sure the old CMB/ParaView plugins are deleted load the newly-renamed ones: * libsmtkCGMSession_Plugin.dylib * libsmtkDiscreteSession_Plugin.dylib * libsmtkExodusSession_Plugin.dylib (file suffixes/prefixes will vary depending on your OS). If you have any problems or find naming inconsistencies, please let me know. David