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 c2c5c3039c10c599bacb5827b445d8776d99c48f..a01a7066229c61d7f126ee18f015d0a45713bff0 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 5ea82b3cfd45ce5cb1a905e2c9274c614a703b98..7d566589c2d531c712cf7cd9f1694f014607256d 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 9ff89f26d9937878269389f32e46d42462ab7355..a62abe250bffd7404327f8c04e685bd26a7f0e9b 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())); } }