Evaluation scripts
This commit is contained in:
parent
84c5f8c7e0
commit
31c3a605b5
|
@ -0,0 +1,143 @@
|
||||||
|
#!/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 mnt, siox, avg(duration) as ad, app, procs, blocksize from p group by mnt, siox, procs, blocksize, app')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where tag=="mpio-individual"')
|
||||||
|
#dbdata = dbGetQuery(connection,'select *, (x*y*z) as blocksize from p where count=8')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where count<5')
|
||||||
|
dbdata = dbGetQuery(connection,'select * from p where ppn==1 or ppn=4 or ppn=8')
|
||||||
|
dbdata[,"blocksize"] = dbdata$x * dbdata$y * dbdata$z * 4
|
||||||
|
|
||||||
|
|
||||||
|
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))
|
||||||
|
|
||||||
|
|
||||||
|
fig_w = 4
|
||||||
|
fig_h = 4
|
||||||
|
|
||||||
|
w = c(4, 6, 4)
|
||||||
|
h = c(4, 4, 4)
|
||||||
|
event = c("paper", "isc-pres", "poster")
|
||||||
|
dims_list = data.frame(h, w, event) # df is a data frame
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fss = unique(dbdata$fs)
|
||||||
|
for (fs in fss) {
|
||||||
|
data1 = dbdata[fs == dbdata$fs, ]
|
||||||
|
ifaces = unique(data1$iface)
|
||||||
|
|
||||||
|
for (iface in ifaces) {
|
||||||
|
data2 = data1[iface == data1$iface, ]
|
||||||
|
apps = unique(data2$app)
|
||||||
|
|
||||||
|
for (app in apps) {
|
||||||
|
data3 = data2[app == data2$app, ]
|
||||||
|
types = unique(data3$type)
|
||||||
|
|
||||||
|
for (type in types) {
|
||||||
|
data4 = data3[type == data3$type, ]
|
||||||
|
chunkeds = unique(data4$chunked)
|
||||||
|
|
||||||
|
for (chunked in chunkeds) {
|
||||||
|
data5 = data4[chunked == data4$chunked, ]
|
||||||
|
filleds = unique(data4$filled)
|
||||||
|
|
||||||
|
for (filled in filleds) {
|
||||||
|
data6 = data5[filled == data5$filled, ]
|
||||||
|
unlimiteds = unique(data5$unlimited)
|
||||||
|
|
||||||
|
for (unlimited in unlimiteds) {
|
||||||
|
data = data6[unlimited == data5$unlimited, ]
|
||||||
|
|
||||||
|
ggplot(data=data, aes(x=nn, y=write, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) +
|
||||||
|
#ggtitle("Write") +
|
||||||
|
facet_grid(ppn ~ ., 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_y_log10() +
|
||||||
|
scale_x_continuous(breaks = c(unique(data$nn))) +
|
||||||
|
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000'), breaks=sort(unique(data$blocksize)/1024)) +
|
||||||
|
#stat_summary(fun.y="median", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
stat_summary(fun.y="max", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
#geom_boxplot()
|
||||||
|
geom_point()
|
||||||
|
filename_eps = sprintf("%s/performance_%s_%s_%s_%s_CHUNK:%s_FILL:%s_LIM:%s_%s.eps", folder_out, app, fs, iface, type, chunked, filled, unlimited, "write")
|
||||||
|
filename_png = sprintf("%s/performance_%s_%s_%s_%s_CHUNK:%s_FILL:%s_LIM:%s_%s.png", folder_out, app, fs, iface, type, chunked, filled, unlimited, "write")
|
||||||
|
ggsave(filename_png, width = 6, height = 4)
|
||||||
|
ggsave(filename_eps, width = 6, height = 4)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
|
||||||
|
ggplot(data=data, aes(x=nn, y=read, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) +
|
||||||
|
#ggtitle("Read") +
|
||||||
|
facet_grid(ppn ~ ., 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_y_log10() +
|
||||||
|
scale_x_continuous(breaks = c(unique(data$nn))) +
|
||||||
|
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000'), breaks=sort(unique(data$blocksize)/1024)) +
|
||||||
|
#stat_summary(fun.y="median", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
stat_summary(fun.y="max", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
#geom_boxplot()
|
||||||
|
geom_point()
|
||||||
|
filename_eps = sprintf("%s/performance_%s_%s_%s_%s_CHUNK:%s_FILL:%s_LIM:%s_%s.eps", folder_out, app, fs, iface, type, chunked, filled, unlimited, "read")
|
||||||
|
filename_png = sprintf("%s/performance_%s_%s_%s_%s_CHUNK:%s_FILL:%s_LIM:%s_%s.png", folder_out, app, fs, iface, type, chunked, filled, unlimited, "read")
|
||||||
|
ggsave(filename_png, width = 6, height = 4)
|
||||||
|
ggsave(filename_eps, width = 6, height = 4)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
|
||||||
|
|
||||||
|
#ggplot(data=data, aes(x=blocksize, y=read, colour=app, group=blocksize)) +
|
||||||
|
# ggtitle("Read") +
|
||||||
|
# facet_grid(ppn ~ nn, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) +
|
||||||
|
# xlab("Blocksize in KiB") +
|
||||||
|
# ylab("Performance in MiB/s") +
|
||||||
|
# theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
|
||||||
|
# scale_y_log10() +
|
||||||
|
# scale_x_log10(breaks = breaks, labels=breaks/1024) +
|
||||||
|
# geom_boxplot()
|
||||||
|
##geom_line() +
|
||||||
|
##geom_point()
|
||||||
|
#filename_eps = sprintf("%s/performance_%s_%s_%s_%s_%s.eps", folder_out, app, fs, iface, type, "read")
|
||||||
|
#ggsave(filename_eps, width = 8, height = 6)
|
||||||
|
##system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
|
||||||
|
}}}}}}}
|
|
@ -0,0 +1,134 @@
|
||||||
|
#!/usr/bin/env Rscript
|
||||||
|
|
||||||
|
library(sqldf)
|
||||||
|
library(plyr)
|
||||||
|
library(plot3D)
|
||||||
|
library(ggplot2)
|
||||||
|
library(gtools)
|
||||||
|
|
||||||
|
|
||||||
|
args = commandArgs(trailingOnly=TRUE)
|
||||||
|
#print(args)
|
||||||
|
#if (2 != length(args)) {
|
||||||
|
#print("Requires 2 parameters)")
|
||||||
|
#q()
|
||||||
|
#}
|
||||||
|
|
||||||
|
#file_db = args[1]
|
||||||
|
#folder_out = args[2]
|
||||||
|
|
||||||
|
file_db = 'results_benchtool.db'
|
||||||
|
folder_out = 'plot_coll_chunked'
|
||||||
|
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 mnt, siox, avg(duration) as ad, app, procs, blocksize from p group by mnt, siox, procs, blocksize, app')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where tag=="mpio-individual"')
|
||||||
|
#dbdata = dbGetQuery(connection,'select *, (x*y*z) as blocksize from p where count=8')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where count<5')
|
||||||
|
dbdata = dbGetQuery(connection,'select * from p where nn==10 and ppn=8')
|
||||||
|
dbdata[,"blocksize"] = dbdata$x * dbdata$y * dbdata$z * 4
|
||||||
|
|
||||||
|
|
||||||
|
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))
|
||||||
|
|
||||||
|
|
||||||
|
fig_w = 4
|
||||||
|
fig_h = 4
|
||||||
|
|
||||||
|
w = c(4, 6, 4)
|
||||||
|
h = c(4, 4, 4)
|
||||||
|
event = c("paper", "isc-pres", "poster")
|
||||||
|
dims_list = data.frame(h, w, event) # df is a data frame
|
||||||
|
|
||||||
|
|
||||||
|
for (scale in c('log', 'linear')) {
|
||||||
|
|
||||||
|
fss = unique(dbdata$fs)
|
||||||
|
for (fs in fss) {
|
||||||
|
data1 = dbdata[fs == dbdata$fs, ] # ime, lustre, fuse
|
||||||
|
ifaces = unique(data1$iface)
|
||||||
|
|
||||||
|
for (iface in ifaces) {
|
||||||
|
data2 = data1[iface == data1$iface, ] # posix, mpio, ime
|
||||||
|
apps = unique(data2$app)
|
||||||
|
|
||||||
|
for (app in apps) {
|
||||||
|
data3 = data2[app == data2$app, ] # ior, benchtool
|
||||||
|
filleds = unique(data3$filled)
|
||||||
|
|
||||||
|
for (filled in filleds) {
|
||||||
|
data4 = data3[filled == data2$filled, ]
|
||||||
|
unlimiteds = unique(data4$unlimited)
|
||||||
|
|
||||||
|
for (unlimited in unlimiteds) {
|
||||||
|
data = data4[unlimited == data3$unlimited, ]
|
||||||
|
|
||||||
|
dat_write <- data.frame(chunked=data$chunked, type=data$type, perf=data$write, blocksize=data$blocksize, access="write")
|
||||||
|
dat_read <- data.frame(chunked=data$chunked, type=data$type, perf=data$read, blocksize=data$blocksize, access="read")
|
||||||
|
|
||||||
|
dat <- rbind(dat_write, dat_read)
|
||||||
|
#dat$lab <- paste0(dat$blocksize/1024, "/", dat$access)
|
||||||
|
dat$lab <- paste0(dat$blocksize/1024)
|
||||||
|
dat$lab_type <- data$type;
|
||||||
|
dat$lab_type[dat$lab_type == "coll"] = "Collective"
|
||||||
|
dat$lab_type[dat$lab_type == "ind"] = "Independent"
|
||||||
|
dat$lab_chunked <- data$chunked;
|
||||||
|
dat$lab_chunked[dat$lab_chunked == "auto"] = "Chunking"
|
||||||
|
dat$lab_chunked[dat$lab_chunked == "notset"] = "No chunking"
|
||||||
|
print(summary(dat))
|
||||||
|
|
||||||
|
|
||||||
|
print(mixedsort(unique(dat$lab)))
|
||||||
|
|
||||||
|
|
||||||
|
p <- ggplot(data=dat, aes(x=lab, y=perf, colour=as.factor(blocksize/1024), group=interaction(access, blocksize)), ymin=0) +
|
||||||
|
#ggtitle("Write") +
|
||||||
|
#facet_grid(ppn ~ ., labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) +
|
||||||
|
facet_grid(. ~ lab_type + lab_chunked + access) +
|
||||||
|
xlab("Blocksizes in KiB / Access") +
|
||||||
|
ylab("Performance in MiB/s") +
|
||||||
|
theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
|
||||||
|
theme(legend.position="bottom") +
|
||||||
|
#ylim(0, 100000) +
|
||||||
|
#scale_x_continuous(breaks = c(unique(data$nn))) +
|
||||||
|
#scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000'), breaks=sort(unique(data$blocksize)/1024)) +
|
||||||
|
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000', '#999999','#E69F00', '#56B4E9', '#000000'), breaks=mixedsort(unique(dat$lab))) +
|
||||||
|
scale_fill_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000', '#999999','#E69F00', '#56B4E9', '#000000'), breaks=mixedsort(unique(dat$lab))) +
|
||||||
|
#stat_summary(fun.y="median", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
#stat_summary(fun.y="max", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
geom_boxplot()
|
||||||
|
#geom_bar()
|
||||||
|
#geom_point()
|
||||||
|
|
||||||
|
if ('log' == scale) {
|
||||||
|
p = p + scale_y_log10(breaks=c(100, 1000, 10000, 40000))
|
||||||
|
}
|
||||||
|
{
|
||||||
|
p = p + scale_x_discrete(breaks=mixedsort(unique(dat$lab)), limits=mixedsort(unique(dat$lab)))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
filename_eps = sprintf("%s/performance_%s_FS:%s_IFACE:%s_FILLED_%s_LIM:%s_SCALE:%s.eps", folder_out, app, fs, iface, filled, unlimited, scale)
|
||||||
|
filename_png = sprintf("%s/performance_%s_FS:%s_IFACE:%s_FILLED_%s_LIM:%s_SCALE:%s.png", folder_out, app, fs, iface, filled, unlimited, scale)
|
||||||
|
ggsave(filename_eps, width = 8, height = 8)
|
||||||
|
ggsave(filename_png, width = 8, height = 8)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
|
||||||
|
}}}}}}
|
||||||
|
#}}
|
|
@ -0,0 +1,111 @@
|
||||||
|
#!/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 mnt, siox, avg(duration) as ad, app, procs, blocksize from p group by mnt, siox, procs, blocksize, app')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where tag=="mpio-individual"')
|
||||||
|
#dbdata = dbGetQuery(connection,'select *, (x*y*z) as blocksize from p where count=8')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where count<5')
|
||||||
|
dbdata = dbGetQuery(connection,'select *, (nn*ppn) as procs from p ')
|
||||||
|
dbdata[,"blocksize"] = dbdata$x * dbdata$y * dbdata$z * 4
|
||||||
|
|
||||||
|
|
||||||
|
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))
|
||||||
|
|
||||||
|
|
||||||
|
fig_w = 4
|
||||||
|
fig_h = 4
|
||||||
|
|
||||||
|
w = c(4, 6, 4)
|
||||||
|
h = c(4, 4, 4)
|
||||||
|
event = c("paper", "isc-pres", "poster")
|
||||||
|
dims_list = data.frame(h, w, event) # df is a data frame
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fss = unique(dbdata$fs) # lustre, ime, fuse
|
||||||
|
for (fs in fss) {
|
||||||
|
data1 = dbdata[fs == dbdata$fs, ]
|
||||||
|
ifaces = unique(data1$iface)
|
||||||
|
|
||||||
|
for (iface in ifaces) { # mpio, ime, posix
|
||||||
|
data2 = data1[iface == data1$iface, ]
|
||||||
|
apps = unique(data2$app)
|
||||||
|
|
||||||
|
for (app in apps) { # benchtool, ior
|
||||||
|
data = data2[app == data2$app, ]
|
||||||
|
|
||||||
|
|
||||||
|
#ggplot(data=data, aes(x=nn, y=ropen, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) +
|
||||||
|
ggplot(data=data, aes(x=nn, y=ropen, color=ppn)) +
|
||||||
|
geom_point() +
|
||||||
|
xlab("Nodes") +
|
||||||
|
ylab("Duration in sec") +
|
||||||
|
theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
|
||||||
|
theme(legend.position="right") +
|
||||||
|
#scale_y_log10() +
|
||||||
|
scale_x_continuous(breaks = c(unique(data$nn))) +
|
||||||
|
geom_smooth(data=data[data$ppn==8,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==6,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==4,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==2,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==1,]) +
|
||||||
|
scale_colour_gradientn(colours = rainbow(7)) # + geom_abline(slope=0.1089, intercept=0.1315)
|
||||||
|
filename_eps = sprintf("%s/performance_%s_%s_%s_%s.eps", folder_out, app, fs, iface, "readopen")
|
||||||
|
ggsave(filename_eps, width = 6, height = 4)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
|
||||||
|
ggplot(data=data, aes(x=nn, y=wopen, color=ppn)) +
|
||||||
|
geom_point() +
|
||||||
|
xlab("Nodes") +
|
||||||
|
ylab("Duration in sec") +
|
||||||
|
theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
|
||||||
|
theme(legend.position="right") +
|
||||||
|
#scale_y_log10() +
|
||||||
|
scale_x_continuous(breaks = c(unique(data$nn))) +
|
||||||
|
geom_smooth(data=data[data$ppn==8,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==6,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==4,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==2,]) +
|
||||||
|
geom_smooth(data=data[data$ppn==1,]) +
|
||||||
|
scale_colour_gradientn(colours = rainbow(7)) # + geom_abline(slope=0.1089, intercept=0.1315)
|
||||||
|
filename_eps = sprintf("%s/performance_%s_%s_%s_%s.eps", folder_out, app, fs, iface, "writeopen")
|
||||||
|
ggsave(filename_eps, width = 6, height = 4)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}}}
|
|
@ -0,0 +1,207 @@
|
||||||
|
#!/usr/bin/env Rscript
|
||||||
|
|
||||||
|
library(sqldf)
|
||||||
|
library(plyr)
|
||||||
|
library(plot3D)
|
||||||
|
library(ggplot2)
|
||||||
|
require(gridExtra)
|
||||||
|
|
||||||
|
|
||||||
|
theme_set(theme_gray(base_size = 25))
|
||||||
|
|
||||||
|
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 mnt, siox, avg(duration) as ad, app, procs, blocksize from p group by mnt, siox, procs, blocksize, app')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where tag=="mpio-individual"')
|
||||||
|
#dbdata = dbGetQuery(connection,'select *, (x*y*z) as blocksize from p where count=8')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where count<5')
|
||||||
|
#dbdata = dbGetQuery(connection,'select * from p where iface="mpio" and (ppn==1 or ppn=4 or ppn=8)')
|
||||||
|
dbdata = dbGetQuery(connection,'select * from p where (ppn==1 or ppn=4 or ppn=8)')
|
||||||
|
dbdata[,"blocksize"] = dbdata$x * dbdata$y * dbdata$z * 4
|
||||||
|
|
||||||
|
|
||||||
|
#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))
|
||||||
|
|
||||||
|
|
||||||
|
#fig_w = 4
|
||||||
|
#fig_h = 4
|
||||||
|
|
||||||
|
#w = c(4, 6, 4)
|
||||||
|
#h = c(4, 4, 4)
|
||||||
|
#event = c("paper", "isc-pres", "poster")
|
||||||
|
#dims_list = data.frame(h, w, event) # df is a data frame
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (scale in c('log', 'linear')) {
|
||||||
|
fss = unique(dbdata$fs)
|
||||||
|
for (fs in fss) {
|
||||||
|
data1 = dbdata[fs == dbdata$fs, ]
|
||||||
|
#apps = unique(data1$app)
|
||||||
|
ifaces = unique(data1$iface)
|
||||||
|
|
||||||
|
for (iface in ifaces) {
|
||||||
|
data2 = data1[iface == data1$iface, ]
|
||||||
|
apps = unique(data2$app)
|
||||||
|
|
||||||
|
for (app in apps) {
|
||||||
|
data3 = data2[app == data2$app, ]
|
||||||
|
types = unique(data3$type)
|
||||||
|
|
||||||
|
for (type in types) {
|
||||||
|
data4 = data3[type == data3$type, ]
|
||||||
|
chunkeds = unique(data4$chunked)
|
||||||
|
|
||||||
|
for (chunked in chunkeds) {
|
||||||
|
data5 = data4[chunked == data4$chunked, ]
|
||||||
|
filleds = unique(data4$filled)
|
||||||
|
|
||||||
|
for (filled in filleds) {
|
||||||
|
data6 = data5[filled == data5$filled, ]
|
||||||
|
unlimiteds = unique(data5$unlimited)
|
||||||
|
|
||||||
|
for (unlimited in unlimiteds) {
|
||||||
|
data = data6[unlimited == data5$unlimited, ]
|
||||||
|
|
||||||
|
dat_write <- data.frame(real_perf=data$fsize/data$wio/1024^2, nn=data$nn, ppn=data$ppn, iface=data$iface, chunked=data$chunked, type=data$type, perf=data$write, blocksize=data$blocksize, access="write", tio="wio", stringsAsFactors = FALSE)
|
||||||
|
dat_read <- data.frame(real_perf=data$fsize/data$rio/1024^2, nn=data$nn, ppn=data$ppn, iface=data$iface, chunked=data$chunked, type=data$type, perf=data$read, blocksize=data$blocksize, access="read", tio="rio", stringsAsFactors = FALSE)
|
||||||
|
dat <- rbind(dat_write, dat_read)
|
||||||
|
|
||||||
|
|
||||||
|
dat$lab_ppn <- paste0("PPN=", dat$ppn)
|
||||||
|
|
||||||
|
dat$lab_iface <- dat$iface
|
||||||
|
dat$lab_iface[dat$lab_iface == "posix"] = "POSIX"
|
||||||
|
dat$lab_iface[dat$lab_iface == "mpio"] = "MPIIO"
|
||||||
|
dat$lab_iface[dat$lab_iface == "ime"] = "IME"
|
||||||
|
|
||||||
|
dat$lab_access <- dat$access
|
||||||
|
dat$lab_access[dat$lab_access == "write"] = "Write"
|
||||||
|
dat$lab_access[dat$lab_access == "read"] = "Read"
|
||||||
|
|
||||||
|
|
||||||
|
print(summary(dat))
|
||||||
|
#print(dat[0:10])
|
||||||
|
|
||||||
|
|
||||||
|
#library(ggplot2)
|
||||||
|
#p = qplot(1, 1)
|
||||||
|
#grid.arrange(p, p, respect=TRUE) # both viewports are square
|
||||||
|
#grid.arrange(p, p, respect=TRUE, heights=c(1,2)) # relative heights
|
||||||
|
|
||||||
|
#p1 = p + theme(aspect.ratio=3)
|
||||||
|
#grid.arrange(p,p1, respect=TRUE) # one is square, the other thinner
|
||||||
|
|
||||||
|
|
||||||
|
for (print_legend in c("yes", "no")) {
|
||||||
|
|
||||||
|
#p <- ggplot(data=dat, aes(x=nn, y=perf, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) +
|
||||||
|
p <- ggplot(data=dat, aes(x=nn, y=real_perf, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) +
|
||||||
|
#ggtitle("Write") +
|
||||||
|
#facet_grid(ppn ~ ., labeller = labeller(nn = as_labeller(lab), ppn = as_labeller(lab))) +
|
||||||
|
#facet_grid(lab_ppn ~ lab_iface + lab_access) +
|
||||||
|
facet_grid(lab_ppn ~ lab_access) +
|
||||||
|
xlab("Nodes") +
|
||||||
|
ylab("Performance in MiB/s") +
|
||||||
|
theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
|
||||||
|
#scale_y_log10() +
|
||||||
|
scale_x_continuous(breaks = c(unique(data$nn))) +
|
||||||
|
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000'), breaks=sort(unique(data$blocksize)/1024)) +
|
||||||
|
#stat_summary(fun.y="median", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
stat_summary(fun.y="max", geom="line", aes(group=factor(blocksize))) +
|
||||||
|
#coord_fixed(ratio=1) +
|
||||||
|
theme(aspect.ratio=1) +
|
||||||
|
theme(plot.margin=grid::unit(c(0,0,0,0), "mm")) +
|
||||||
|
#geom_boxplot()
|
||||||
|
geom_point()
|
||||||
|
|
||||||
|
|
||||||
|
#grid.arrange(p, p, respect=TRUE) # both viewports are square
|
||||||
|
|
||||||
|
|
||||||
|
#p1 = p + theme(aspect.ratio=3)
|
||||||
|
#grid.arrange(p,p1, respect=TRUE) # one is square, the other thinner
|
||||||
|
|
||||||
|
#p = qplot(1, 1)
|
||||||
|
#grid.arrange(p, p, respect=TRUE) # both viewports are square
|
||||||
|
#grid.arrange(p, p, respect=TRUE, heights=c(1,2)) # relative heights
|
||||||
|
|
||||||
|
if(fs=="lustre") {
|
||||||
|
print("Lustre limit")
|
||||||
|
p = p + ylim(0, 20000)
|
||||||
|
}
|
||||||
|
#if(fs=="fuse") {
|
||||||
|
#p = p + theme(legend.position="bottom")
|
||||||
|
#}
|
||||||
|
if(print_legend=="yes") {
|
||||||
|
p = p + theme(legend.position="bottom")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
p = p + theme(legend.position="none")
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('log' == scale) {
|
||||||
|
p = p + scale_y_log10()
|
||||||
|
p = p + scale_x_log10(breaks = c(unique(data$nn)))
|
||||||
|
#p = p + scale_y_log10(breaks=c(100, 1000, 10000, 40000))
|
||||||
|
}
|
||||||
|
{
|
||||||
|
#p = p + scale_x_discrete(breaks=mixedsort(unique(dat$lab)), limits=mixedsort(unique(dat$lab)))
|
||||||
|
}
|
||||||
|
|
||||||
|
filename_eps_base = sprintf("%s/performance_%s_%s_%s_%s_CHUNK:%s_FILL:%s_LIM:%s_legend:%s_SCALE:%s", folder_out, app, fs, iface, type, chunked, filled, unlimited, print_legend, scale)
|
||||||
|
filenmae_eps=""
|
||||||
|
|
||||||
|
if(fs=="ime") {
|
||||||
|
filename = sprintf("%s_size:%dx%d", filename_eps_base, 6, 8)
|
||||||
|
filename_eps = sprintf("%s.eps", filename)
|
||||||
|
filename_png = sprintf("%s.png", filename)
|
||||||
|
filename_pdf = sprintf("%s.pdf", filename)
|
||||||
|
ggsave(filename_eps, width = 6, height = 6)
|
||||||
|
ggsave(filename_png, dpi=300)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
system(sprintf("pdfcrop %s %s", filename_pdf, filename_pdf))
|
||||||
|
}
|
||||||
|
|
||||||
|
#filename = sprintf("%s_size:%dx%d", filename_eps_base, 12, 8)
|
||||||
|
filename = sprintf("%s_size:%dx%d", filename_eps_base, 9, 6)
|
||||||
|
filename_eps = sprintf("%s.eps", filename)
|
||||||
|
filename_png = sprintf("%s.png", filename)
|
||||||
|
filename_pdf = sprintf("%s.pdf", filename)
|
||||||
|
#ggsave(filename_eps, width = 12, height = 6)
|
||||||
|
ggsave(filename_eps, dpi=300)
|
||||||
|
ggsave(filename_png, dpi=300)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
system(sprintf("pdfcrop %s %s", filename_pdf, filename_pdf))
|
||||||
|
} # for legend
|
||||||
|
|
||||||
|
}}}}}}}
|
||||||
|
} # scale
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env Rscript
|
||||||
|
|
||||||
|
library(sqldf)
|
||||||
|
library(plyr)
|
||||||
|
library(plot3D)
|
||||||
|
library(ggplot2)
|
||||||
|
library(gtools)
|
||||||
|
|
||||||
|
|
||||||
|
args = commandArgs(trailingOnly=TRUE)
|
||||||
|
#print(args)
|
||||||
|
#if (2 != length(args)) {
|
||||||
|
#print("Requires 2 parameters)")
|
||||||
|
#q()
|
||||||
|
#}
|
||||||
|
|
||||||
|
#file_db = args[1]
|
||||||
|
#folder_out = args[2]
|
||||||
|
|
||||||
|
file_db_random = 'results_random.db'
|
||||||
|
file_db_sequential = 'results_sequential.db'
|
||||||
|
folder_out = 'plot_read_write'
|
||||||
|
|
||||||
|
#file_db = file_db_sequential
|
||||||
|
file_db = file_db_random
|
||||||
|
|
||||||
|
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$x * dbdata$y * dbdata$z * 4
|
||||||
|
|
||||||
|
dbdata$nn_lab <- sprintf(fmt="NN=%d; PPN=1-10", dbdata$nn)
|
||||||
|
dbdata$nn_lab_f <- factor(dbdata$nn_lab, sprintf(fmt="NN=%d; PPN=1-10", sort(unique(dbdata$nn))))
|
||||||
|
print(dbdata$nn_lab)
|
||||||
|
#names(nn_lab) <- unique(dbdata$nn)
|
||||||
|
|
||||||
|
summary(dbdata)
|
||||||
|
|
||||||
|
fss = unique(dbdata$fs)
|
||||||
|
for (fs in fss) {
|
||||||
|
data = dbdata[fs == dbdata$fs, ]
|
||||||
|
|
||||||
|
ggplot(data=data, aes(x=read, y=write, colour=as.factor(blocksize/1024), group=blocksize), ymin=0, xmin=0) +
|
||||||
|
#ggtitle("Write") +
|
||||||
|
facet_grid(. ~ nn_lab_f) +
|
||||||
|
facet_wrap(~ nn_lab_f) +
|
||||||
|
xlab("Read Performance in MiB/s") +
|
||||||
|
ylab("Write Performance in MiB/s") +
|
||||||
|
#theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) +
|
||||||
|
theme(legend.position="bottom") +
|
||||||
|
theme(aspect.ratio=1) +
|
||||||
|
scale_y_log10() +
|
||||||
|
scale_x_log10() +
|
||||||
|
scale_color_manual(name="Blocksize in KiB: ", values=c('#999999','#E69F00', '#56B4E9', '#000000','#999999','#E69F00', '#56B4E9', '#000000','#999999','#E69F00', '#56B4E9', '#000000' )) +
|
||||||
|
geom_point()
|
||||||
|
|
||||||
|
filename = sprintf("%s/performance_overview_rnd_%s", folder_out, fs)
|
||||||
|
filename_eps = sprintf("%s.eps", filename)
|
||||||
|
filename_png = sprintf("%s.png", filename)
|
||||||
|
filename_pdf = sprintf("%s.pdf", filename)
|
||||||
|
#ggsave(filename_eps, width = 12, height = 6)
|
||||||
|
#ggsave(filename_eps, dpi=1000)
|
||||||
|
ggsave(filename_eps, width = 16)
|
||||||
|
ggsave(filename_png, dpi=300)
|
||||||
|
system(sprintf("epstopdf %s", filename_eps))
|
||||||
|
system(sprintf("rm %s", filename_eps))
|
||||||
|
system(sprintf("pdfcrop %s %s", filename_pdf, filename_pdf))
|
||||||
|
}
|
Loading…
Reference in New Issue