ddn-ime-evaluation/benchmark/eval_analysis_v2.R

125 lines
4.5 KiB
R
Executable File

#!/usr/bin/env Rscript
library(sqldf)
library(plyr)
library(plot3D)
library(ggplot2)
args = commandArgs(trailingOnly=TRUE)
print(args)
if (2 != length(args)) {
print("Requires 2 parameters)")
q()
}
file_db = args[1]
folder_out = args[2]
print(file_db)
make_facet_label <- function(variable, value){
return(paste0(value, " KiB"))
}
to_fn_str <- function(name) {
tolower(chartr(' ', '_', name))
}
#connection = dbConnect(SQLite(), dbname='results.ddnime.db')
print(file_db)
connection = dbConnect(SQLite(), dbname=file_db)
dbdata = dbGetQuery(connection,'select * from p' )
dbdata[,"blocksize"] = dbdata$t
summary(dbdata)
nn_lab <- sprintf(fmt="NN=%d", unique(dbdata$nn))
names(nn_lab) <- unique(dbdata$nn)
ppn_lab <- sprintf(fmt="PPN=%d", unique(dbdata$ppn))
names(ppn_lab) <- unique(dbdata$ppn)
breaks <- c(unique(dbdata$blocksize))
dbdata$lab_access <- dbdata$access
dbdata$lab_access[dbdata$lab_access == "write"] = "Write"
dbdata$lab_access[dbdata$lab_access == "read"] = "Read"
dbdata$lab_fs <- dbdata$fs
dbdata$lab_fs[dbdata$lab_fs == "gpfs"] = "IBM Spectrum Scale"
dbdata$lab_fs[dbdata$lab_fs == "fuse"] = "IME FUSE"
dbdata$lab_fs[dbdata$lab_fs == "ime"] = "IME"
dbdata$lab_count <- sprintf('Iteration %d', dbdata$count)
max_y=3500
for (lab_fs in unique(dbdata$lab_fs)) {
for (scale in c("linear", "logarithmic")) {
#for (scale in c("linear")) {
p = ggplot(data=dbdata[dbdata$lab_fs==lab_fs,], aes(x=nn, y=bwMiB, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) +
#aes(x=nn, y=bwMiB) +
ggtitle(sprintf("%s independent random access to a shared file with IOR", lab_fs)) +
#facet_grid(ppn ~ lab_access + lab_count, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) +
facet_grid(ppn ~ lab_access, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) +
xlab("Nodes") +
ylab("Performance in MiB/s") +
theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
theme(legend.position="bottom") +
#scale_x_continuous(breaks = c(unique(data$nn))) +
scale_x_log10(breaks = c(unique(dbdata$nn))) +
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000'), breaks=sort(unique(dbdata$blocksize)/1024)) +
#stat_summary(fun.y="median", geom="line", aes(group=factor(blocksize))) +
stat_summary(fun.y="mean", geom="line", aes(group=factor(blocksize))) +
#ylim(0, max_y) +
#geom_boxplot()
geom_point()
#geom_point(data=dbdata, aes(x=nn, y=PortRcvData), colour='red') +
#geom_point(data=dbdata, aes(x=nn, y=PortXmitData), colour='blue')
if ( "logarithmic" == scale ) {
p = p + scale_y_log10()
}
filename_eps = sprintf("%s/%s_%s_performance.eps", folder_out, to_fn_str(lab_fs), scale)
filename_png = sprintf("%s/%s_%s_performance.png", folder_out, to_fn_str(lab_fs), scale)
ggsave(filename_png, width = 8, height = 8)
ggsave(filename_eps, width = 8, height = 8)
#system(sprintf("epstopdf %s", filename_eps))
system(sprintf("rm %s", filename_eps))
p = ggplot(data=dbdata[dbdata$lab_fs==lab_fs,], ymin=0) +
aes(x=nn, y=(PortXmitData + PortRcvData) * 4 / ppn, colour=as.factor(blocksize/1024), group=blocksize) +
#aes(x=nn, y=bwMiB) +
ggtitle(sprintf('%s Infiniband throughput (PortRcvData and PortXmitData by "perfquery -x")', lab_fs)) +
#facet_grid(ppn ~ lab_access + lab_count, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) +
facet_grid(ppn ~ lab_access + pid, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) +
xlab("Nodes") +
ylab("Performance in MiB/s") +
theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
theme(legend.position="bottom") +
#scale_x_continuous(breaks = c(unique(data$nn))) +
scale_x_log10(breaks = c(unique(dbdata$nn))) +
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000'), breaks=sort(unique(dbdata$blocksize)/1024)) +
stat_summary(fun.y="mean", geom="line", aes(group=factor(blocksize))) +
#ylim(0, max_y) +
#geom_point(data=dbdata, aes(x=nn, y=PortXmitData), colour='blue')
geom_point()
if ( "logarithmic" == scale ) {
p = p + scale_y_log10()
}
filename_eps = sprintf("%s/%s_%s_ib.eps", folder_out, to_fn_str(lab_fs), scale)
filename_png = sprintf("%s/%s_%s_ib.png", folder_out, to_fn_str(lab_fs), scale)
ggsave(filename_png, width = 8, height = 8)
ggsave(filename_eps, width = 8, height = 8)
#system(sprintf("epstopdf %s", filename_eps))
system(sprintf("rm %s", filename_eps))
}}