12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- # StarPU --- Runtime system for heterogeneous multicore architectures.
- #
- # Copyright (C) 2020-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
- #
- # StarPU is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published by
- # the Free Software Foundation; either version 2.1 of the License, or (at
- # your option) any later version.
- #
- # StarPU is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- #
- # See the GNU Lesser General Public License in COPYING.LGPL for more details.
- #
- import sys
- """
- STARPU_FXT_EVENT_DEFINES is generated by configure and is the output of
- the following command:
- grep -E "#define\s+_STARPU_(MPI_)?FUT_" src/common/fxt.h mpi/src/starpu_mpi_fxt.h | grep 0x | grep -v 0x1 | cut -d : -f 2
- """
- fxt_codes_raw = """
- @STARPU_FXT_EVENT_DEFINES@
- """
- PROGNAME=sys.argv[0]
- number_events_path = None
- def usage():
- print("Convert event keys in number_events.data to event names")
- print("")
- print("Usage: %s <number_events.data path>" % PROGNAME)
- print("")
- print("Options:")
- print(" -h, --help display this help and exit")
- print(" -v, --version output version information and exit")
- print("")
- print("Report bugs to <@PACKAGE_BUGREPORT@>")
- sys.exit(1)
- if len(sys.argv) == 2:
- if sys.argv[1] == '-v' or sys.argv[1] == '--version':
- print("%s (@PACKAGE_NAME@) @PACKAGE_VERSION@" % PROGNAME)
- sys.exit(0)
- elif sys.argv[1] == '-h' or sys.argv[1] == '--help':
- usage()
- else:
- number_events_path = sys.argv[1]
- else:
- usage()
- def man():
- print("Sepecify file containing event stats")
- sys.exit(1)
- # Process fxt_code_raw content to ease the conversion:
- fxt_codes = dict()
- for line in fxt_codes_raw.split("\n"):
- elements = line.split()
- if len(elements) == 3:
- key = int(elements[2][2:], 16)
- assert key not in fxt_codes
- fxt_codes[key] = elements[1]
- # Convert content of the file:
- nb_events = 0
- with open(number_events_path, 'r') as f:
- for line in f:
- elements = line.split()
- if len(elements) == 2:
- key = int(elements[0][2:], 16)
- nb = int(elements[1])
- nb_events += nb
- if key in fxt_codes:
- print("%12d %s" % (nb, fxt_codes[key]))
- else:
- print("%12d %s" % (nb, elements[0]))
- print(" TOTAL: %d" % nb_events)
|