|
When your customers are building machines with hundreds of thousands of components, your 3D design software needs the addressability that only 64-bit architecture can bring.
By Michael McCarthy Camden Associates
"SolidWorks is all about helping our customers build great products," says Austin O'Malley, Vice-President of Product Development, for SolidWorks Corp., a leading maker of 3D design tools such as COSMOS Works and PhotoWorks. And 64-bit computing helps SolidWorks deliver.
"Some of these products are large pieces of machinery, or other products that need to show very fine levels of detail," he says. "We've always done everything possible to optimize memory use and performance. But at some point, customers require more than what the 32-bit architecture offers. With x64, our customers are building machines that have hundreds of thousands of components, and millions of user-level objects." Think of opening a design file with a hundred thousand components as similar to opening a hundred thousand Word documents in a single process. You'd quickly fill up that process on a 32-bit system!
With 64-bit architecture, implemented in the AMD Opteron™ and Athlon™ 64 processors, capacity scales exponentially: From 3 gigabits of RAM in a 32-bit system, memory capacity increases to 128 gigabits when you use a 64-bit processor and a 64-bit operating system. Virtual memory jumps to 16 terabits.
This extra scalability might not help administrative workers creating office documents or sending e-mail, but when you're designing industrial products such as highly specialized, custom-designed pharmaceutical and medical research instruments and equipment for Bristol-Myers Squibb Company, or high-performance advanced robotics for Barrett Technology, Inc., you'd be surprised how quickly you run into a wall with 32-bit systems, and how empowering a 64-bit platform can be.
This robotic arm designed by Barrett Technology, Inc., consists of over 500 parts designed and assembled with SolidWorks.
"With x64, our customers can build machines that have hundreds of thousands of components and millions of user level objects," says O'Malley. "The sky is really the limit now on what they can do." This is a big payoff for customers who are building large machinery or complex analysis, he says. And doing photo-realistic rendering generates an enormous amount of additional data -- but that's easily handled on a 64-bit system.
Lifting the 32-bit memory limit changes the whole landscape for SolidWorks and its customers. "We had customers who had 70,000 components and couldn't go further without breaking the project into pieces," says O'Malley. "Now they are doing projects with a quarter of a million components, and using as much as 11 gigs of virtual memory or more!"
Using SolidWorks design and eDrawings communications capabilities, pool accessory design company Daka Designs Limited was able to shorten its design cycle on the Sea-Doo SeaScooter Dolphin pool water scooter by 50 percent while cutting development costs in half."
Parametric Design
SolidWorks was a pioneer in creating parametric design tools for 3D design. Most tools, especially 2D tools, have been not much more than computerized mechanical drawing kits -- you draw a series of lines, and they remain a series or a collection of mere lines. If you draw a box and later change it, you have to redraw all the lines. This makes mechanical design a kind of artwork.
With parametric modeling, the system is able to capture the design intent, by allowing the designer to assign constraints to the model's components, and the resulting system will behave according to those constraints. If the length is defined as two times the width, that will remain true as you update the model. The constraints are solved when you regenerate the model.
Now you are able to engage in some truly advanced design initiatives. You can play what-if games with your project in ways that aren't possible with a drawing system. Rotating parts can be adjusted to clear obstacles, for example, and the impact of that adjustment, and the constraints on how much adjusting you can do, are immediately visible.
Since you have 3D true dimensions, you can assign "properties" to the object, like "steel," and based on a library of data on the behavior of steel, you can do analysis to determine how strong a part is. If a part weighs too much for a particular use, you can shave it and then apply forces (using COSMOSWorks) to see how it reacts, and if it's still strong enough for that use.
A Denver company, RevoPower Wheel, used SolidWorks software to model its revolutionary invention, a motorized wheel that attaches to bicycles to turn them into 200-mpg vehicles. With SolidWorks, designers were able to figure out how to pack the engine, fuel delivery, controls, and transmission into the space between the forks of a bicycle wheel, then calculate the forces operating on the carburetor and on the engine, since the entire engine, encased in the bike wheel, spins with the wheel as it operates!
The entire engine, fuel delivery system, transmission, controls, and starting mechanism of the RevoPower Wheel are on the wheel, fitted between the forks of the bike, thanks to the design and analysis capabilities of SolidWorks 3D mechanical CAD software.
Porting to 64-bit – Tips from the Real World
Much of what you read elsewhere on this site about strategy and tactics for porting the SolidWorks team can confirm from their real-world experience in porting a major, demanding application over to 64-bit execution.
"The biggest challenge is to get your ducks in a row, and then start doing things in parallel," recommends O'Malley. "It's important to get your code x64-clean. Go through your code, finding implicit assignments between ints and pointers. Then turn on the /Wp64 compiler flag, and fix all the errors. You also want to make sure data is properly aligned, for better performance."
O'Malley suggests that Windows developers move to Visual Studio 2005, which will make your life easier because it has x64 native debugging facilities, and supports the .NET 2.0 Framework. It's a single development environment for both your 32-bit and your 64-bit work, and you work from a single source set. "This allowed us to make the switch without special training or new tools," he says.
You may also have to check in with your component providers. "We use some third-party components, so it was important to work with the component providers to make sure they would be ready. They were all pretty receptive because I think they realize the importance of this platform to the manufacturing space."
Start testing as soon as you can, testing on all hardware platforms you intend to support. Do both regression testing and performance testing, he recommends. "Don't get me wrong: Moving to x64 was a lot of work," concludes O'Malley. "But in the end, we have a single source set for both 32-bit and 64-bit implementations, and an overall cleaner code base." It was clearly worth it, from his customers' perspectives.
What the Future Holds
Some of the SolidWorks code is multithreaded, and many of the operations the software performs -- an COSMOS analysis problem, for example, and some aspects of photorealistic rendering -- can be parallelized, and get a boost in performance from multi-processor and multi-core 64-bit systems. And loading files takes place on different threads than interacting, so the time to viewing data is much shorter.
You can view and interact with the visible portions of the model while the rest of the model is loading on a separate thread in the background. You really see the benefit when the system is doing hidden-line removal for 2D views, a complex math process that is CPU intensive and benefits greatly from multithreading. It's an area where the company will be pushing further ahead in the future.
|