Imatest 4.3 MCR v9.0 Update

As of Imatest 4.3 we will be upgrading the required Matlab Compiler Runtime library to v9.0 (R2015b). We had upgraded to v8.5 (R2015a) in Imatest 4.2 but several major changes made upgrading again worth the effort. Matlab has introduced a new runtime Execution Engine that dramatically improves the speed and efficiency of core aspects of program execution such as function call overhead and object-oriented programming overhead. What this means for you is that nearly all aspects of Imatest should have improved speed in 4.3 and up.

So how much difference are we talking here? To illustrate, let me pull the curtain back a bit on the Imatest development process. Internally we have a series of tests for Imatest IT that run on an hourly basis on the current major release code. These tests primarily look for changes in results to make sure that nothing we do will cause changes in results, and if they do we’ll get notified immediately. It also lets us know when someone does something they weren’t supposed to that stops a whole module from working! So do to a little timing test I’ve taken a section of the SFRplus test suite and run it on both MCR versions.

speed_test_v85-v90

The first couple runs of both versions are quite slow, this is a consequence of the Matlab JIT execution engine. The first run includes overhead for compiling the code down one step. After about 5 runs though you can see the results start to become a little more stable. v8.5 and v9.0 steady out at ~2.9 and ~2.1. So on average, v9.0 runs 27% faster on this test! Significant changes! Before we celebrate though, it’s worth noting that while these results are useful for illustrating the changes that are coming with Imatest 4.3, you should not assume that all tests will reflect these level of difference. Nor that you will see this level of improvement on your computer. These kinds of results are often highly system and test dependent. Some images and some test setups will see more improvement than this, some will see less. However, overall Imatest 4.3 and on will be that bit faster!

Read More

Matlab Compiler Runtime (MCR) versions

Imatest requires installation Matlab Compiler Runtime (MCR) in order to run. Different versions of Imatest depend on different versions of the library shown in the below table.  Imatest FULL Installations include the appropriate MCR library, while imatest upgrade installations do not.  If you move to a version of Imatest that uses a new MCR library, you will need to download the full installer, otherwise you can save some space and download time by installing the upgrade version.

Imatest Matlab library (MCR) locations
Imatest Version Compiler/Library Typical location (Environment variable and file name for 64-bit English installations) [Substitute C:\Program Files for C:\Program files (x86) in 32-bit computers.]
22.1

Compiler v911
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v911
2021.2

Compiler v910 supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v910
2021.1

Compiler v99
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v99
2020.2

Compiler v98
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v98
2020.1

Compiler v97
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v97
5.2

Compiler v96
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v96
5.1

Compiler v93
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v93
5.0

Compiler v92
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v92
4.5

Compiler v901
supported compilers

C:\Program Files\MATLAB\MATLAB Runtime\v901
4.3,4.4

Compiler v90
supported compilers

%ProgramFiles%\MATLAB\MATLAB Runtime\v90
C:\Program Files (x86)\MATLAB\MATLAB Runtime\v90
4.1,4.2 Compiler v85
supported compilers

%ProgramFiles%\MATLAB\MATLAB Runtime\v85
C:\Program Files (x86)\MATLAB\MATLAB Runtime\v85

3.10,4.0+

Compiler 4.18.1 V81
supported compilers

%ProgramFiles%\MATLAB\MATLAB Compiler Runtime\v81
C:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime\v81

3.7-3.9 Compiler 4.14 V714 %ProgramFiles%\MATLAB\MATLAB Compiler Runtime\v714
C:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime\v714
3.6 Compiler 4.11 V711 %ProgramFiles%\MATLAB\MATLAB Compiler Runtime\v711
C:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime\v711
before 3.6 Compiler 3

%ProgramFiles%\Imatest\toolbox\matlab
C:\Program Files (x86)\Imatest\toolbox\matlab

Note: Matlab’s nomenclature can be extremely confusing. For example, Matlab R2010b (7.11) uses Matlab Component Runtime 7.14 and Compiler 4.14, See http://www.mathworks.com/support/solutions/en/data/1-4GSNCF/?solution=1-4GSNCF

The MCR is included in all 3.6+ downloads.  The download and installation may take several minutes each. When the installation is finished,

  • The MCR should be located in %ProgramFiles%MATLABMATLAB Compiler Runtimev714 (for Imatest 3.7+; …V711 for 3.6) in 32-bit systems (%ProgramFiles% is C:Program Files in English-language Win32 installations) or %ProgramFiles(x86)%MATLABMATLAB Compiler Runtimev714 (or …V711) in 64-bit systems (%ProgramFiles(x86)% is C:Program Files (x86) in English-language Win64 installations)
  • Imatest is located in %ProgramFiles%ImatestImatest in 32-bit systems (%ProgramFiles is C:Program Files in English-language Win32 installations) or %ProgramFiles(x86)%ImatestImatest in 64-bit systems (%ProgramFiles(x86) is C:Program Files (x86) in English-language Win64 installations)
Read More

Path conflicts when other versions of Matlab are installed

X   The procedure entry point svDoubleSclarRemW could not be
located in the dynamic link library libmwservices.dll

If a different version of Matlab from the one used for Imatest has been installed on your system, there is a tiny chance that you may experience a path conflict that causes a similar error message— or Imatest may simply fail to run. This rarely happens because the batch file that initiates Imatest sets the path. Path issues and solutions are discussed in the Imatest IT EXE instructions.

Read More