- Nov 13, 2018
-
-
Alexander Diewald authored
* Replaces the identification of "evaluate" methods by a custom annotation that takes the parent Evaluator class as its argument to differentiate between evaluate methods across Evaluator boundaries. This is required by the binding mechanism of Guice. * Not yet ported Evaluators are not aligned with the new Annotation. * Bug Fixes: ** Register the MappingConstraintEvaluator. ** Correct the constructor of the MappingConstraintEvaluator. ** Fix parameter list of its evaluate method. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Nov 07, 2018
-
-
Alexander Diewald authored
3327: DSE Backend Registration See merge request !5
-
Alexander Diewald authored
Issue-Ref: 3327 Issue-Url: https://af3-developer.fortiss.org/issues/3327 Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Nov 06, 2018
-
-
Simon Barner authored
Issue-Ref: 3327 Issue-Url: https://af3-developer.fortiss.org/issues/3327 Signed-off-by:
Simon Barner <barner@fortiss.org>
-
Simon Barner authored
* Use interface instead of implementation DSEBackendService * Harmonize some method and parameter names * Add startService() and initializeService() (w/ empty implementations) Issue-Ref: 3327 Issue-Url: https://af3-developer.fortiss.org/issues/3327 Signed-off-by:
Simon Barner <barner@fortiss.org>
-
Simon Barner authored
* IDseBacked -> IDSEBackend * DseBacked -> DSEBackendService * DseSolutionVisualization -> DSESolutionVisualization * No functional change: Keep ratings Issue-Ref: 3327 Issue-Url: https://af3-developer.fortiss.org/issues/3327 Signed-off-by:
Simon Barner <barner@fortiss.org>
-
- Oct 30, 2018
-
-
Alexander Diewald authored
Issue-Ref: 3564 URL: https://af3-developer.fortiss.org/issues/3564
-
- Oct 02, 2018
-
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
The content of the body of eOperations is now added to genmodels. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 27, 2018
-
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 26, 2018
-
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
https://git.fortiss.org/af3/exploration-alg.gitAlexander Diewald authored
Conflicts: org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
* Instead, use the abstractions "IRequestAdapter", "IResourceAdapter", and "IExecutionUnitAdapter" everywhere. * Generalize resource references in the MappingEcoding class. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 25, 2018
-
-
Hernan Ponce de Leon authored
3261 remove resourcelink See merge request !4
-
- Sep 24, 2018
-
-
Simon Barner authored
Issue-Ref: 3261 Issue-Url: https://af3-developer.fortiss.org/issues/3261 Signed-off-by:
Simon Barner <barner@fortiss.org>
-
Simon Barner authored
Issue-Ref: 3261 Issue-Url: https://af3-developer.fortiss.org/issues/3261 Signed-off-by:
Simon Barner <barner@fortiss.org>
-
Signed-off-by:
Simon Barner <barner@fortiss.org> Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 17, 2018
-
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 15, 2018
-
-
Alexander Diewald authored
* Derive some of the EA parameters from the population size. * Clean-up the implementation of the implicit ExplorationTarget addition to the ExplorationSpecification passed to the solver. It is now encapsulated in the "Explorer". Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
There are too many empty partitions in the result set. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 13, 2018
-
-
Alexander Diewald authored
* The previous parameter set caused the optimizer to spend half of the iterations for random generation, not the search itself. Now, only the first 5 iterations are spent on the creation of the initial pool. * Adjust the default of the parallel execution to "true". Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Rover partition generation See merge request !3
-
Alexander Diewald authored
* An injection exception occurred when launching the MOEA DSE a second time from the same AF3 instance. Here, operator modules that maintain an internal map keep the entries of the previous run (which are replaced). This triggered an equals check of operator keys when the operators for the next execution should be placed in the internal operator selector maps. Within the equals check, one operator (from the prev. execution) had an instance of the operator such that the comparision would be based on the operator instances. Thus, an operator would be instantiated by the given injector during the binding phase causing the Exception. * In order to obtain a correct operator representation in the internal maps an to resolve the above problem, base the Operator Key hash and equals method on the OperatorTypes only. We only allow one operator type per genotype anyways such that the new equals operation correctly implements the concept and "old" operator instances are cleaned out. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
* Use scope enter and exit calls to clean cached objects in thread- specific caches such as the PhenotypeCache that is used to collect the results of the decoders in a single top-most decode() call. * Add the @ThreadedMethod annotation to trigger the Treaded scope entry and exit calls for cache handling. It denotes that the code within such an annotated method places objects the cache that need to be removed after exiting the method. An method interceptor is used for this purpose. * Pass Injectors to demanding classes such as the GuiceDecoder by the Provides mechanisms. * Extend the usage of the injector to generate objects (not DSE-process specific objects). Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 09, 2018
-
-
Alexander Diewald authored
* Modify the Dependency Visitor such that it can also evaluate the providers of artifacts instead of the artifacts alone. * Install only those Decoders and Creators in the DSE Process that are actually needed to produce the result types. * Correct the ThreadScope implementation. * Add a thread-local cache for the parallelized decode phase that collects the created Phenotypes. * Modify the cache mechanism for the create phase similar to the thread-local cache of the decode phase. * Change the register mechanism of CreatorModules and OperatorModules such that they can be associated with their corresponding Genotype more easily. * CreatorModules used in the DSE process are now created by Guice to allow method interception (evil bug fixed). Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Sep 07, 2018
-
-
Alexander Diewald authored
* ExplorationFeatures: ** Add a method to the IExplorationFeatures that checks whether the available input system models justify the application of a certain feature. This is intended to detect cases where an ExplorationFeature would degenerate to a No-Op such that it is useless to be executed. ** Add a utility method that returns the set of ExplorationFeatures, which are enabled by the user (by a DseSpecificiation) and applicable to the given input system models. ** Change the ExplorationFeature(Service) such that a stronger coupling between Genotypes and its Creators and Operators exist: It is required to correctly register the operators with their corresponding Genotypes. * Copying: ** Add a "Copyable" interface that enforces the existence of a copy statement. This is the inverse approach as the Cloneable marker interface of Java. ** Add a mechanism that installs a default CopyModule if no specialized CopyModule is provided for a given Genotype. This implementation relies on the existence of the Copyable interface for each Genotype. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Aug 22, 2018
-
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Aug 12, 2018
-
-
Alexander Diewald authored
Dependency injection See merge request !2
-
https://git.fortiss.org/af3/exploration-alg.gitAlexander Diewald authored
Conflicts: org.fortiss.af3.exploration.alg/.classpath org.fortiss.af3.exploration.alg/META-INF/MANIFEST.MF org.fortiss.af3.exploration.alg/build.properties org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/DSEFactory.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/PlatformCommunicationGraphCreator.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoder.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/SystemModelAdapter.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/TDMABusScheduler.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/EDFSchedulerBase.java org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/display/.ratings org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
-
Alexander Diewald authored
* Switch the ExplorationEvaluationService to not rely on eclipse extension points but use java registration methods. This service has now a close relation to the ExplorationFeatureService that holds all ExplorationModules. Additional information and logic required for evaluation is found in the ExplorationEvaluationService. * Register the MappingEvaluatorObjective for DSML Expressions and the EvaluatorModules specific for the ParitionExploration. * Add the @Provides annotation to each evaluation function such that their method parameters are automatically injected by Guice. * Extract the parsing of IExpressions to parsers which are called from the corresponding IExplorationModules. * Provisioning interception: * Generalize the DecodingInterceptor into a ProvisionInterceptor such that it can be used for the create phase as well. Along, make the update mechanism via sub-modules providing same types optional (used only in the decode phase). * Add an Interceptor module such that already created Genotypes can be provided to other create methods that depend upon them. This avoids launching the create method for the same time several times, causing inconsistencies between the Genotypes. * Add a @Creates annotation for method interception binding. * Add additionally required @Provides annotation in the SystemModelAdaper. * Create a TaskMapper that encapsulates the Task -> ITaskAdapter associations. It is used, for instance, in the evaluators where the ExplorationTargets are defined on AF3 elements whereas the DSE internally works on reduced elements. * Remove the non-used cglib library. * Add the ByteBuddy library (v1.8.17) to be able to generate code at runtime. It is used to generate Provider Classes (using @Provides methods) that are supplied to the injectors of follow up phases (e.g., decode -> evaluate) such that previous results are available to these injectors. * NOTE / IMPORTANT: This commit leaves several outdated and (now) unused classes in place. They will be removed in follow up commits. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
- Aug 05, 2018
-
-
Alexander Diewald authored
Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-
Alexander Diewald authored
* If a phenotype is requested as an input parameter by multiple decode methods, the decoding chain would be launched many times. In order to increase performance, remember the already decoded phenotypes in the GuiceDecoder and return them in case of subsequent requests. * Extend the decoding interceptor such that it request the map of already decoded phenotypes and looks for already decoded phenotypes. If one is found it is returned instaed of invoking the decode method. * All decode methods are now intercepted by the above mentioned interceptor. Decode methods MUST be annotated with "@Decodes" from now on. * Plugin-style decoders are still supported by marking Phenotypes if they are processed by sub-decoders. Otherwise, only sub-decoders would be executed due to them placing the produced Phenotype in the above mentioned map. Signed-off-by:
Alexander Diewald <diewald@fortiss.org>
-