Edit: Sorry, realized that's not what you were asking for.
How about this quite crude approach:
local_cell = Cell(submesh, local_index)
bb = mesh.bounding_box_tree()
global_index = bb.compute_first_entity_collision(local_cell.midpoint())
As far as I know, the mapping between a submesh and parent mesh isn't stored...(?)