Jump to content

Multiple core support - any limitations?

Recommended Posts

We're looking at upgrading our Vectorworks machine...probably going to custom-build a PC. We've got a graphics card and RAM nailed down, but have a question regarding the CPU and core count.


Are there any limitations as to how many cores VW2019 (and beyond) can utilize? A coworker told me that certain apps don't support the use of multiple cores. Is this true for VW or does VW have a limit to how many cores it can utilize at a time? 


A quick look shows a 8-core, 3.6GHz i7 is in our budget...but will that be overkill and would we be better directing our $$$ elsewhere? I've read some VW recommendations, and more cores at a lower speed is preferred over the opposite. Also, how does thread count factor into VW performance? 




Link to comment
  • Vectorworks, Inc Employee

Renderworks is capable of taking advantage of as many cores as you have available and its speed increase will scale proportionately with the number of cores in most cases. Vectorworks itself as of 2019 can utilize up to 4 cores at the moment for many VGM (zooming, panning, OpenGL, sheet layer views), but we expect this to increase to 8+ soon.

Link to comment
  • Vectorworks, Inc Employee
1 minute ago, Mark Aceto said:

In terms of service packs, how soon?

Its totally dependent on how well everything goes with 4, we will be keeping an eye on the metrics that come in and if its nice and stable, we will be able to raise it sooner. If we have stability issues, we wouldn't want to raise the number until they were resolved. Apparently it isn't a matter of a heavy workload to bring more cores into use, just cautiously introducing the new tech.

  • Like 1
Link to comment
  • 1 year later...
On 9/12/2018 at 4:43 PM, PVA - Jim said:

Its totally dependent on how well everything goes with 4, we will be keeping an eye on the metrics that come in and if its nice and stable, we will be able to raise it sooner. If we have stability issues, we wouldn't want to raise the number until they were resolved. Apparently it isn't a matter of a heavy workload to bring more cores into use, just cautiously introducing the new tech.

Hi VW Tech/Engineers.


We really do need someone to fill the huge void left with Jim's absence. 


The CPU and GPU venders keep pumping out devices, and it's not clear if VW makes use of the new tech. And if so, in what way?


For example, hyperthreading. For years, I've been using a 6-core Xeon processor with hyperthreading. It looks like VW is using all 6, plus the logical 6 during renders. So, is Jim's comment about a 4-core limit still accurate? By my experience, it was never accurate. But who am I to really know?


Considering a new PC with either a i7 9700K or i9 9900k. Would VW make use of the i9 hyperthread? 


What would be truly helpful in the System Resources is a list of the vendor technologies and whether or not VW uses them. Another example, one of Jim's emails mentioned that VW does not use SLI (not sure what that is, but it's suppose to be great) and other technologies. Still true. What else? 


Rather than have us search the forum for hardware info, which for the most part is user experiences, start a list and keep it current. 
Telling us to get a gaming rig is not very helpful. And gaming rigs are just plain ugly and unprofessional looking. Yes, that matters. 
We need better guidance. And, really, do we have to ask? 


Please, pretty please. Would you tell us what you know?


What systems are VW staff using?

What are their experiences? 


  • Like 4
Link to comment

The only part of the program that can use the multiple cores is Renderworks.  All of the geometry 3D calculations are done with just one core of the computer and that is because no one in the programming industry has been able to successfully multithread 3D geometry calculations.  The problem is compounded by the speed of current chip technology having plateaued. 

All 3D modelling programs have this logjam of only being able to use one core for the geometry processing and chip speed.    That is why so much effort has been put into  lessening the load on the CPU by switching non geometry calculations to the GPU.




We aren't going to get a substantial performance increases with existing computers unless there is software breakthrough on multithreading.


It is more likely that the future lies in chip technology.  Perhaps quantum chip technology if and when it becomes small enough and affordable enough. 


Link to comment
On 12/14/2019 at 6:09 AM, mike m oz said:

All 3D modelling programs have this logjam of only being able to use one core for the geometry processing and chip speed.    That is why so much effort has been put into  lessening the load on the CPU by switching non geometry calculations to the GPU.


I didn't know this!! How interesting though, especially the link you posted.

It'll be an interesting subject to watch, going forward. I think there's a new paradigm around the corner for future tech. Risc processors? Quantum? chiplet? Who knows!

Link to comment

Mike, thank you the info!


Just still not clear on how the GPU and CPU are working together in rendering.

Does Renderworks offloads processing to the GPU

