package org.jlab.groot.demo;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import org.jlab.groot.base.GStyle;
import org.jlab.groot.data.DataVector;
import org.jlab.groot.data.GraphErrors;
import org.jlab.groot.fitter.DataFitter;
import org.jlab.groot.graphics.EmbeddedCanvas;
import org.jlab.groot.math.F1D;
import org.jlab.groot.tree.TreeTextFile;
public class Xeon_Amdahl {
public static void main(String[] args) {
GStyle.getGraphErrorsAttributes().setMarkerStyle(0);
GStyle.getGraphErrorsAttributes().setMarkerColor(3);
GStyle.getGraphErrorsAttributes().setMarkerSize(7);
GStyle.getGraphErrorsAttributes().setLineColor(3);
GStyle.getGraphErrorsAttributes().setLineWidth(0);
GStyle.getFunctionAttributes().setLineWidth(6);
GStyle.getAxisAttributesX().setTitleFontSize(32);
GStyle.getAxisAttributesX().setLabelFontSize(28);
GStyle.getAxisAttributesY().setTitleFontSize(32);
GStyle.getAxisAttributesY().setLabelFontSize(28);
JFrame frame = new JFrame("Xeon Comparison");
frame.setSize(1400, 1000);
EmbeddedCanvas comparisonCanvas = new EmbeddedCanvas();
comparisonCanvas.setPreferredSize(new Dimension(1400,1000));
TreeTextFile broadwell_affinity = new TreeTextFile("T");
TreeTextFile broadwell = new TreeTextFile("T");
TreeTextFile haswell = new TreeTextFile("T");
broadwell.readFile("src/main/resources/sample_data/clararec_analysis/broadwell.txt");
broadwell_affinity.readFile("src/main/resources/sample_data/clararec_analysis/broadwell_specaffinity.txt");
haswell.readFile("src/main/resources/sample_data/clararec_analysis/haswell.txt");
DataVector y_broadwell = broadwell.getDataVector("ab", "");
double first = y_broadwell.getArray()[0];
DataVector y_b = broadwell.getDataVector(String.format("ab/%f",first), "");
DataVector x_b = broadwell.getDataVector("aa", "");
GraphErrors broadwellGraph = new GraphErrors("Broadwell",x_b.getArray(),y_b.getArray());
broadwellGraph.setTitleX("Number of Threads");
broadwellGraph.setTitleY("Speedup (t_parallel/t_serial)");
comparisonCanvas.draw(broadwellGraph);
F1D amdahl1 = new F1D("Amdahl_broadwell","1/((1-[p_broadwell])+[p_broadwell]/x)",1,36);
amdahl1.setParameter(0, .99);
broadwellGraph.setMarkerColor(4);
amdahl1.setLineColor(44);
DataFitter.fit(amdahl1, broadwellGraph, "QW");
//amdahl1.setRange(1, 36);
amdahl1.setOptStat("10");
comparisonCanvas.draw(amdahl1,"same");
F1D amdahl1_2 = new F1D("Amdahl_broadwell2","1/((1-[p_broadwell2])+[p_broadwell2]/x)",36,72);
amdahl1_2.setParameter(0, amdahl1.getParameter(0));
amdahl1_2.setLineStyle(2);
amdahl1_2.setLineColor(44);
//amdahl1_2.setRange(1,72);
comparisonCanvas.draw(amdahl1_2,"same");
DataVector y_haswell = haswell.getDataVector("ab", "");
first = y_haswell.getArray()[0];
DataVector y_h = haswell.getDataVector(String.format("ab/%f",first), "");
DataVector x_h = haswell.getDataVector("aa", "");
GraphErrors haswellGraph = new GraphErrors("haswell",x_h.getArray(),y_h.getArray());
comparisonCanvas.draw(haswellGraph,"same");
F1D amdahl2 = new F1D("Amdahl_haswell","1/((1-[p_haswell])+[p_haswell]/x)",1,24);
amdahl2.setParameter(0, .99);
haswellGraph.setMarkerColor(2);
amdahl2.setLineColor(42);
DataFitter.fit(amdahl2, haswellGraph, "QW");
amdahl2.setOptStat("10");
comparisonCanvas.draw(amdahl2,"same");
F1D amdahl2_2 = new F1D("Amdahl_haswell2","1/((1-[p_haswell2])+[p_haswell2]/x)",24,48);
amdahl2_2.setParameter(0, amdahl2.getParameter(0));
amdahl2_2.setLineStyle(2);
amdahl2_2.setLineColor(42);
comparisonCanvas.draw(amdahl2_2,"same");
DataVector y_broadwell_aff = broadwell_affinity.getDataVector("ab", "");
first = y_broadwell_aff.getArray()[0];
DataVector y_ba = broadwell_affinity.getDataVector(String.format("ab/%f",first/2.0), "");
DataVector x_ba = broadwell_affinity.getDataVector("aa", "");
GraphErrors broadwellaffGraph = new GraphErrors("broadwell_affinity",x_ba.getArray(),y_ba.getArray());
comparisonCanvas.draw(broadwellaffGraph,"same");
F1D amdahl3 = new F1D("Amdahl_broadwell_aff","1/((1-[p_broadwell_affinity])+[p_broadwell_affinity]/x)",1,36);
amdahl3.setParameter(0, .99);
broadwellaffGraph.setMarkerColor(1);
amdahl3.setLineColor(41);
DataFitter.fit(amdahl3, broadwellaffGraph, "QW");
amdahl3.setRange(1, 36);
amdahl3.setOptStat("10");
comparisonCanvas.draw(amdahl3,"same");
F1D amdahl3_2 = new F1D("broadwell_affinity_2","1/((1-[p_broadwell_affinity2])+[p_broadwell_affinity2]/x)",36,72);
amdahl3_2.setParameter(0, amdahl3.getParameter(0));
amdahl3_2.setLineStyle(2);
amdahl3_2.setLineColor(41);
amdahl3_2.setRange(36,72);
comparisonCanvas.draw(amdahl3_2,"same");
F1D amdahl3_3 = new F1D("broadwell_affinity_2","1/((1-[p_broadwell_affinity2])+[p_broadwell_affinity2]/x)",36,72);
amdahl3_3.setParameter(0, 1.0);
amdahl3_3.setLineStyle(2);
amdahl3_3.setLineColor(48);
amdahl3_3.setRange(1,72);
//comparisonCanvas.draw(amdahl3_3,"same");
comparisonCanvas.setTitleSize((int)(48*1.5));
comparisonCanvas.setPadTitles("CLARA Reconstruction Scaling");
comparisonCanvas.setAxisLabelSize((int)(24*1.5));
comparisonCanvas.setAxisTitleSize((int)(32*1.5));
comparisonCanvas.setStatBoxFontSize((int)(24*1.5));
EmbeddedCanvas rateCanvas = new EmbeddedCanvas();
DataVector ratey1 = broadwell_affinity.getDataVector("ab", "");
DataVector ratex1 = broadwell_affinity.getDataVector("aa", "");
GraphErrors rate1 = new GraphErrors("broadwell_affinity",ratex1.getArray(),ratey1.getArray());
ratey1 = broadwell.getDataVector("ab", "");
ratex1 = broadwell.getDataVector("aa", "");
GraphErrors rate2 = new GraphErrors("broadwell",ratex1.getArray(),ratey1.getArray());
ratey1 = haswell.getDataVector("ab", "");
ratex1 = haswell.getDataVector("aa", "");
GraphErrors rate3 = new GraphErrors("broadwell_affinity",ratex1.getArray(),ratey1.getArray());
rate1.setMarkerColor(1);
rate2.setMarkerColor(4);
rate3.setMarkerColor(2);
rate1.setTitleX("Number of Threads");
rate2.setTitleY("Event Rate [kHz]");
rateCanvas.draw(rate1);
rateCanvas.draw(rate2,"same");
rateCanvas.draw(rate3,"same");
rateCanvas.setTitleSize((int)(48*1.5));
rateCanvas.setPadTitles("Event Rate");
rateCanvas.setAxisLabelSize((int)(24*1.5));
rateCanvas.setAxisTitleSize((int)(32*1.5));
rateCanvas.setStatBoxFontSize((int)(24*1.5));
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add(comparisonCanvas,"Scaling All");
tabbedPane.add(rateCanvas,"Rate");
frame.add(tabbedPane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Ads help maintain this website.