• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

3D CAD World

Over 50,000 3D CAD Tips & Tutorials. 3D CAD News by applications and CAD industry news.

  • 3D CAD Package Tips
    • Alibre
    • Autodesk
    • Catia
    • Creo
    • Inventor
    • Onshape
    • Pro/Engineer
    • Siemens PLM
    • SolidWorks
    • SpaceClaim
  • CAD Hardware
  • CAD Industry News
    • Company News
      • Autodesk News
      • Catia News & Events
      • PTC News
      • Siemens PLM & Events
      • SolidWorks News & Events
      • SpaceClaim News
    • Rapid Prototyping
    • Simulation Software
  • Prototype Parts
  • User Forums
    • MCAD Central
    • 3D CAD Forums
    • Engineering Exchange
  • CAD Resources
    • 3D CAD Models
  • Videos

cloud

Solving the CAD concurrency problem

June 15, 2012 By Evan Yares 12 Comments

Earlier this week, I was doing some software testing on my lab machine. It’s a really nice Z1, on loan to me from HP. It has an 8-core high-end Intel processor. I brought up the process monitor as I worked, and watched, somewhat amused, as Autodesk Inventor pegged one core at 100% for several minutes, while the other cores sat there, doing almost nothing.

Really Big Sketch
This is a really big sketch. CAD programs don't like these.

It wasn’t Inventor’s fault. Well, not really. The particular test I was doing was designed to push the 2D sketcher in Inventor to its limit. It contained 1024 triangles, connected with over 3072 constraints (I didn’t count exactly.) That sketcher uses a component called 2D DCM (Dimensional Constraint Manager), part of the D-Cubed group of software components, developed and sold by Siemens PLM Software.

Many well-known CAD programs use D-Cubed software. It’s the stuff that, when you push and pull on a sketch (or a CAD model) figures out what you’re trying to do, and calculates the resulting shape. 2D DCM is often called a “constraint manager,” or a “solver.” Built into its heart are a bunch of very complicated algorithms for solving systems of linear equations. It’s PhD level stuff.

In the case of my testing, it was 2D DCM that used all the power of one core, but ignored the other cores in my computer – essentially, leaving 7/8 of the power that HP built into the computer untapped.

So, here’s the question: Why doesn’t Siemens PLM just tell their programmers to fix 2D DCM, so it can use multiple cores? Why not rewrite it to support concurrency? If they did that, it’d solve a lot of other problems at the same time—for example, it would make creating cloud based CAD systems, that run across multiple processors and servers, a lot easier to implement.

As a start, 2D DCM has been thread-safe since 2009. A CAD system can run multiple instances of the program on parallel processors, without any significant performance hit.

So it does run on multiple cores. Problem solved?

Hardly.

In my test, I’d created a 2D sketch in Inventor. where moving any one node or edge required the system to recalculate all of the lines in all of the triangles.  All 1024 of them.  There were no independent constraints, where making a change would not affect other geometry. They were all interlinked.

Suppose Autodesk’s programmers had set up Inventor to use multiple instances of 2D DCM on multiple cores. How could a problem such as mine be partitioned to use those multiple instances?

The answer is: it couldn’t. Running 2D DCM on multiple cores allows those multiple instances to solve independent constraints. Not interlinked constraints.

Let me see if I can paint a picture of the problem. When I was a kid, I used to play a game called pick-up sticks. The idea was to dump out a bunch of long sticks on the floor (or table), creating a tangled pile. Each player, in turn, would remove a stick from the pile without disturbing the remaining ones.

Pick-up Sticks

Imagine several people playing pick-up sticks, but instead of waiting in turn, all of them trying to remove sticks at the same time. Concurrently. That’s pretty analogous to the problem of partitioning the data in a sketch in a way that it’s possible to use parallel solvers. There’s no easy way of partitioning the equations representing the system of constraints in such a way that they can be solved in parallel.

2D DCM has been around for quite a long time, as CAD component software goes. When it was designed, the programmers likely looked at the issue of parallel computing, shuddered, and decided to focus on making the software actually work right in the first place. It probably made sense at the time: Multicore processors, and even parallel computers, were rare.

Over the years, some things have changed. Multicore, parallel processors, clusters, and cloud computing are now commonplace. And there have been advances in math. Do a search on Google Scholar for “parallel solutions of linear systems” and you’ll get a lot of results. Still, adding parallel support into a tool like 2D DCM isn’t just a matter of writing some lines of code. It might involve tearing it down to the ground, and rebuilding it with a completely new architecture.

Is Siemens willing to invest what would likely be a princely sum in rebuilding their D-Cubed products from the ground up? I can’t answer that question. If I asked the folks at Siemens, and they told me, I’d not be able to tell anyone else. Trade secrets, you know. But I can say that I hope they are looking at this problem, because it’s one of the key limitations that get in the way of developing next-generation high-performance CAD software.  The kind that can run on multiple cores, multiple processors, clusters, or the cloud.

