Discovering closed frequent itemsets on multicore: Parallelizing computations and optimizing memory accesses