diff --git a/benchmark/eval_analysis_v2.R b/benchmark/eval_analysis_v2.R new file mode 100755 index 000000000..82af8ee08 --- /dev/null +++ b/benchmark/eval_analysis_v2.R @@ -0,0 +1,107 @@ +#!/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")) +} + + +#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" + + + + +for (scale in c("linear", "logarithmic")) { + + p = ggplot(data=dbdata, aes(x=nn, y=bwMiB, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) + + #aes(x=nn, y=bwMiB) + + ggtitle("POSIX independent random access to a shared file with IOR") + + 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))) + + #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/performance_%s.eps", folder_out, scale) + filename_png = sprintf("%s/performance_%s.png", folder_out, scale) + ggsave(filename_png, width = 10, height = 8) + ggsave(filename_eps, width = 10, height = 8) + #system(sprintf("epstopdf %s", filename_eps)) + system(sprintf("rm %s", filename_eps)) + + p = ggplot(data=dbdata, ymin=0) + + aes(x=nn, y=(PortXmitData + PortRcvData) * 4 / ppn, colour=as.factor(blocksize/1024), group=blocksize) + + #aes(x=nn, y=bwMiB) + + ggtitle('Infiniband throughput (PortRcvData and PortXmitData by "perfquery -x")') + + 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="mean", geom="line", aes(group=factor(blocksize))) + + #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/ib_%s.eps", folder_out, scale) + filename_png = sprintf("%s/ib_%s.png", folder_out, scale) + ggsave(filename_png, width = 10, height = 8) + ggsave(filename_eps, width = 10, height = 8) + #system(sprintf("epstopdf %s", filename_eps)) + system(sprintf("rm %s", filename_eps)) + +} diff --git a/benchmark/results_v2.R b/benchmark/results_v2.R new file mode 100644 index 000000000..e69de29bb