add semaphores, so that waiting only for the closest cells to be initialized, parallelized allocation and initialization