def parse_timing(self, nids=None):
        """
        Parse the timer data in the main output file(s) of Abinit.
        Requires timopt /= 0 in the input file (usually timopt = -1)

        Args:
            nids: optional list of node identifiers used to filter the tasks.

        Return: :class:`AbinitTimerParser` instance, None if error.
        """
        # Get the list of output files according to nids.
        paths = [task.output_file.path for task in self.iflat_tasks(nids=nids)]

        # Parse data.
        from .abitimer import AbinitTimerParser
        parser = AbinitTimerParser()
        read_ok = parser.parse(paths)
        if read_ok:
            return parser
        return None