A hierarchical fast direct solver for distributed memory machines with manycore nodes