As it turns out, I had decent multicore scaling, it was my benchmarking
function measuring time incorrectly...