INFO: No output directory specified (--dir) INFO: Using directory: "NCrystal_example_20251212_110650" INFO: Regenerating c-file: NCrystal_example.c WARNING: Full-path code-generator "/u/data/pkwi/McStas/mcstas/3.x-dev/bin/mcstas-antlr -I$MCSTAS" not found!! WARNING: Attempting replacement by "mcstas-antlr -I$MCSTAS" DEBUG: CMD: mcstas-antlr -I$MCSTAS -t -o ./NCrystal_example.c NCrystal_example.instr No initialization present? ----------------------------------------------------------- Generating single GPU kernel or single CPU section layout: -> SPLIT 10 at component monochromator -> SPLIT 10 at component powder_sample ----------------------------------------------------------- Generating GPU/CPU -DFUNNEL layout: -> GPU kernel from component origin -> GPU kernel from component source -> GPU kernel from component mono_arm Component monochromator is NOACC, CPUONLY=True ->FUNNEL mode enabled, SPLIT within buffer. -> SPLIT within buffer at component monochromator Component powder_sample is NOACC, CPUONLY=True ->FUNNEL mode enabled, SPLIT within buffer. -> SPLIT within buffer at component powder_sample ----------------------------------------------------------- CFLAGS= -Wl,-rpath,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -Wl,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib/libNCrystal.so -I/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/include -DFUNNEL DEBUG: CMD: mcstas-antlr -I$MCSTAS finished INFO: Recompiling: ./NCrystal_example.out --> launching cmd: ncrystal-config --show buildflags DEBUG: CMD: nvc -o ./NCrystal_example.out ./NCrystal_example.c -lm -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -Wl,-rpath-link,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -L/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -mtune=haswell -fPIC -O2 -isystem /u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/include -DUSE_MPI -lmpi -Wl,-rpath,/opt/nvidia/hpc_sdk/Linux_x86_64/25.9/comm_libs/12.9/openmpi4/openmpi-4.1.5/lib -L,/opt/nvidia/hpc_sdk/Linux_x86_64/25.9/comm_libs/12.9/openmpi4/openmpi-4.1.5/lib -I/opt/nvidia/hpc_sdk/Linux_x86_64/25.9/comm_libs/12.9/openmpi4/openmpi-4.1.5/include -fast -Minfo=accel -acc=gpu -gpu=mem:managed -DOPENACC -Wl,-rpath,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib -Wl,/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/lib/libNCrystal.so -I/u/data/pkwi/McStas/mcstas/3.x-dev/miniconda3/include -DFUNNEL "./NCrystal_example.c", line 93: warning: Routine "mcgenstate" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_particle mcgenstate(void); ^ Remark: individual warnings can be suppressed with "--diag_suppress " "./NCrystal_example.c", line 95: warning: Routine "mcsetstate" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_particle mcsetstate(double x, double y, double z, double vx, double vy, double vz, double t, double sx, double sy, double sz, double p, int mcgravitation, void * mcMagnet, int allow_backprop); ^ "./NCrystal_example.c", line 97: warning: Routine "mcgetstate" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_particle mcgetstate(_class_particle mcparticle, double * x, double * y, double * z, double * vx, double * vy, double * vz, double * t, double * sx, double * sy, double * sz, double * p); ^ "./NCrystal_example.c", line 111: warning: Routine "particle_getvar" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double particle_getvar(_class_particle *p, char *name, int *suc); ^ "./NCrystal_example.c", line 115: warning: Routine "str_comp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int str_comp(char *str1, char *str2); ^ "./NCrystal_example.c", line 143: warning: Routine "particle_getvar_void" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void* particle_getvar_void(_class_particle *p, char *name, int *suc); ^ "./NCrystal_example.c", line 115: warning: Routine "str_comp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int str_comp(char *str1, char *str2); ^ "./NCrystal_example.c", line 175: warning: Routine "particle_setvar_void" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int particle_setvar_void(_class_particle *, char *, void*); ^ "./NCrystal_example.c", line 200: warning: Routine "particle_setvar_void_array" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int particle_setvar_void_array(_class_particle *, char *, void*, int); ^ "./NCrystal_example.c", line 213: warning: Routine "particle_restore" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void particle_restore(_class_particle *p, _class_particle *p0); ^ "./NCrystal_example.c", line 230: warning: Routine "particle_getuservar_byid" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double particle_getuservar_byid(_class_particle *p, int id, int *suc){ ^ "./NCrystal_example.c", line 241: warning: Routine "particle_uservar_init" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] void particle_uservar_init(_class_particle *p){ ^ "./NCrystal_example.c", line 308: warning: Routine "noprintf" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] int noprintf(); ^ "./NCrystal_example.c", line 310: warning: Routine "str_len" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] size_t str_len(const char *s); ^ "./NCrystal_example.c", line 661: warning: Routine "mcget_ncount" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] unsigned long long int mcget_ncount(void); /* wrapper to set mcncount */ ^ "./NCrystal_example.c", line 882: warning: Routine "_randnorm2" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randnorm2(randstate_t* state); ^ "./NCrystal_example.c", line 899: warning: Routine "kiss_srandom" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] uint64_t *kiss_srandom(uint64_t state[7], uint64_t seed); ^ "./NCrystal_example.c", line 901: warning: Routine "kiss_random" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] uint64_t kiss_random(uint64_t state[7]); ^ "./NCrystal_example.c", line 909: warning: Routine "_rand01" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _rand01(randstate_t* state); ^ "./NCrystal_example.c", line 911: warning: Routine "_randpm1" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randpm1(randstate_t* state); ^ "./NCrystal_example.c", line 913: warning: Routine "_rand0max" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _rand0max(double max, randstate_t* state); ^ "./NCrystal_example.c", line 915: warning: Routine "_randminmax" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randminmax(double min, double max, randstate_t* state); ^ "./NCrystal_example.c", line 917: warning: Routine "_randtriangle" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double _randtriangle(randstate_t* state); ^ "./NCrystal_example.c", line 1013: warning: Routine "coords_set" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_set(MCNUM x, MCNUM y, MCNUM z); ^ "./NCrystal_example.c", line 1015: warning: Routine "coords_get" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_get(Coords a, MCNUM *x, MCNUM *y, MCNUM *z); ^ "./NCrystal_example.c", line 1017: warning: Routine "coords_add" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_add(Coords a, Coords b); ^ "./NCrystal_example.c", line 1019: warning: Routine "coords_sub" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_sub(Coords a, Coords b); ^ "./NCrystal_example.c", line 1021: warning: Routine "coords_neg" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_neg(Coords a); ^ "./NCrystal_example.c", line 1023: warning: Routine "coords_scale" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_scale(Coords b, double scale); ^ "./NCrystal_example.c", line 1025: warning: Routine "coords_sp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double coords_sp(Coords a, Coords b); ^ "./NCrystal_example.c", line 1027: warning: Routine "coords_xp" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] Coords coords_xp(Coords b, Coords c); ^ "./NCrystal_example.c", line 1029: warning: Routine "coords_len" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] double coords_len(Coords a); ^ "./NCrystal_example.c", line 4640: warning: variable "num" was declared but never referenced [declared_but_not_referenced] int num = 3; ^ "./NCrystal_example.c", line 5095: warning: variable "randstate" was declared but never referenced [declared_but_not_referenced] randstate_t randstate[7]; ^ "./NCrystal_example.c", line 5014: warning: variable "newlen" was declared but never referenced [declared_but_not_referenced] long newlen = 0; ^ "./NCrystal_example.c", line 6341: warning: variable "status" was set but never used [set_but_not_used] int status; ^ "./NCrystal_example.c", line 7074: warning: missing return statement at end of non-void function "ncrystalsample_surfintersect" [implicit_return_from_non_void_function] } ^ "./NCrystal_example.c", line 7313: warning: variable "tc2" was set but never used [set_but_not_used] Coords tc1, tc2; ^ "./NCrystal_example.c", line 8008: warning: incompatible redefinition of macro "exit" (declared at line 640) [bad_macro_redef] #define exit(...) noprintf() ^ "./NCrystal_example.c", line 8020: warning: Routine "class_Progress_bar_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_Progress_bar *class_Progress_bar_trace(_class_Progress_bar *_comp, _class_particle *_particle) { ^ "./NCrystal_example.c", line 8110: warning: Routine "class_Source_div_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_Source_div *class_Source_div_trace(_class_Source_div *_comp, _class_particle *_particle) { ^ "./NCrystal_example.c", line 8209: warning: Routine "class_NCrystal_sample_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_NCrystal_sample *class_NCrystal_sample_trace(_class_NCrystal_sample *_comp, _class_particle *_particle) { ^ "./NCrystal_example.c", line 8371: warning: Routine "class_Cyl_monitor_trace" will be treated as sequential because its "routine" directive doesn't specify a level of parallelism [no_routine_type] _class_Cyl_monitor *class_Cyl_monitor_trace(_class_Cyl_monitor *_comp, _class_particle *_particle) { ^ "./NCrystal_example.c", line 8386: warning: variable "j" was declared but never referenced [declared_but_not_referenced] int i, j; ^ "./NCrystal_example.c", line 8833: warning: variable "_particle_save" was declared but never referenced [declared_but_not_referenced] _class_particle _particle_save; ^ "./NCrystal_example.c", line 9575: warning: variable "t" was declared but never referenced [declared_but_not_referenced] time_t t; ^ "./NCrystal_example.c", line 9576: warning: variable "ct" was set but never used [set_but_not_used] clock_t ct; ^ "./NCrystal_example.c", line 1517: warning: variable "mcstartdate" was set but never used [set_but_not_used] static long mcstartdate = 0; /* start simulation time */ ^ "./NCrystal_example.c", line 2986: warning: function "strcpy_valid" was declared but never referenced [declared_but_not_referenced] static char *strcpy_valid(char *valid, char *original) ^ mcgenstate: 104, Generating acc routine seq Generating NVIDIA GPU code particle_getvar: 118, Generating acc routine seq Generating NVIDIA GPU code particle_getvar_void: 150, Generating acc routine seq Generating NVIDIA GPU code particle_setvar_void: 177, Generating acc routine seq Generating NVIDIA GPU code particle_setvar_void_array: 202, Generating acc routine seq Generating NVIDIA GPU code particle_restore: 214, Generating acc routine seq Generating NVIDIA GPU code particle_getuservar_byid: 230, Generating acc routine seq Generating NVIDIA GPU code particle_uservar_init: 241, Generating acc routine seq Generating NVIDIA GPU code noprintf: 1565, Generating acc routine seq Generating NVIDIA GPU code str_comp: 1569, Generating acc routine seq Generating NVIDIA GPU code str_len: 1578, Generating acc routine seq Generating NVIDIA GPU code mcget_ncount: 4258, Generating acc routine seq Generating NVIDIA GPU code coords_set: 4692, Generating acc routine seq Generating NVIDIA GPU code coords_get: 4703, Generating acc routine seq Generating NVIDIA GPU code coords_add: 4712, Generating acc routine seq Generating NVIDIA GPU code coords_sub: 4724, Generating acc routine seq Generating NVIDIA GPU code coords_neg: 4736, Generating acc routine seq Generating NVIDIA GPU code coords_scale: 4746, Generating acc routine seq Generating NVIDIA GPU code coords_sp: 4756, Generating acc routine seq Generating NVIDIA GPU code coords_xp: 4764, Generating acc routine seq Generating NVIDIA GPU code coords_len: 4774, Generating acc routine seq Generating NVIDIA GPU code coords_print: 4796, Generating acc routine seq Generating NVIDIA GPU code coords_norm: 4803, Generating acc routine seq Generating NVIDIA GPU code rot_set_rotation: 4849, Generating acc routine seq Generating NVIDIA GPU code rot_test_identity: 4884, Generating acc routine seq Generating NVIDIA GPU code rot_mul: 4895, Generating acc routine seq Generating NVIDIA GPU code rot_copy: 4912, Generating acc routine seq Generating NVIDIA GPU code rot_transpose: 4923, Generating acc routine seq Generating NVIDIA GPU code rot_apply: 4939, Generating acc routine seq Generating NVIDIA GPU code vec_prod_func: 4968, Generating acc routine seq Generating NVIDIA GPU code scalar_prod: 4979, Generating acc routine seq Generating NVIDIA GPU code norm_func: 4983, Generating acc routine seq Generating NVIDIA GPU code sort_absorb_last: 5018, Generating present(particles[:buffer_len],pbuffer[:buffer_len]) Generating implicit firstprivate(tidx) Generating NVIDIA GPU code 5025, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 5034, #pragma acc loop seq 5018, Generating implicit copy(lens[:]) [if not already present] 5025, Generating implicit firstprivate(ll,l) 5036, Accelerator restriction: induction variable live-out from loop: i 5037, Accelerator restriction: induction variable live-out from loop: i 5038, Accelerator restriction: induction variable live-out from loop: i 5039, Accelerator restriction: induction variable live-out from loop: i 5041, Accelerator restriction: induction variable live-out from loop: j 5042, Accelerator restriction: induction variable live-out from loop: j 5043, Accelerator restriction: induction variable live-out from loop: j 5044, Accelerator restriction: induction variable live-out from loop: j 5066, Generating present(pbuffer[:buffer_len]) Generating implicit firstprivate(tidx) Generating NVIDIA GPU code 5070, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 5073, #pragma acc loop seq 5066, Generating implicit copyin(lens[:]) [if not already present] Generating implicit copy(particles[:]) [if not already present] Generating implicit copyin(los[:]) [if not already present] 5073, Generating implicit firstprivate(l) 5090, Generating present(particles[:buffer_len]) Generating implicit firstprivate(accumlen,tidx,mult) Generating NVIDIA GPU code 5094, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 5101, #pragma acc loop seq 5090, Local memory used for targetbuffer,sourcebuffer mccoordschange: 5160, Generating acc routine seq Generating NVIDIA GPU code mccoordschange_polarisation: 5191, Generating acc routine seq Generating NVIDIA GPU code normal_vec: 5208, Generating acc routine seq Generating NVIDIA GPU code solve_2nd_order: 5307, Generating acc routine seq Generating NVIDIA GPU code _randvec_target_circle: 5391, Generating acc routine seq Generating NVIDIA GPU code _randvec_target_rect_angular: 5457, Generating acc routine seq Generating NVIDIA GPU code _randvec_target_rect_real: 5534, Generating acc routine seq Generating NVIDIA GPU code kiss_srandom: 5806, Generating acc routine seq Generating NVIDIA GPU code kiss_random: 5818, Generating acc routine seq Generating NVIDIA GPU code _hash: 5850, Generating acc routine seq Generating NVIDIA GPU code _randnorm2: 5891, Generating acc routine seq Generating NVIDIA GPU code _randtriangle: 5902, Generating acc routine seq Generating NVIDIA GPU code _rand01: 5907, Generating acc routine seq Generating NVIDIA GPU code _randpm1: 5915, Generating acc routine seq Generating NVIDIA GPU code _rand0max: 5923, Generating acc routine seq Generating NVIDIA GPU code _randminmax: 5930, Generating acc routine seq Generating NVIDIA GPU code mcsetstate: 6608, Generating acc routine seq Generating NVIDIA GPU code mcgetstate: 6648, Generating acc routine seq Generating NVIDIA GPU code inside_rectangle: 6708, Generating acc routine seq Generating NVIDIA GPU code box_intersect: 6725, Generating acc routine seq Generating NVIDIA GPU code cylinder_intersect: 6840, Generating acc routine seq Generating NVIDIA GPU code sphere_intersect: 6895, Generating acc routine seq Generating NVIDIA GPU code ncrystalsample_surfintersect: 7065, Generating implicit acc routine seq Generating implicit acc routine seq Generating NVIDIA GPU code init: 7979, Generating update device(_monochromator_var,_source_var,_powder_sample_var,_instrument_var,_mono_out_var,_mono_arm_var,_powder_pattern_detc_var,_origin_var) class_Progress_bar_trace: 8020, Generating acc routine seq Generating NVIDIA GPU code class_Source_div_trace: 8110, Generating acc routine seq Generating NVIDIA GPU code class_NCrystal_sample_trace: 8209, Generating acc routine seq Generating NVIDIA GPU code 8313, Reference argument passing prevents parallelization: xsect_abs 8315, Reference argument passing prevents parallelization: xsect_scat class_Cyl_monitor_trace: 8371, Generating acc routine seq Generating NVIDIA GPU code raytrace_all_funnel: 8743, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8747, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8747, Generating implicit firstprivate(mpi_node_rank,_particle,seed,ncount) 8757, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8762, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8757, Local memory used for .inl_.inl_c_1989_9333,.inl_.inl_.inl_b_1963_1995_9338,.inl_.inl_.inl_.X2143_1962_1994_9337,.inl_.inl_b_1985_9332,.inl_.inl_c_1978_9322,.inl_.inl_.inl_b_1963_1984_9327,.inl_.inl_.inl_.X2143_1962_1983_9326,.inl_.inl_b_1974_9321,.inl_.inl_.X2127_1973_9316,.inl_.inl_c_1970_9315,.inl_c_9348,.inl_.inl_b_1969_9313,.inl_.inl_.X2143_1968_9312,.inl_b_9305,.inl_.X2126_9304,.inl_.X2127_9299,.inl_c_9307,.inl_.X2125_9295,.inl_a_9291,.inl_c_9359,_particle_save,.inl_.inl_c_1978_9374,.inl_.inl_.inl_b_1963_1984_9379,.inl_.inl_.inl_.X2143_1962_1983_9378,.inl_.inl_b_1974_9373,.inl_.inl_c_1970_9367,.inl_.inl_.inl_.X2143_1962_1994_9389,.inl_.inl_.X2143_1968_9364,.inl_.inl_b_1969_9365,.inl_.X2127_9351,.inl_.inl_b_1985_9384,.inl_c_9296,.inl_.inl_.inl_b_1963_1995_9390,.inl_.inl_.X2127_1973_9368,.inl_a_9343,.inl_.X2125_9347,.inl_.X2126_9356,.inl_b_9357,.inl_.inl_c_1989_9385 8828, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8831, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8867, Generating present(particles[:livebatchsize]) Generating implicit firstprivate(livebatchsize) Generating NVIDIA GPU code 8870, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */ 8867, Local memory used for _particle_save,.inl_c_9509,.inl_.inl_c_1978_9524,.inl_.inl_.inl_b_1963_1984_9529,.inl_.inl_.inl_.X2143_1962_1983_9528,.inl_.inl_b_1974_9523,.inl_.inl_c_1970_9517,.inl_.inl_.inl_.X2143_1962_1994_9539,.inl_.inl_.X2143_1968_9514,.inl_.inl_b_1969_9515,.inl_.X2127_9501,.inl_.inl_b_1985_9534,.inl_c_9498,.inl_.inl_.inl_b_1963_1995_9540,.inl_.inl_.X2127_1973_9518,.inl_a_9493,.inl_.X2125_9497,.inl_.X2126_9506,.inl_b_9507,.inl_.inl_c_1989_9535 finally: 9136, Generating update self(_monochromator_var,_source_var,_powder_sample_var,_instrument_var,_mono_out_var,_mono_arm_var,_powder_pattern_detc_var,_origin_var) mcenabletrace: 6050, Generating update device(mcdotrace) DEBUG: CMD: nvc finished INFO: ===