I wrote this post in response to a commenter, who was raising the issue of the lack of multicore support in current CAD systems. I think his concern is valid, but I wanted to make the point that this is not a simple problem to fix, whether in geometric constraint managers, or geometric modeling kernels. It’s like the pick-up sticks problem: Really difficult, even if you throw big piles full of money at it, and wave fat paychecks at PhD mathematicians.

Still, there are people working on these problems. Next week, I’ll be writing a bit about Cloud Invent, a tiny company that may have made a breakthrough in geometric constraint modeling.

 

Pick-up sticks image courtesy David Namaksy, boardgamegeek.com

Filed Under: Evan Yares, Featured, Inventor, News, Siemens PLM Tagged With: Autodesk, cloud, Cloud-Invent, Concurrency, D-Cubed, DCM, Inventor, Multicore, Siemens PLM

Cloud CAD is really difficult

May 1, 2012 By Evan Yares 26 Comments

If you believe the buzz in the blogosphere, there are a lot of engineers and designers who are not at all happy at the prospect of some day being forced to use cloud-based CAD.

The public lashback on cloud CAD started building several years ago, and it’s hardly abated since. The conversation has taken on political/religious overtones.

In the best of all worlds, clould CAD could be a revolutionary tool, allowing people to work where, when, and with whom they desire. The troika of cloud, mobile, and social offer intriguing possibilities.

Yet, there are potential problems with cloud CAD, at multiple levels.

The issues are substantial enough that it’s not practical to address them all at once. So, with this article, I’ll dig into with just one issue: the difficulty in actually creating a cloud CAD program.

CAD is difficult

CAD, even without being cloud-based, is difficult to create. Mike Riddle, one of the best known CAD architects, estimates that CAD is about an order of magnitude more complex than typical Office type applications. He ‘s not talking about lines of code (though CAD programs do clock-in with tens of millions of lines of code.) Rather, he’s referring to the Chess-like complexity and difficulty of creating a CAD program that can actually model the things that its users want to model.

Understanding CAD architecture

CAD programs are built up out of a large number of software components. Some, such as geometric modeling kernels, constraint managers, graphics pipelines, and translators, are developed by fairly well-known companies, and licensed to a large number of CAD developers. Other components, such as those for manipulating raster images, zip files, or unicode characters, are available through open-source repositories, such as SourceForge. Many more components are created by CAD developers themselves.

The real magic in creating a CAD program comes in how the software compenents are arranged and connected. This is the essence of software architecture. It is largely what distinguishes great programs from lousy programs.

Once the architecture for a CAD program has been set, it can be really difficult to change.

Consider, for example, how CAD programs, almost as a rule, seem to take very poor advantage of multi-core processors. This isn’t because the CAD vendors (and the programmers who work for them) don’t want to provide good multi-core support. It’s because the architecture of their software, and of the component libraries which comprise their applications (particularly the geometric modeling kernel, if we want to point fingers) were not initially designed to support concurrency (the underlying requirement to support multi-core processors.)

Though CAD vendors could rip their software down to the ground, and re-architect it to support concurrency, it’s not so easy as just putting a team of programmers on it, and giving them a budget for coffee and Red Bull.

CAD software architectures generally creep, in an organic fashion, from release to release. Initial versions of CAD programs are often architecturally consistent because they are created by small development teams comprised of very experienced CAD programmers. Yet, over time, demands to add new features and capabilities on too-short schedules, and the addition of more programmers to development teams, can lead to hacks which compromise the architectural integrity of later versions of the software.

The result can be a CAD program that works pretty well in most cases, but which has persistent instabilities that can’t be easily fixed—either because no one actually completely understands the CAD program’s architecture, or the instability has become “baked into” the architecture. (Not to point fingers, but there are a number of well-known CAD programs which suffer from persistent instability.)

For a CEO of a CAD software company, the prospect of embarking on a re-architecture project has got to be chilling. Too many of these projects (the most infamous being AutoCAD Release 13) end up being expensive disasters.

Cloud CAD architecture

There are two ways to approach cloud CAD. One way is to use an existing desktop (e.g., Windows, OSX, or Linux based) CAD program, and run it, mostly unchanged, on virtualized servers. This is the approach that companies such as Citrix and CloudSwitch enable—and it’s nothing new. The other way is to build a CAD architecture that’s optimized for use on the cloud.

An optimal cloud CAD architecture would support scalability, both in the number of concurrent users, and in the size of CAD models. That means, essentially, breaking the CAD software down in to a number of interoperable services, which can run concurrently on multiple loosely-coupled server instances.

The problem that CAD developers run into is that, even though their existing desktop CAD systems are built from a large number of software components, those components were never designed to work in a loosely-coupled environment, and they were not, except in rare cases, designed to support concurrency. It’s simply not practical to take an existing CAD program, break it down to its components, then use those to build a cloud CAD system.