The i7 9700K does not have hyperthread. The i9 9900k does and with a price bump. 

If the GPU, say a GTX 2080Ti, will now take some of the render load, will the i9's hyperthread be needed? 

Link to comment

That BricsCAD statement should probably be read, in part, as coming from their own situation. It would be preferable for NNA to provide their own detail, like the vendors below, for clarity at least, because I doubt the BricsCAD statement should be used to explain away some, if not many, of the apparent bottlenecks we experience in Vectorworks where multi-threading could alleviate the pain. For example, autosave is listed below, seems obvious, but if that was multi-threaded / backgrounded would we still have the perpetual 5 minute hiccup / beachball,  particularly with large files, that we have now?       







Link to comment

Rendering: (Renderworks and some parts of Hiddenline): All Cores CPU (best atm is the AMD Threadripper 3970X but expensive)

OpenGL: mainly GPU, but also limited by single core CPU (best Performance with Gaming Hardware, no need for Enterprise GPU, the Gaming GPU suit better, you need enough RAM on your GPU to fit your Models, the other specs don't matter much, because they are designed for gaming and therefore mostly overpowered for CAD anyway, also higher screen resolution needs better graphics card)

2D, Viewports, some parts of Hiddenline, PIO: single Core (best price/performance atm is something like the Intel i7 8700k but also the Threadripper 3970x does perform equal)

RAM: non ECC, you need enough to fit your drawings, more is not better (Vectorworks doesn't benefit of ECC)

Autosave: Get yourself a very fast M.2 SSD (best atm is Samsung Evo 970 Plus)


As you can see, there is no ideal system because vectorworks is used in many different ways. So first you need to describe your workflow. Which operating system would you like to use? Which screens do you use? What kind of models do you draw? 2D or 3D?  Do you render? If so, how often and for how long? What components does your current system have? What is the current RAM usage on the graphics card in OpenGL mode in a larger project? What is the current RAM usage in renderworks renderings and hiddenline renderings?

Edited by herbieherb
  • Like 1
Link to comment
  • 1 month later...

I'd argue the AMD 3950x 16 core is the best price to performance CPU for vectorworks at the moment at £750 if you 3d model and use renderworks a lot but dont want to spend the cash on Threadripper or Xeon, its cheaper sibling the 3900x 12 core is also fantastic. The 3950x renders as well as a 2970wx 24 core, and is equal to a i9 9900k in single core.


Smooth Open GL performance is let down by the single core geometry calculations made after each time you move the camera. Very frustrating, the larger the model the longer you wait between camera movements it absolutely kills flow. I think it puts a lot of people off vectorworks over something like sketchup for 3d which is smooth as silk by comparison and what people expect when they work in 3d.


In my experience graphics card VRAM is also one of the most important and overlooked aspects of vectorworks. Especially if you open millions of chrome tabs doing product research and open many vectorworks files at the same time it just fills. Yes consumer gpus are ok, but they can be unstable with large models due to the lack of ECC memory. I've recently switched from a 1080ti to a Amd Radeon vii with 16gb of HBM2 which benefits from being ECC specification memory even though the card isnt officially ECC. It solved many  of the instability problems i was having when you fill the memory. 


I think multicore geometry calculatuons has to happen somehow if vectorworks wants to move forwards with BIM modeling, it is a massive bottleneck in this sort of workflow. This year we have seen an industry shift with cpus going for many many cores. Its only going to multiply from here. Single core IPC improvements are not going to improve much and software relying on single core will be left behind. There needs to be a solution somehow.


There is now a 64 core AMD 'desktop' cpu! A £4k chip that outperforms 2x £10k Xeon chips. Absolutely bonkers but this is where we are heading. 

  • Like 1
Link to comment

HBM2 is actually ECC capable. But the driver must use this ECC capability. The Radeon VII does not do ECC, although it would theoretically be able to do so.
So the fewer crashes you see are not due to an ominous semi ECC.
Typically, in 16GB RAM, there is a single bit flip about four times a week in 24/7 use. About 2-15% of these lead to a calculation problem, or crash. That's a maximum of about 1 noticeable error per 2 weeks on a good working new system without GPU ECC.

Older memory and operation under higher temperatures generally lead to more memory errors. I think your observation is mainly because you are now working on more energy efficient and newer hardware.

Edited by herbieherb
  • Like 1
Link to comment

Ok thanks for clarifying this. From my perspective its very rarely crashing now as opposed to an almost a daily occurrence.  

I was simply pointing out that, even if I am technically not correct about the HBM2 memory, that it is a very good card for stability and a large amount of VRAM without having to spend the money on a professional card, if you can still get hold of one that is. Performance wise it sits between a 1080 and a 1080ti. Not amazing, but absolutely fine for Vectorworks Open GL use.


I have ended up settling on a setup after messing about with various setups including a second hand 2970wx, which although has been great for Renderworks it's not so good for day to day work in Vectorworks as its single core performance is weak.


A DIY build I am using now and I would recommend for a do it all machine for a start up firm:

AMD 3950x with 16 cores on the X570 platform, (this is best of both high core count for Renderworks and market leading single core performance). Could equally use X470 MB as well.

64gb of 3200mhz C16 Ram (the AMD 3000 multiple chiplet design works best with fast ram upto 3600 for high performance),

Radeon Vii with 16gb of Vram.

Storage Corsair M.2 NVME SSD MP510 2TB.

  • Like 2
Link to comment
  • 2 weeks later...

I think this is why Vectorworks still goes slow when I am modeling and zooming in and out in open gl and wireframe. I have a 32 core processor, but it is a 3.0ghz. My laptop performs better as it has a faster CPU speed, but less cores. It is a worthwhile trade off since I do need the extra cores for rendering, but it would be awesome if there was an implementation of more cores being utilized in most of the normal work.

Link to comment

SketchUp recently posted a good explanation of why the problem exists.


In a nutshell, all 3d modeling software are single threaded since 3d model calculation is linear in nature and can then only be processed on a single

thread at the time.


Most calculations necessary to produce a 3d model cannot be made into chunks, independent of each other and then sent to be solved by different



Simplifying to the extreme, let’s take a box with a hole in it as an example:


The box needs to exist in order for the hole to affect it. We could not tell one CPU to create the box and another CPU to create the hole in the

meantime because the hole needs to know where the box is and use its dimensions and position as variables of its own calculations. Therefore the

process of creating a hole in a box cannot be made parallel and thus cannot use multithreading.


Or consider the following: (2+2) - 1. You could send 2+2 to be solved on one thread and X - 1 on the other thread but the second thread would need

to wait on the result of the first one to do its own thing. Therefore multithreading is useless.


SketchUp is not an exception: All 3d modeler out there are single-threaded as far as modeling goes. Some part of a 3d application (like physical simulations in SolidWorks for example) will be able to assign specific tasks to other threads but modeling per se will always be done as a single thread. Some other times, parts of the software that rely on the OS will be able to  be multi-threaded by the OS itself.


It’s for that very reason anyone will recommend you go for the CPU with the fastest clock you can afford because a 3.4GHz processor will calculate a

model faster than a 2.4GHz processor, regardless of how many cores each one has.


CPU Rendering

Rendering can and will take advantage of all your CPU’s core because it can just break down the entire resolution you are trying to render into an

array of chunks and send each core a chunk, cutting render times by an order of magnitude equivalent to the number of cores available to the

rendering engine. So a 6-core CPU will render faster than a 4-core equally clocked CPU.


The lessons for us:

- Get the fastest CPU you can.

- Keep your models as simple as possible to reduce the number of calculations required.


Link to comment

So vectorworks is just really badly optimised then? 


From a users perspective vectorworks pauses a long time in a heavy model in between view movements. Making it quite jaring compared to other 3d modeling programs. There must be an inneficientcy in the software. (3d panning itself is smooth its the waiting between movements and actions). 


What is going to be done about this issue to improve the experience for the end user except to be told we need a faster single core performing cpu


Using a top of the line processor with very high single core performance still has a 3-4 second pause before you can do anything. Its ok just frustrating. 

Link to comment

I agree, it definitely feels like it needs some optimizing. Working in other programs you can rotate a single mesh object with no issues, but in Vectorworks, that same mesh object will take longer to rotate and I find myself rotating, then waiting, then clicking, then waiting for it to update, then finally it will, then I have to move it so repeat the same process.

Link to comment

Don't use meshes if you can avoid them. Vectorworks is not optimized for meshes, but for solids. It just doesn't seem possible to optimize for everything. For example, the developers had to decide to make many viewports with little content or few viewports with a lot of content faster. (They decided to do the second.) Similar dilemmas have probably led to plans consisting of single lines becoming slower with each version, but nicely tidy plans with PIOs, symbols etc. are much more performant nowadays.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...