From e34d73a3bcd32116e6cf8a82cb9d2fc688fe8a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Walter?= <juergen.walter@uni-wuerzburg.de> Date: Thu, 16 Feb 2017 16:48:36 +0100 Subject: [PATCH] propagate number of cores to host creation --- .../pmx/filter/PerformanceModelFilter.java | 18 +++++++++---- .../PerformanceModelFilterAppender.java | 1 + .../filter/util/PerformanceModelCreator.java | 27 ++++++++++--------- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilter.java b/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilter.java index c2c5c303..a01a7066 100644 --- a/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilter.java +++ b/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilter.java @@ -81,6 +81,8 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs private HashMap<String, List<Double>> workload; // = new HashMap<String, Vector<Double>>(); private IProjectContext localProjectContextRef; private SystemModelRepository systemEntityFactory; + private HashMap<String, Integer> numCores = new HashMap<String, Integer>(); + // /** // * Creates a new instance of this class using the given parameters. @@ -186,7 +188,7 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs if (!error) { buildPerformanceModel(operationGraph, resourceDemands, workload, - this.getSystemEntityFactory(), builder); + this.getSystemEntityFactory(), numCores, builder); //super.terminate(errorBeforeTermination); //log.info("writing results to files... |||||||||||||||||||||||||||||||||||||||||||||||||"); @@ -210,6 +212,10 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs return this.systemEntityFactory; } + public void addCPUCoreNumbers(HashMap<String, Integer> numCores) { + this.numCores = numCores; + } + /** * Creates a performance model using a builder + preprocessed monitoring * input @@ -224,10 +230,10 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs AbstractGraph<DependencyGraphNode<AllocationComponentOperationPair>, WeightedBidirectionalDependencyGraphEdge<AllocationComponentOperationPair>, TraceInformation> operationGraph, HashMap<String, Double> resourceDemands, HashMap<String, List<Double>> workload, - SystemModelRepository systemModelRepository, IModelBuilder builder) { + SystemModelRepository systemModelRepository, HashMap<String, Integer> numCores, IModelBuilder builder) { PerformanceModelCreator.createExecutionContainers( - systemModelRepository, builder); + systemModelRepository, builder, numCores); PerformanceModelCreator.createComponentsAndInterfaces( systemModelRepository, builder); @@ -238,6 +244,8 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs String componentName = ModelBuilder.applyComponentNameFix(component.getType().getTypeName()); String hostName = node.getEntity().getAllocationComponent() .getExecutionContainer().getName(); + // Teerat Pitakrat: TODO add allocation information to assembly + if (componentName.equals("'Entry'")) { continue; // System entry node } @@ -301,9 +309,9 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs //log.info(names); builder.addUsageScenario(workload); } - } + private static void helpMehtod( IModelBuilder builder, String componentName, @@ -346,7 +354,7 @@ public class PerformanceModelFilter extends AbstractFilterPlugin{ //extends Abs + targetHostName, targetComponentName); // if(targetComponentName != componentName){ - builder.addConnectionToAssemblies(componentName + ModelBuilder.seperatorChar + hostName, + builder.addConnectionToAssemblies(componentName + ModelBuilder.seperatorChar + hostName, targetComponentName + ModelBuilder.seperatorChar + targetHostName); // } } diff --git a/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilterAppender.java b/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilterAppender.java index 5ea82b3c..7d566589 100644 --- a/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilterAppender.java +++ b/tools.descartes.pmx/src/tools/descartes/pmx/filter/PerformanceModelFilterAppender.java @@ -231,6 +231,7 @@ public class PerformanceModelFilterAppender { resultPath); PerformanceModelFilter performanceModelFilter = new PerformanceModelFilter(performanceModelFilterConfiguration, analysisController); + performanceModelFilter.addCPUCoreNumbers(numCores); // workload filter WorkloadFilter workloadFilter = new WorkloadFilter(new Configuration(), analysisController); diff --git a/tools.descartes.pmx/src/tools/descartes/pmx/filter/util/PerformanceModelCreator.java b/tools.descartes.pmx/src/tools/descartes/pmx/filter/util/PerformanceModelCreator.java index 9ff89f26..a62abe25 100644 --- a/tools.descartes.pmx/src/tools/descartes/pmx/filter/util/PerformanceModelCreator.java +++ b/tools.descartes.pmx/src/tools/descartes/pmx/filter/util/PerformanceModelCreator.java @@ -27,8 +27,7 @@ package tools.descartes.pmx.filter.util; import java.util.Collection; - -import org.apache.log4j.Logger; +import java.util.HashMap; import kieker.common.util.signature.Signature; import kieker.tools.traceAnalysis.systemModel.AllocationComponent; @@ -40,16 +39,17 @@ import kieker.tools.traceAnalysis.systemModel.repository.SystemModelRepository; import tools.descartes.pmx.builder.IModelBuilder; public class PerformanceModelCreator { - private static final Logger log = Logger - .getLogger(PerformanceModelCreator.class); + // private static final Logger log = Logger + // .getLogger(PerformanceModelCreator.class); - public static void createPerformanceModel(SystemModelRepository systemModel, IModelBuilder builder) { - createExecutionContainers(systemModel, builder); - createAssemblies(systemModel, builder); - createComponentsAndInterfaces(systemModel, builder); - addComponentsToAssemblies(systemModel, builder); - createAllocations(systemModel, builder); - } + // public static void createPerformanceModel(SystemModelRepository + // systemModel, IModelBuilder builder) { + // createExecutionContainers(systemModel, builder); + // createAssemblies(systemModel, builder); + // createComponentsAndInterfaces(systemModel, builder); + // addComponentsToAssemblies(systemModel, builder); + // createAllocations(systemModel, builder); + // } public static void addComponentsToAssemblies( SystemModelRepository systemModel, IModelBuilder builder) { @@ -95,11 +95,12 @@ public class PerformanceModelCreator { } } - public static void createExecutionContainers(SystemModelRepository systemModel, IModelBuilder builder) { + public static void createExecutionContainers(SystemModelRepository systemModel, IModelBuilder builder, + HashMap<String, Integer> numCores) { final Collection<ExecutionContainer> executionContainers = systemModel .getExecutionEnvironmentFactory().getExecutionContainers(); for (ExecutionContainer container : executionContainers) { - builder.addHost(container.getName()); + builder.addHost(container.getName(), numCores.get(container.getName())); } } -- GitLab