#!/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 where api=="ime"' ) 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("Independent random access to a shared file with IOR") + #facet_grid(fs + ppn ~ lab_access + iteration, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + facet_grid(fs + 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(fs + ppn ~ lab_access + iteration, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + facet_grid(fs + 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)) }