The only practical way to build a scalable cloud-based CAD system is to start from scratch, with a new architecture. While some components from existing CAD systems may be reusable as is, most are not.

Where are the cloud CAD programs?

The buzz about cloud CAD started in early 2010, with DS SolidWorks Corp previewing the cloud-based SolidWorks V6 at their user conference, and Autodesk opening up Project Butterfly, a cloud-based CAD application, on their Autodesk Labs site.

SolidWorks V6, despite its name, is built on the Dassault Systems V6 platform. It won’t be available until 2013, at the earliest, and even then, it won’t be entirely compatible with today’s SolidWorks program (because, among other reasons, it will be using a different geometric modeling kernel—one that’s quite different from the Parasolid kernel used in SolidWorks for the last 17 years.) SolidWorks V6 will be a functionally different program than SolidWorks.

AutoCAD WS, the released version of Project Butterfly, is the only notable cloud CAD application currently available. Despite its name, it’s not based on AutoCAD. It’s based on technology developed by PlanPlatform, a company acquired by Autodesk in 2009. While it does read and write AutoCAD compatible DWG files, AutoCAD WS is not a functional match to AutoCAD.

What of the other cloud CAD products?

There are none that are notable. (Or, rather, I don’t know of any that are particularly notable. I expect someone will send me straight on this if I’m wrong.)

While it’s possible that Siemens PLM or PTC have secret projects to develop cloud-based CAD programs, it’s likely that, if they do, those programs won’t be a functional match to their existing desktop CAD programs. Just like DS SolidWorks and Autodesk, they’ll need to start from scratch with cloud-based CAD.

Desktop CAD is here to stay

There are many CAD-related things you can do well on the cloud, including storage, rendering, CAE, and collaborative markup. But CAD itself? It’s easier to say than to do.

Cloud CAD is really difficult, if you want to do it right. As much as CAD company CEOs might like to talk about their visions of the future, they know that cloud CAD won’t replace desktop CAD for a very long time, if ever.

Filed Under: Autodesk, Evan Yares, Featured, SolidWorks Tagged With: AutoCAD WS, cad, cloud, SolidWorks V6

SolidWorks models on an iPad

September 14, 2011 By Laura Carrabine Leave a Comment

CadFaster, the simple, free application for collaborating on SolidWorks 3D models is now available on the iPad App Store. CadFaster lets you access your projects on the move and allows your whole team to markup and co-view models in real time.

You can export models as EXE files for Windows users and to cloud service for iPad users. You can also manipulate models to create unique views. Measure accurately on the iPad. Markups are accessible for everyone in real time.

CadFaster

www.cadfaster.com

Filed Under: 3D CAD Package Tips, CAD Package, SolidWorks, SolidWorks Blogs Tagged With: 3D CAD, CadFaster, cloud, iPad, SolidWorks

New, free CadFaster 3D CAD iPAD app

August 23, 2011 By Laura Carrabine Leave a Comment

CadFaster, Inc. released its newest CadFaster application for the Apple iPAD available in the Apple iTunes App Store. (http://bit.ly/pTzM43) The application is ideally-suited for engineering, architecture, construction, mechanical, and plant design firms seeking the fast reading and smooth handling of complex and large CAD data files. CadFaster Collaborate lets you distribute, annotate, and co-view 3D designs in real-time using the fast and efficient 3D visualization technology.

The new product allows anyone to collaborate with 3D models exported to the CadFaster cloud service from Autodesk Revit, Bentley MicroStation, or SolidWorks. An ArchiCAD plug-in will be available in September, 2011. 3D models are highly compressed before they are exported and stored in a cloud database and the application includes a number of demo models to work with.

CadFaster

www.cadfaster.com

Filed Under: 3D CAD Package Tips, Autocad Blogs, Autodesk, Autodesk News, CAD Package, SolidWorks, SolidWorks Blogs, SolidWorks News & Events Tagged With: 3D CAD, Apple, ArchiCAD, Bentley MicroStation, CadFaster, cloud, iPad, Revit, SolidWorks

Primary Sidebar

3D CAD NEWSLETTERS

MakePartsFast

Follow us on Twitter

Tweets by 3DCADWorld

Footer

3D CAD World logo

DESIGN WORLD NETWORK

Design World Online
The Robot Report
Coupling Tips
Motion Control Tips
Linear Motion Tips
Bearing Tips

3D CAD WORLD

  • Subscribe to our newsletter
  • Advertise with us
  • Contact us
Follow us on Twitter Add us on Facebook Add us on LinkedIn Add us on Instagram Add us on YouTube

3D CAD World - Copyright © 2021 · WTWH Media LLC and its licensors. All rights reserved.
The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media.

Privacy Policy