Error -23032 When Using the Linear Programming Simplex Method VI in LabVIEW

Updated Oct 8, 2024

Reported In

Software

  • LabVIEW

Issue Details

The Linear Programming Simplex Method VI returns an error -23032 on an Intel-based PC but works properly on a Ryzen-based PC. How can I resolve this issue?

Solution

A workaround for this issue is to add a new system environment variable MKL_DEBUG_CPU_TYPE with a value of "4".
To do this, right-click the Windows start button on the bottom-left corner and select System from the pop-up menu.

image.png

On the right side of the opened window, under the "Related settings" list, select Advanced system settings.

image.png

After opening the "Advanced system settings" window, navigate to the Advanced tab and select Environment Variables.

image.png

To create a new environment variable press the New button that is located under the "System variables" section and enter the above-mentioned variable name and the value.

image.png

After adding the name and the value, press the OK button which will create a new variable, and click on the OK button of the "Environment Variables" window to save the modifications.

 

Additional Information

This error occurs because of a tiny difference in floating point arithmetic which makes the VI unable to find the maximum. On the Ryzen-based PC, due to these slight floating point differences, the algorithm is able to find the maximum.
This variable will force the Intel math libraries to use AVX instructions. If you don't add the variable, the library will decide what to use between SSE/AVX/AVX2.