< Back

Tecplot on Apple Silicon


Are Tecplot products supported on Apple Silicon (aka M1, M2, and M3 chips)? 

Yes. Tecplot 360, FieldView, Tecplot Focus, and PyTecplot all run on Apple Silicon based machines. That said, you’ll need Rosetta 2 to run them. If Rosetta 2 isn’t already installed on your mac, see this article for installation instructions. 

 

But PyTecplot in batch mode doesn’t work on my Apple Silicon machine! 

In order to use PyTecplot in batch on an Apple Silicon machine, you must use an Intel-64 version of Python and install PyTecplot in that Intel based Python environment. PyTecplot in batch will not work with Python built with the ARM64 architecture. 

The reason Python built with the ARM64 native architecture causes errors is because PyTecplot is effectively a thin layer over the Tecplot 360 engine, which is built on Intel-based Mac machines.  The Python executable needs to have the same machine architecture as the Tecplot 360 engine libraries. 

The good news is that the ‘universal2’ installation of Python includes an Intel-64 Python executable. To ensure compatibility with PyTecplot, invoke Python from a command line with the python3-intel64 command instead of just python3. 

For example, to run a PyTecplot script (an example script can be found at /Applications/Tecplot 360 EX 2022 R2/pytecplot/examples/00_hello_world.py), use: 

    "/Applications/Tecplot 360 EX 2022 R2/bin/tec360-env" -- python3-intel64 -O 00_hello_world.py 

instead of: 

     "/Applications/Tecplot 360 EX 2022 R2/bin/tec360-env" -- python3 -O 00_hello_world.py

 

Other Considerations with Batch Mode

If you are trying to use 3rd party python packages such as numpy in batch mode, you may run into an error that looks something like this:

    File "/scripts/python/yourfile.py", line 2, in <module>
    import numpy as np
    File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/numpy/__init__.py", line 135, in <module>
    raise ImportError(msg) from e
    ImportError: Error importing numpy: you should not try to import numpy from
    its source directory; please exit the numpy source tree, and relaunch
    your python interpreter from there.

buried within many lines or errors you will see something like “…is an incompatible architecture (have ‘arm64’, need ‘x86_64′)…’

To fix this, you simply need to switch to an x86 version of the python package. You can accomplish this with only two commands in terminal:

    "pip uninstall numpy"
    "arch -x86_64 pip install numpy"

It may be worth saving an alias for this if you have multiple python packages you want to use. If you revert to a native arm version of python, remember to switch these packages back!

 

PyTecplot and Connected Mode 

With that said – you can use either ARM64 or Intel-64 Python when running PyTecplot in connected mode to Tecplot 360.  This is because in connected mode the Python executable is not loading the Tecplot 360 engine libraries, but instead it is communicating with Tecplot 360 via sockets. The socket communication doesn’t have the same architecture limitation.  

Are there any problems with Tecplot products on Apple Silicon? 

On macOS, Tecplot 360 is known to be slower to render views, especially with a large number of cells.  This is because Apple is transitioning away from OpenGL and to Metal for their hardware rendering.  Some of the OpenGL optimizations used by 360 are no longer available on Apple’s graphics cards.  That said, most users seem to be happy in their day-to-day workflows. Some even report drastic speed improvements for CPU-based operations (even running under Rosetta 2). 

If you find Tecplot 360 isn’t fast enough for you on your Apple Silicon machine, email us at support@tecplot.com, and give Fieldview a try. 

 

Are there any problems with Tecplot products on Apple Silicon? 

The Tecplot 360 and FieldView development teams are actively working on rendering improvements and a direct port to Apple Silicon.  We expect to have Beta builds available in late 2024 with production builds available in 2025.  This work will improve rendering performance and obviate the need to use Intel Python with PyTecplot.