def get_single_rank(child_node):
    """
    Extract MPI info from IPM XML child node (corresponding to one MPI rank)

    child_node : xml.etree.ElementTree.Element
        child of root node, i.e. ET.parse(filename).getroot()[i]
    """
    i_regions = 6  # "regions" block under root.child

    mpi_node = child_node[i_regions][0]   # "region" block under root.child.regions

    record_list = []
    for leaf in mpi_node[1:]:  # skip the first "modules" tag
        record = {**leaf.attrib, 'time': float(leaf.text)}
        record_list.append(record)

    return record_list