| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | #!/usr/bin/env python3# -*- coding: utf-8 -*-# StarPU --- Runtime system for heterogeneous multicore architectures.## Copyright (C) 2020       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 ofthe 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 = Nonedef 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 = 0with 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)
 |