I'm using CAMB with a modified version of Cobaya which adds an interface to `set_w_a_table` to allow for more general dark energy models. This seems to work fine for some datasets (such as the new DESI), but when I use a cmb primary (here planck_npipe_highl_camspec.ttteee) I run into segmentation faults:
Code: Select all
[cpu-q-259:34124:0:34124] Caught signal 11 (Segmentation fault: address not mapped to object at address 0xfffffffc03fc9c00)
==== backtrace (tid: 34124) ====
0 0x0000000000012cf0 __funlockfile() :0
1 0x00000000001e7ed7 nonlinear_mp_find_() ???:0
2 0x00000000000fa1aa nonlinear_mp_find_pk_() ???:0
3 0x00000000001dadac nonlinear_mp_p_lin_() ???:0
4 0x00000000001e1bcb nonlinear_mp_sigma_integrand_() ???:0
5 0x00000000001dbcfe nonlinear_mp_sigma_integral_() ???:0
6 0x00000000001db86c nonlinear_mp_neff_() ???:0
7 0x00000000001f30d2 nonlinear_mp_halomod_init_() ???:0
8 0x00000000000f8d32 nonlinear_mp_hmcode_() ???:0
9 0x00000000000f64b1 nonlinear_mp_thalofit_getnonlinratios_() ???:0
10 0x0000000000168786 cambmain_mp_makenonlinearsources_() ???:0
11 0x0000000000163c4d cambmain_mp_timesourcestocl_() ???:0
12 0x00000000001e99d4 camb_mp_camb_transferstopowers_() ???:0
13 0x000000000000617e ffi_call_unix64() ???:0
14 0x0000000000005b2f ffi_call() ???:0
15 0x00000000000145d6 ???() /usr/lib64/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so:0
16 0x0000000000014ae5 ???() /usr/lib64/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so:0
17 0x000000000023e8c9 _PyObject_MakeTpCall() ???:0
18 0x00000000001eaa67 _PyEval_EvalFrameDefault() ???:0
19 0x00000000001f736c _PyEval_EvalFrameDefault() ???:0
20 0x00000000002c9d73 _PyAST_Compile() ???:0
21 0x0000000000208445 _PyObject_Call() ???:0
22 0x00000000001eec60 _PyEval_EvalFrameDefault() ???:0
23 0x000000000027218d _PyFunction_Vectorcall() ???:0
24 0x000000000024440c Py_ReprLeave() ???:0
25 0x000000000024475f PyObject_CallFunctionObjArgs() ???:0
26 0x0000000000002b4f loglikelihood() /home/ano23/PolyChordLite/pypolychord/_pypolychord.cpp:43
27 0x00000000000ac77a interfaces_modulepolychord_c_interface_mp_loglikelihood_() ipo_out.f:0
28 0x0000000000055170 calculate_module_mp_calculate_point_() ???:0
29 0x0000000000054642 chordal_module_mp_slice_sample_() ???:0
30 0x0000000000052b13 chordal_module_mp_slicesampling_() ???:0
31 0x000000000003382b nested_sampling_module_mp_nestedsampling_() ???:0
32 0x0000000000031e50 interfaces_module_mp_run_polychord_full_() ???:0
33 0x00000000000ab0da polychord_c_interface() ???:0
34 0x00000000000aa0eb run_polychord() ???:0
35 0x00000000000ad632 run_polychord() ???:0
36 0x0000000000003dfd _INTERNALbc13af1a::run_pypolychord() /home/ano23/PolyChordLite/pypolychord/_pypolychord.cpp:248
37 0x0000000000243d17 Py_ReprLeave() ???:0
38 0x000000000020859e _PyObject_Call() ???:0
39 0x00000000001f3904 _PyEval_EvalFrameDefault() ???:0
40 0x000000000027266d _PyFunction_Vectorcall() ???:0
41 0x0000000000208445 _PyObject_Call() ???:0
42 0x00000000001eec60 _PyEval_EvalFrameDefault() ???:0
43 0x00000000002ce2a9 PyEval_EvalCode() ???:0
44 0x000000000035a55d _PyInterpreterState_SetConfig() ???:0
45 0x000000000035a5fa _PyInterpreterState_SetConfig() ???:0
46 0x000000000035a6d0 _PyInterpreterState_SetConfig() ???:0
47 0x000000000035a9a2 _PyRun_SimpleFileObject() ???:0
48 0x000000000035aa84 _PyRun_AnyFileObject() ???:0
49 0x000000000035ad8e Py_RunMain() ???:0
50 0x000000000035ba49 Py_BytesMain() ???:0
51 0x000000000003ad85 __libc_start_main() ???:0
52 0x000000000040069e _start() ???:0
=================================
I've also checked and the seg fault occurs when I record the last attempted sampling point and pass that to camb outside of cobaya.
Thanks for any suggestions!
Adam