For the 4th year in a row Adrian Fanjoy and I have done one of our favorite SolidWorks World presentations, "Allowing SolidWorks to Perform". The presentation was well received and we thought it would be a good idea to share the information with more than just the SolidWorks World attendees.
We will be publishing our presentation thru a series of blog articles so check back to the blog often to see what we have added to the series. We have also included a set of links at the bottom of this article that will take you to all past and future articles.
To get the series started we are starting with Who, What, When, Where, Why and How of putting together this information.
From the standpoint of performance in a SolidWorks modeling environment; large assembly modeling is the most strenuous endeavor. As users of any CAD software can understand large assemblies can easily take a workstation to the limits of its capability. In working with several customers and from our past testing Adrian and I have determined many different means of improving performance for SolidWorks. This year we structured our testing a little differently so we could quantify the improvement and determine what improvement is worth the investment.
Our testing was different this year in that we were given a large assembly from Racine Railroad that we are now able to show. We also moved away from our benchmark macro to a custom built API that runs the model through many aspects of SolidWorks measuring our performance in a manner that has never before been done. In our tests we isolate individual changes in our hardware and modeling environment and measure the time difference of running the API against a Typical, Practical, and Optimal system. This allowed us to measure the effect of a single change and then compare that to other changes to determine where to invest time and resources to improve SolidWorks performance.
Please realize that the results that we are presenting in this document are specific to our environment, models, and tasks performed. While we are certain that you can expect similar results when making such changes, the magnitude of your performance increase will definitely be different than ours. When working with large assemblies the benefits that you realize may be more or less than ours. Overall you should see an improvement but realize that we cannot determine what other environments may hold, thus we will not guarantee the effect these changes will have in any environment other than ours.
To determine what changes make the most significant difference in hardware and modeling performance we ran our model through a custom SolidWorks API created by Bob Hanson (CATI/InFlow) that performed operations common in a typical designers day (ie. modeling, rotations, rebuilds, opens, closes, saves, etc...). We tested many specific aspects in the categories of hardware, system configuration, and modeling methodology.
To run tests of this nature and insure that the integrity of the testing was maintained we needed a system that was extremely adaptable. BOXX Technologies provided that workstation. The 3D BOXX 4920 Extreme Workstation gave us the ability to test a wide range of configurations without jumping from one workstation to another which would have made maintaining consistency in our configuration almost impossible. This ability to adapt allowed us to run tests that ranged from:
- 1 core to 6 cores
- 3.42GHz to 4.43GHz processor speeds
- 2GB to 32GB of RAM
- 5 different Nvidia graphics cards
- 5 different hard drive types
Our model was given to us this year by Racine Railroad Products and was the ideal assembly to use for performance testing. It is a combination over 10,000 components with many layers of subassemblies that gave us the flexibility to perform all of our testing. The model, as seen below, is their Safelok Applicator & Remover, A.K.A. SAR Machine. The machine both applies or removes the Safelok clip used mostly in concrete railroad tie scenarios; although there are wood tie applications as well.
The stats for this assembly are:
- 10559 total components
- 9693 parts
- 866 sub-assemblies
- 1292 top level mates
- 15093 bodies
In total the dataset takes up 1.92GB of disk space and has 4854 files.
Baseline or Typical Machine
For our baseline test we chose to run the API in a manner that we felt was consistent with typical environments that we see with customers and this will be referred to as our Typical Machine in all of our testing.
The core aspects (These never change)
- SolidWorks 2013 SP0
- WIN7 64bit OS
- 1 - i7 processor with 2 cores @ 3.4GHz
- 8GB RAM
- OS and assembly storage on the same 7200RPM hard drive
- SolidWorks options set to defaults
- Files are stored locally
- Several Add-Ins are turned on
- Operating system visual settings are set to default
- Image quality set optimally
- High level of detail in some components
- Large number of top level mates
- Assembly is fully resolved
With our environment configured as above our benchmark ran in 4:43:44. Most of the comparisons that follow in our blog articles will be compared to this Typical machine.
In the subsequent articles in this series we are going to explore each test that we did. We will put the tests in no particular order with the exception of we will be posting all of our hardware tests followed by modeling tests. We will finish with 2 optimal configurations to see what the effect can be when you combine all of the improvements together into the same environment and model set. Occasionally we will veer off track and discuss a side topic here and there as well.
I hope you find these articles informative and helpful. Please check back to the CATI blog as we will continue posting our series of articles that goes further into the details of each of our tests. All of these articles will be stored in the category of Free SolidWorks from Performance Constraints and links to each with their release date are listed below:
- FSWPC-13-#1 Introduction (3/19/13)
- FSWPC-13-#2 RAM (3/21/13)
- FSWPC-13-#3 Processor Cores (3/26/13)
- FSWPC-13-#4 Processor Cores for Simulation and PhotoView360 (3/28/13)
- FSWPC-13-#5 Processor Clock Speed (4/2/13)
- FSWPC-13-#6 Hard Drives (4/4/13)
- FSWPC-13-#7a Graphics Cards-SolidWorks Functionality (4/9/13)
- FSWPC-13-#7b Graphics Cards-Hardware Comparison (4/11/13)
- FSWPC-13-#7c Graphics Cards-Model Complexity (4/16/13)
- FSWPC-13-#8 Files stored in an older version (4/18/13)
- FSWPC-13-#9 OS Visual and User Settings (4/23/13)
- FSWPC-13-#10 SolidWorks Options (4/25/13)
- FSWPC-13-#11 SolidWorks Image Quality (4/30/13)
- FSWPC-13-#12 SolidWorks RealView Graphics (5/2/13)
- FSWPC-13-#13 SolidWorks Level of Detail (5/7/13)
- FSWPC-13-#14 SolidWorks Mates and Flexible Subassemblies (5/9/13)
- FSWPC-13-#15 SolidWorks Defeature (5/14/13)
- FSWPC-13-#16 SolidWorks Envelope (5/16/13)
- FSWPC-13-#17 SolidWorks Large Design Review (5/21/13)
- FSWPC-13-#18 SolidWorks SpeedPak (5/23/13)
- FSWPC-13-#19 SolidWorks Save as Part (5/28/13)
- FSWPC-13-#20 SolidWorks Large Assembly Mode (5/30/13)
- FSWPC-13-#21 Optimal Configuration and Conclusion (6/4/13)
Josh Altergott, CATI Support Manager
Adrian Fanjoy, CATI Technical Services Director