Invalid MEX file whe running sensitivity analysis / M1 Mac / 6.1 /

Hello,

Im currently trying to replicate the sensitivity analysis of this nice video by Willi Mutschler (https://www.youtube.com/watch?v=SH7J74-zsRY&t=1158s).

Sadly, even though I use 100% the same code as Mr. Mutschler (copied from his website) I get the following message when it come to the sensitivity analysis wrt the Taylor-Rule coefficients.

Invalid MEX-file
‘/Applications/Dynare/6.1-arm64/mex/matlab/maca64-23.2-24.1/qmc_sequence.mexmaca64’:
dlopen(/Applications/Dynare/6.1-arm64/mex/matlab/maca64-23.2-24.1/qmc_sequence.mexmaca64,
0x0006): symbol not found in flat namespace ‘_quadmath_snprintf’

Error in gsa.stability_mapping (line 157)

  •        [lpmat] = qmc_sequence(np, int64(1), 0, Nsam)';*
    

Error in gsa.run (line 314)

  • x0 = gsa.stability_mapping(OutputDirectoryName,options_gsa,M_,oo_,options_,bayestopt_,estim_params_);*

Error in NK_linear_optimal_rule1.driver (line 506)
gsa.run(M_,oo_,options_,bayestopt_,estim_params_,options_gsa);

Error in dynare (line 310)

  • evalin(‘base’,[fname ‘.driver’]);*

I have appended the .log file swell as the rest of the code. I run Matlab 2024a with a students licences on a Macbook M1 (ARM/silicone) with 8gb Ram and use the package installed version of dynare 6.1. which I downloaded via the dynare website. The rest of the model (IRF, simulations etc.) runs fine so Im curious what the problem may be.

Thank you to anyone trying to help.
All the best,
David

NK_linear_common.inc (3.1 KB)
NK_linear_optimal_rule1.log (5.2 KB)
NK_linear_optimal_rule1.mod (585 Bytes)

Can you other Dynare files using the mex-files? And are you using the ARM version of Matlab together with the ARM Dynare package?

Thank you for the timely reply!

According to Matlab I run the 64 bit Maca64 version, I believe that’s the arm version of Matlab. In terms of Dynare I run the 6.1. arm version. My operating system is also up to date.

Can you give me a dynare command that would run such a Mex-file? If I open a file on the Mex path “/Applications/Dynare/6.1-arm64/mex/matlab/maca64-23.2-24.1/cycle_reduction.mexmaca64” I get the message that I can’t edit these in Matlab.

Thank you for your further help!

Can you for example run the example1.mod from the Dynare examples folder?

Yes, example1.mod runs fine like butter. I think it might be a problem specific to the routine that performs the sensitivity analysis.

I have tried again to run the sensitivity analysis now on the example one file with params psi and tau and I get the same error as with Mutschlers example above. I append both the changed example 1.mod and the log.

example1.log (6.3 KB)
example1.mod (1.9 KB)

The error message is again:

Warning: dynare_sensitivity: dynare_sensitivity does only support order=1,
*resetting to order=1. *
> In gsa.run (line 93)
In example1.driver (line 376)
*In dynare (line 310) *
Invalid MEX-file
‘/Applications/Dynare/6.1-arm64/mex/matlab/maca64-23.2-24.1/qmc_sequence.mexmaca64’:
dlopen(/Applications/Dynare/6.1-arm64/mex/matlab/maca64-23.2-24.1/qmc_sequence.mexmaca64,
0x0006): symbol not found in flat namespace ‘_quadmath_snprintf’

Error in gsa.stability_mapping (line 157)

  •        [lpmat] = qmc_sequence(np, int64(1), 0, Nsam)';*
    

Error in gsa.run (line 314)

  • x0 = gsa.stability_mapping(OutputDirectoryName,options_gsa,M_,oo_,options_,bayestopt_,estim_params_);*

Error in example1.driver (line 376)
gsa.run(M_,oo_,options_,bayestopt_,estim_params_,options_gsa);

Error in dynare (line 310)

  • evalin(‘base’,[fname ‘.driver’]);*

@sebastien and @wmutschl Any ideas?

I have found the cause of the problem and fixed it in the (upcoming) unstable snapshot. The fix will also be in Dynare 6.2.

If you need the fix right now, then a possibility is to copy the qmc_sequence binary from the (upcoming) snapshot into your Dynare 6.1 installation.

1 Like

Thank you Sebastien for fixing the problem!

All the best,
David

@sebastien: are you sure this is fixed? I downloaded the recent unstable version and ran tests/gsa/ls2003.mod and get:

Invalid MEX-file '/Applications/Dynare/6-2024-01-18-0833-arm64/mex/matlab/maca64-23.2/qmc_sequence.mexmaca64':
dlopen(/Applications/Dynare/6-2024-01-18-0833-arm64/mex/matlab/maca64-23.2/qmc_sequence.mexmaca64, 0x0006): symbol not found in flat namespace '_quadmath_snprintf'

More specifically: in unstable it is fixed in the x86_64 version, but not in the arm64 version… at least on my machine

@Scholzda does it work for you?

AH, sorry, I made a mistake: it is fixed for both versions, sorry to bother.