Threaded FFT with OpenMP
N := 64;
threads := 2;
opts := LocalConfig.getOpts(
rec(dataType := T_Real(64), globalUnrolling := 512),
rec(numproc := threads, api := "OpenMP"),
rec(svct := true, splitL := false, oddSizes := false, stdTTensor := true, tsplPFA := false)
);
transform := TRC(DFT(N)).withTags(opts.tags);
ruletree := RuleTreeMid(transform, opts);
icode := CodeRuleTree(ruletree, opts);
name := "AVX_OMP"::String(threads)::"_DFT"::String(N);
PrintTo(name::".c", PrintCode(name, icode, opts));