| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | #!/bin/sh# StarPU --- Runtime system for heterogeneous multicore architectures.# # Copyright (C) 2009, 2010, 2013  Université de Bordeaux 1# Copyright (C) 2010, 2013  Centre National de la Recherche Scientifique# # 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.PROGNAME=$0usage(){	echo "Offline tool to draw codelet profile histogram over a traced execution"	echo ""	echo "Usage: $PROGNAME distrib.data"	echo ""	echo "Options:"	echo "	-h, --help          display this help and exit"	echo "	-v, --version       output version information and exit"	echo ""	echo "Report bugs to <@PACKAGE_BUGREPORT@>"	exit 1}if [ "$1" = "-v" ] || [ "$1" = "--version" ] ; then    echo "$PROGNAME (@PACKAGE_NAME@) @PACKAGE_VERSION@"    exit 0fiif [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "" ] ; then    usageficreate_histograms(){inputfile=$1R --no-save > /dev/null << EOFhandle_hash <- function (codelet, arch, hash){mytable <- tablemytable <- mytable[mytable[,1]==codelet,]mytable <- mytable[mytable[,2]==arch,]mytable <- mytable[mytable[,4]==hash,]val <- mytable[,5]# there is certainly a better way to do this !size <- unique(mytable[,3])pdf(paste("$inputfile", codelet, arch, hash, size, "pdf", sep="."));try ( { h <- hist(val[val > quantile(val,0.01) & val<quantile(val,0.99)], col="red", breaks=50, density=10) } )dev.off()}table <- read.table("$inputfile")codeletlist <- unique(table[,1])for (codelet in codeletlist){	archlist <- unique(table[table[,1]==codelet,2])	for (arch in archlist)	{		hashlist <- unique(table[table[,2]==arch,4])		for (hash in hashlist)		{			print(codelet)			print(arch)			print(hash)			handle_hash(codelet, arch, hash)		}	}}EOF}for inputfile in $@do	create_histograms $inputfile done
 |