OpenMP multi-threaded implementation of Gao et al.'s InStruct