Skip to content

3D InterOp in a Multi-Core World: Part 1

ADMIN | 13-03-2013

Perhaps even more enjoyable is to ultimately see your customers using your software to push their multi-core hardware to its limits.

Hexagon pattern 1

Try to buy a single-core laptop today and you’ll have a difficult time even finding one.  The leading computer manufacturers offer at least dual-core for base models of their economy lines, even for laptops.  Let that sink in.  Our days of single core machines, even laptops, are over.  Many of the leading mobile products are also at least dual-core with higher end products having even more cores.

Multi Core UsageAs a developer, it’s exciting to have this hardware available and to know it’ll only get better.  It’s even more exciting to be able to use it for development.  Perhaps even more enjoyable is to ultimately see your customers using your software to push their multi-core hardware to its limits.  If you’ve ever looked at the processor utilization on a multi-core machine and watched as every one of its processor maxed out, chewing through all that work you were throwing at it, you know that feeling of satisfaction.  It’s the satisfaction you get from knowing that you’re utilizing the hardware to its fullest. 

However, all the cores in the world aren’t going to just magically make the software you run faster – that software has to support it.  3D InterOp from Spatial has been around for many years and was largely established prior to the multi-core revolution. Therefore, file translations have been inherently sequential.  Just because the file translation process has always been sequential doesn’t mean it needs to be.  In fact, we are already exploring and implementing multiple strategies for how to catapult 3D InterOp into the multi-core world. 

multiple spools of threadTwo distinct high level strategies exist for taking advantage of multi-core machines: multi-threading and multi-processing.  Multi-threading is the use of multiple threads on a given processor.  Multi-processing is the use of multiple processors on a given computer.  Which strategy should be used?  Which offers the most bang-for-the-buck?  Which is more optimal?   Which scales better?  These questions can’t be answered without understanding what your code does and how it does it.

So let’s dive into the code.  First, is it thread-safe?  If it is then multi-threading is an option.  If not then you have to decide if you’re willing to invest the time and resources necessary to make it thread-safe.  If that is not possible then you’re left with the multi-process strategy.  Since multi-processing uses separate processes, no memory is shared and therefore thread-safety is a non-issue.  Next you’ll need to determine what exactly it is that you want to parallelize.  Often this will be a performance bottle neck that you know most of your users encounter.  From there you have to analyze the particular algorithms, determine how to split up its work, and begin parallelizing. 

The above is a very superficial introduction on how to start parallelizing your application and is by no means complete.  Each application will have its own set of complications when it comes to parallelization.  There are lots of resources on online to get you started and if you’re even thinking of going down this road, the sooner you start the better.

Please stay tuned for part 2 of this series to be posted after our R24 release.

How are you taking advantage of the multi-core revolution? 
Which strategy do you prefer? 
What issues and roadblocks have you encountered?

 

You might also like...

2 Min read
3D InterOp
Software developers in the manufacturing field are often tasked with implementing expert-level algorithms for 3D...
CNC Routing Software 1
7 Min read
3D InterOp
CNC routing software is an indispensable tool that gives manufacturers new levels of precision and speed in product...
Application Lifecycle Management Flow
4 Min read
CGM Modeler
When you hear the term, Application Lifecycle Management (ALM), you likely think about the process that a software...
8 Min read
CGM Modeler
What is Computer Aided Manufacturing The CAM Market Who Uses CAM Software? Trends in CAM What do CAM Software...
7 Min read
3D InterOp
Table of Contents Why industrial automation is important Advantages and Disadvantages of Industrial Automation The...
8 Min read
CGM Modeler
What do you do? What Exactly is FEM? What You Need to Know About Choosing a FEM Modeler FEM and Partial Differential...
5 Min read
CGM Modeler
Computational Fluid Dynamics (CFD) is a type of analysis that provides insight into solving complex problems, and...
2 Min read
CGM Modeler
WRL files are an extension of the Virtual Reality Modeling Language (VRML) format . VRML file types enable browser...
Voxel model example
3 Min read
CGM Modeler
Voxels are to 3D what pixels are to 2D. Firstly -- let’s examine what pixels actually are. Everything you see on your...
Point_cloud_torus
2 Min read
CGM Modeler
Point-cloud modeling is typically used in the process of 3D scanning objects. Rather than defining surfaces through...
Polygonal Modeling
2 Min read
CGM Modeler
Polygonal (or polyhedral) modeling is the most common type of modeling for video games and animation studios. This type...
BREP Model example
2 Min read
CGM Modeler
BRep modeling, or Boundary Representation modeling, is, in CAD applications, the most common type of modeling. BRep is...
4 Min read
3D InterOp
(Stratasys V650 Flex. Source: Javelin-Tech) 3D printing has emerged as a popular 3D model fabrication option. Be it...
CAD System Components
4 Min read
CGM Modeler
Effective computer-aided design (CAD) and computer-aided manufacturing (CAM) programs include the following main...
Voxeldance and Spatial
2 Min read
3D InterOp
To the uninitiated, 3D printing may seem a simple process — download your CAD file and hit print. But the world of...
29556
4 Min read
3D InterOp
Due to different workflows, it is not uncommon to find companies collaborating with one another (e.g. a...
dimension-image.jpg
2 Min read
3D InterOp
Recently I was asked a question about one of the standard test files generated by NIST (National Institute for...
4 Min read
3D InterOp
Part and parcel with model-based engineering is model translation. Because the model is now the specification, accurate...