Skip to content
Snippets Groups Projects
Commit 9a43be56 authored by Alexander Diewald's avatar Alexander Diewald
Browse files

Cleanup: Remove the outdated TaskMappingFactories

parent e4262483
No related branches found
No related tags found
1 merge request!63279
......@@ -4,4 +4,4 @@ DseProcessProblemModule.java c0de15484e71c54eff5550db5111fcd58f9568dc RED
EvaluatorWrapper.java c83a72c9f0891672295fa41ed86d82b98f0db8c9 RED
ExplorationGoalPriorityMultiEvaluator.java 171bd9ca402d81fcee4d3e0f1bc0341a947f2be5 RED
ProblemModuleBase.java 6963d7c2e0452c21d5b4fb64fa26e395ef9ffe89 RED
StrictTTDecoder.java b165a7dd95b955473c3a34966afd2544e78a174d RED
StrictTTDecoder.java 9ced8d5abd55c2f32b1a3379c77e6b62bfae1ff2 RED
......@@ -15,7 +15,6 @@
+--------------------------------------------------------------------------*/
package org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem;
import org.fortiss.af3.exploration.alg.dse.TaskMappingFactory;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.comm.MessageEncoding;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.PartitionMappingEncoding;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.platform.PlatformCommunicationGraphEncoding;
......@@ -28,9 +27,9 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.Genotyped;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.StrictTTSchedule;
import org.fortiss.af3.exploration.alg.dse.module.DecoderModule;
import org.fortiss.af3.exploration.alg.dse.sysmodel.FailSilentExecModelFactory;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.comm.TDMABusScheduler;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.proc.EDFSchedulerBase;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.proc.FailSilentEDFScheduler;
import org.opt4j.core.Genotype;
import com.google.inject.Inject;
......@@ -56,11 +55,8 @@ public class StrictTTDecoder<S extends InstantiatedTaskMappingEntry, T extends I
@SuppressWarnings("unchecked")
@Inject
public StrictTTDecoder() {
// FIXME: HACK to create the FailSilentTaskMappingFactory. Support for FaultDetection will
// be added again after switching to DI mechanisms completely.
// TaskMappingFactory<?, ?> tmFactory = TaskMappingFactory.getInstance();
TaskMappingFactory<?, ?> tmFactory = FailSilentExecModelFactory.getInstance();
simpleEDFScheduler = (EDFSchedulerBase<S, T>)tmFactory.createEDFScheduler();
// FIXME: HACK to create the scheduler.
simpleEDFScheduler = (EDFSchedulerBase<S, T>)new FailSilentEDFScheduler();
simpleBusScheduler = new TDMABusScheduler<S, T>();
}
......
/*-------------------------------------------------------------------------+
| Copyright 2014 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.exploration.alg.dse.sysmodel;
import java.util.Collection;
import org.fortiss.af3.exploration.alg.dse.TaskMappingFactory;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.FailSilentTaskMappingEncoding;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.FailSilentTaskMappingEntry;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.crossover.CrossoverRandManyAllocation;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.crossover.CrossoverSingleAllocation;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.mutate.taskmapping.MutateAllocation;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.mutate.taskmapping.MutateRedundancyDecrement;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.mutate.taskmapping.MutateRedundancyIncrement;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.StrictTTDecoder;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.comm.MessageDecoder;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.instantiatetaskgraph.InstantiatedTaskMappingDecoderAcyclic;
import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.proc.EDFSchedulerBase;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.proc.FailSilentEDFScheduler;
import com.google.inject.TypeLiteral;
/**
* This class implements the creation of the EavaluatorWrapper for the fail silent execution model.
*
* @author diewald
*/
public class FailSilentExecModelFactory
extends TaskMappingFactory<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding> {
/** The instance (singleton) of the EvaluatorWrapper factory. */
public static TaskMappingFactory<?, ?> getInstance() {
if(instance == null) {
instance = new FailSilentExecModelFactory();
}
return instance;
}
/** {@inheritDoc} */
@Override
public TypeLiteral<FailSilentTaskMappingEncoding> createGenotypeTypeLiteral() {
return new TypeLiteral<FailSilentTaskMappingEncoding>() {
// Anonymous.
};
}
/* Construct execution model specific operators. */
/** {@inheritDoc} */
@Override
public MutateAllocation<?, ?>
createMutateAllocationOperator(Collection<ITaskAdapter<?>> tasks) {
return new MutateAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(tasks);
}
/** {@inheritDoc} */
@Override
public MutateRedundancyDecrement<?, ?>
createMutateRedundancyDecrementOperator(Collection<ITaskAdapter<?>> tasks) {
return new MutateRedundancyDecrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
tasks);
}
/** {@inheritDoc} */
@Override
public MutateRedundancyIncrement<?, ?>
createMutateRedundancyIncrementOperator(Collection<ITaskAdapter<?>> tasks) {
return new MutateRedundancyIncrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
tasks);
}
/** {@inheritDoc} */
@Override
public CrossoverRandManyAllocation<?, ?>
createCrossoverRandManyAllocationOperator(double rate) {
return new CrossoverRandManyAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
rate);
}
/** {@inheritDoc} */
@Override
public CrossoverSingleAllocation<?, ?> createCrossoverSingleAllocationOperator(double rate) {
return new CrossoverSingleAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
rate);
}
/* Construct Decoders for the genotypes, aka task mappings. */
/** {@inheritDoc} */
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public InstantiatedTaskMappingDecoderAcyclic<FailSilentTaskMappingEntry>
createAbstractToAcyclicTaskGraphDecoder() {
return new InstantiatedTaskMappingDecoderAcyclic();
}
/** {@inheritDoc} */
@Override
public MessageDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
createMessageDecoder() {
return new MessageDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>();
}
/** {@inheritDoc} */
@Override
public StrictTTDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>
createStrictTTDecoder() {
return new StrictTTDecoder<FailSilentTaskMappingEntry, FailSilentTaskMappingEncoding>();
}
/**
* Creates an basic EDF scheduler that is used to decode task mappings into schedules for the
* given execution model
*/
@Override
public EDFSchedulerBase<?, ?> createEDFScheduler() {
return new FailSilentEDFScheduler();
}
}
/*-------------------------------------------------------------------------+
| Copyright 2014 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.exploration.alg.dse.sysmodel;
import java.util.Collection;
import org.fortiss.af3.exploration.alg.dse.TaskMappingFactory;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.FaultDetectionVotingTaskMappingEncoding;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.FaultDetectionVotingTaskMappingEntry;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.crossover.CrossoverRandManyAllocation;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.crossover.CrossoverSingleAllocation;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.mutate.taskmapping.MutateAllocation;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.mutate.taskmapping.MutateRedundancyDecrement;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.mutate.taskmapping.MutateRedundancyIncrement;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.StrictTTDecoder;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.comm.MessageDecoder;
import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.instantiatetaskgraph.InstantiatedTaskMappingDecoderAcyclic;
import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.proc.EDFSchedulerBase;
import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.proc.FaultDetectionVotingEDFScheduler;
import com.google.inject.TypeLiteral;
/**
* This class implements the creation of the EavaluatorWrapper for the fault detection by voting
* model.
*
* @author diewald
*/
public class FaultDetectionVotingExecModelFactory extends
TaskMappingFactory<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding> {
/** The instance (singleton) of the EvaluatorWrapper factory. */
public static TaskMappingFactory<?, ?> getInstance() {
if(instance == null) {
instance = new FailSilentExecModelFactory();
}
return instance;
}
/* Construct Creators for the task mapping. */
/** {@inheritDoc} */
@Override
public TypeLiteral<FaultDetectionVotingTaskMappingEncoding> createGenotypeTypeLiteral() {
return new TypeLiteral<FaultDetectionVotingTaskMappingEncoding>() {
// Anonymous.
};
}
/* Construct execution model specific operators. */
/** {@inheritDoc} */
@Override
public MutateAllocation<?, ?>
createMutateAllocationOperator(Collection<ITaskAdapter<?>> tasks) {
return new MutateAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(tasks);
}
/** {@inheritDoc} */
@Override
public MutateRedundancyDecrement<?, ?>
createMutateRedundancyDecrementOperator(Collection<ITaskAdapter<?>> tasks) {
return new MutateRedundancyDecrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
tasks);
}
/** {@inheritDoc} */
@Override
public MutateRedundancyIncrement<?, ?>
createMutateRedundancyIncrementOperator(Collection<ITaskAdapter<?>> tasks) {
return new MutateRedundancyIncrement<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
tasks);
}
/** {@inheritDoc} */
@Override
public CrossoverRandManyAllocation<?, ?>
createCrossoverRandManyAllocationOperator(double rate) {
return new CrossoverRandManyAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
rate);
}
/** {@inheritDoc} */
@Override
public CrossoverSingleAllocation<?, ?> createCrossoverSingleAllocationOperator(double rate) {
return new CrossoverSingleAllocation<AbstractTaskMappingEntry, AbstractTaskMappingEncoding>(
rate);
}
/*
* Construct Decoders and Schedules for the genotypes, aka task mappings.
*/
/** {@inheritDoc} */
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public InstantiatedTaskMappingDecoderAcyclic<FaultDetectionVotingTaskMappingEntry>
createAbstractToAcyclicTaskGraphDecoder() {
return new InstantiatedTaskMappingDecoderAcyclic();
}
/** {@inheritDoc} */
@Override
public MessageDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
createMessageDecoder() {
return new MessageDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>();
}
/** {@inheritDoc} */
@Override
public StrictTTDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>
createStrictTTDecoder() {
return new StrictTTDecoder<FaultDetectionVotingTaskMappingEntry, FaultDetectionVotingTaskMappingEncoding>();
}
/** {@inheritDoc} */
@Override
public EDFSchedulerBase<?, ?> createEDFScheduler() {
return new FaultDetectionVotingEDFScheduler();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment