How to optimize Magics performance

Recommended system requirements and other tips & tricks

To get the most out of your software, there are 3 essential ingredients that all play a role
 

  • Optimal hardware specifications – available memory and processing capacity play a great role in having a smooth experience
  • Correct software versions – ensuring you have the best combinations in terms of compatibility and (latest) updates
  • Efficient usage – how the software is used and configured is the last, but not least, ingredient to optimize your workflows

 

Hardware specifications

For each release of Magics, the minimum (recommended) hardware requirements can be found in the respective release notes (see related articles). But depending on your needs and expectations, we can recommend better hardware requirements that will make Magics run even smoother.

GPU

Magics uses special hardware to show 3D pictures. This hardware is called a "graphics card" or a “GPU.” Magics is developed using a so-called "graphics API" (a graphical application programming interface like Vulkan, Direct3D, Metal, or OpenGL), to make the graphics card render your data in Magics. The API is not specific to a certain brand of GPU. It provides generic functionality to pass triangles and other information to the GPU. 

The interactions between hardware and software are very complex, so it's hard to predict performance for any given type of graphics card. We can make some general recommendations, though. For graphics cards (or GPUs) the two recommended chipsets are:

  • NVIDIA GeForce
  • AMD Radeon

These are typical “gaming cards.” They perform well, have good driver support and are available both for desktops and laptops. There is a lot of variation (different generations, brands, amount and type of memory, processing units,...) so it's impossible to cover all options. 

General recommendations

In general, acceptable cards should have:

  • At least DirectX 11.1 support
  • At least 2 GB of dedicated GPU memory
  • A memory interface at least 256 bits wide

To get to more high-end cards, also look for:

  • Vulkan and DirectX 12 support
  • At least 4 GB of dedicated GPU memory

Memory is usually the most important factor. For applications to work smoothly, all their data should fit in the GPU's on-board memory. With 1 GB of GPU memory it is already possible to smoothly handle a couple of million triangles. For higher triangle counts (10 – 30 million) at least 2 GB is required. At the time of writing, it is possible to buy cards with up to 8 or even 16 GB of memory at reasonable costs. If really needed, GPUs with up to 48GB of memory are available, but their price is a lot higher.  

The general, timeless recommendation is: "buy a GeForce or Radeon graphics card that supports at least DirectX 11.1 and costs 1,000 euros/dollars or more"

Driver quality and GPU 'conformity' have gone up in the last decade, so fewer driver-related issues occur, but historically we have had most problems with NVIDIA Quadro, ATI/AMD FireGL, ATI/AMD FirePro, and Intel integrated GPU chipsets, so we still advise against them. 

Note that these recommendations are not a guarantee! Even 'the best GPU ever' might be incompatible with some specific hardware.

 
 

What about multiple GPUs?

At the time of writing, most of our software uses one single GPU, and uses it exclusively for visualization. So concepts like SLI or other multiple GPU systems will likely not really show any benefit.

 
 

What about tensor cores?

General purpose computation power — like extra tensor cores — are currently mostly unused in our applications.

 
 

What about ray tracing cores?

Our applications do not make use of RT cores.

 
 
 
 

CPU

Since Magics is a Windows-based application, any general-purpose CPU that is supported on the latest Windows platform should be able to at least launch and run Magics. Any modern CPU from the main CPU vendor’s Intel and AMD would support the application.
However, Magics is a multi-faceted application that performs multiple tasks throughout its runtime to provide its intended user experience. Different tasks are optimized differently and hence can take advantage of different capabilities of the CPU.

General recommendations

There are 2 combinations of hardware criteria for the CPU that can affect Magics' performance:

  1. Clock speed and cache sizes
  2. Core counts and SIMD support

The two recommended CPU vendors are: 

  • Intel
  • AMD 

In recent years, Intel CPUs have supported multi-core architectures with cores of different specifications, mainly grouped into performance (P-cores) and efficiency (E-cores) cores. For better performance of Magics, it is recommended to use an Intel CPU with more performance cores to boost the overall computation capabilities of the system.  

 
 

What about CPUs with high clock speeds and large caches?

Modern desktop CPUs can now exceed single core speeds of more than 6GHz on the high-end desktop market, which can be useful to process large amounts of synchronous (back-to-back) tasks quickly on the system. As the UI and some interactive operations in Magics are primarily executing tasks back-to-back, CPU with higher clock speeds should result in a smoother UI and interactive operations inside Magics. Since Magics is an application that runs many different tasks, having a larger CPU cache size can also help the application stay responsive. Hence, a CPU with a combination of a high clock speed and large cache sizes can result in an improvement of the application performance. 

 
 

What about CPUs with many cores and SIMD support?

CPUs with many cores can be useful to process large amounts of data in a parallelizable program to be able to perform the task in less time than it would take to run it on a single or lesser number of cores. In Magics, the different cores of your CPU are used to perform computations involving large meshes in many different operations to speed up the operation times.

The mesh operations that can take advantage of the multiple cores, will usually allocate as many cores as possible on the system to perform the task optimally whenever possible. In addition to having multiple cores, it is an additional benefit for operations if the CPU also supports modern SIMD instructions, such as AVX-512, that can further speed up the operations. 

While increasing the core counts can result in higher performance, it’s not always a linear increase in performance. As the number of cores increases past 16 cores, the increase in performance is probably only noticeable with parts with a very large number of triangles. 

 

There are modern CPUs where some cores are slower than other cores in the CPU, and this can have a negative side effect as the operation time can also be limited by the slowest core that runs part of the operation. 

 

 
 
 
 

Memory

Magics is a very memory-intensive application since it primarily deals with meshes that can require large memory pools to function efficiently. Therefore more system memory is better for Magics application in general. 

General recommendations

The recommended amount of memory for Magics is 16GB. However, if you are preparing large builds with large meshes or a large number of parts, you will have better experience using 32GB or more of memory. 

 
 

General pitfalls with using system memory sub-optimally. 

Running multiple applications can also reduce the memory headroom that is available for Magics to perform optimally. You should run a minimal number of applications in the background while also working actively on a Magics application instance. System memories also come in different speeds, but the effect of increased memory speed is minimal on the Magics application. Therefore, choose the most optimal memory type for your CPU and avoid very expensive high-speed memories. 

One key reason Magics can experience extreme slowdowns is when the system memory is completely saturated (overused), and the system starts paging the application memory to storage. It is good to examine your Task Manager statistics when you experience slowdowns to observe if your system memory is saturated. A saturated system memory will usually result in memory usage exceeding 95% and the disk usage being unusually high at over 80% for extended periods of time. If you were saturating your system memory frequently, it probably means you need more memory than you have currently in your system and should add more memory for a better experience. 

Also noteworthy is if you are using a system with an integrated graphics card, usually your graphics memory is also shared with your system memory. As such, more system memory might be needed in general to load, process, and render parts in such systems. 

 
 

 
 
 
 

Software versions

Ensure you have the best combinations in terms of compatibility and (latest) updates.

Materialise products

With each release of Magics, further improvements are made that will always increase the performance. So it is always advised to upgrade to the latest major version of a product, or at a minimum to the latest maintenance release of a major version. Keep in mind that there is an End of Life policy for every software version, after which support and maintenance are no longer available and proper working of the software can no longer be guaranteed.
Magics is regularly used in combination with other Materialise products, often even embedded in Magics itself. For all of these products, it is recommended to use the latest version that is declared compatible with your Magics version. This is advised for products as MatConvert, e-Stage, Simulation module, Build Processor System, etc.

Ensure that all licenses are in place when upgrading Magics or related components.  If any help is needed, please read:

Reactivating your license

Missing CAD import(s) after Magics upgrade

 
 
 

Operating system

It is important to run Magics on the correct Windows operating system.  The required operating system is listed in the release notes of the respective Magics version.  Please note that Materialise Software will discontinue supporting an operating system, or a specific version of an operating system, from the moment that the OS vendor discontinues support.

 
 

Drivers

It is always important to keep your drivers up to date. Having GPU drivers up to date is especially crucial. The latest GPU drivers can be found at their manufacturer's site:

 
 
 
 

Usage

File formats & data size 

In order to optimize performance further, it is key to find the right balance between using ‘light’ data formats and keeping data size under control.

  • File formats — every file format has its own advantages and disadvantages. Each data format uses one or more data types to store its information. Depending on where you are in your workflow, it might even be advisable (or needed) to use a different data type. 
  • Data size — the size of data will largely influence the performance, as data size and memory and processor consumption often go hand in hand. Reducing data size without compromising on geometry accuracy is a win-win.

Which data type or format should I use?

Magics supports different types of data and file formats natively, while it supports even more data types and file formats upon import/export.

Generally speaking, geometry in Magics is represented either as BREP data or mesh data. Additionally, a few other, more specific data types are supported as well, such as beam lattices, textures, parametric support, etc.

In case a CAD file is available, we recommend using the BREP representation for data preparation instead of converting the geometry to mesh. Using BREP, you can perform native CAD editing, which is faster and has no need of taking into account any accuracy considerations.

For build preparation, at this moment, a conversion to mesh is needed, which Magics will do automatically when bringing data from a part scene to a platform scene.

 
 

How can I minimize data size?

For mesh-based data formats and types, the size of the data scales up with the number of triangles, which in turn scales up the memory and processor consumption. So keeping the amount of triangles under control is advised to have a smoother user experience. Magics uses tolerance and accuracy values all throughout the software, which will allow Magics to limit the number of triangles to what is needed to have the needed accuracy. Specifying a realistic and correct value for these parameters plays a crucial role in keeping data size under control.

If the data size is extremely big, a triangle reduction can always be tried to see if excess triangles can be removedcounterintuitive without jeopardizing needed or expected accuracy.  

While it might be counterintuitive, reducing triangles can even ‘increase' the quality of the part: having a square (flat) plane represented by 2 triangles is more accurate and correct than having it represented by 1,000 triangles.

 

Another means of keeping the data size under control is through the concept of virtual copies. Having one master part (the one that can be edited in a part scene) and using 10 virtual copies on the platform scene, will be significantly more efficient compared to having 10 actual copies (10 identical master parts) on a platform scene.

 
 
 
 

Licensing

One cause of slow behavior in Magics could be when being connected to a floating license server that is no longer active or needed.

  • In case you have a local, node-locked license, and no dependency on a floating license, it is best to remove any floating license connections
  • In case you do need a floating license, it is good to ensure that all the server names listed in the license wizard are currently active, reachable, and correctly configured for use as a floating license server. If there are entries that are no longer valid, remove them. Ideally, only one floating license server is configured in your local Magics application.
     
 
 
 
 

 

Was this article helpful?

Can’t find what you’re looking for?

Our customer service team is happy to help!