/// <summary> /// Runs the master. /// </summary> /// <param name="remainingArguments">Remaining arguments for the tuner.</param> /// <param name="runnerConfig">Configuration of the algorithm.</param> /// <returns>The best parameters.</returns> public static Dictionary <string, IAllele> Run(IEnumerable <string> remainingArguments, LingelingRunnerConfiguration runnerConfig) { var bestParameters = Master <LingelingRunner, InstanceSeedFile, RuntimeResult, TLearnerModel, TPredictorModel, TSamplingStrategy> .Run( args : remainingArguments.ToArray(), algorithmTunerBuilder : (tunerConfig, trainingInstanceFolder, testInstanceFolder) => GenericLingelingEntryPoint <TLearnerModel, TPredictorModel, TSamplingStrategy> .BuildLingelingAlgorithmTuner( tunerConfig, trainingInstanceFolder, testInstanceFolder, runnerConfig)); return(bestParameters); }
/// <summary> /// Entry point to the program. /// </summary> /// <param name="args">If 'master' is included as argument, a /// <see cref="Master{TTargetAlgorithm,TInstance,TResult}"/> is starting using the remaining arguments. /// Otherwise, a <see cref="Worker"/> is started with the provided arguments.</param> public static void Main(string[] args) { ProcessUtils.SetDefaultCultureInfo(CultureInfo.InvariantCulture); LoggingHelper.Configure($"parserLog_{ProcessUtils.GetCurrentProcessId()}.log"); // Parse arguments. var argsParser = new LingelingRunnerConfigurationParser(); if (!ArgumentParserUtils.ParseArguments(argsParser, args)) { return; } var config = argsParser.ConfigurationBuilder.Build(); // Start master or worker depending on arguments. if (argsParser.IsMaster) { var bestParameters = config.GenericParameterization switch { GenericParameterization.RandomForestAverageRank => GenericLingelingEntryPoint < GenomePredictionRandomForest <AverageRankStrategy>, GenomePredictionForestModel <GenomePredictionTree>, AverageRankStrategy> .Run(argsParser.AdditionalArguments, config), GenericParameterization.RandomForestReuseOldTrees => GenericLingelingEntryPoint < GenomePredictionRandomForest <ReuseOldTreesStrategy>, GenomePredictionForestModel <GenomePredictionTree>, ReuseOldTreesStrategy> .Run(argsParser.AdditionalArguments, config), GenericParameterization.StandardRandomForest => GenericLingelingEntryPoint < StandardRandomForestLearner <ReuseOldTreesStrategy>, GenomePredictionForestModel <GenomePredictionTree>, ReuseOldTreesStrategy> .Run(argsParser.AdditionalArguments, config), GenericParameterization.Default => GenericLingelingEntryPoint < StandardRandomForestLearner <ReuseOldTreesStrategy>, GenomePredictionForestModel <GenomePredictionTree>, ReuseOldTreesStrategy> .Run(argsParser.AdditionalArguments, config), _ => GenericLingelingEntryPoint <StandardRandomForestLearner <ReuseOldTreesStrategy>, GenomePredictionForestModel <GenomePredictionTree>, ReuseOldTreesStrategy> .Run(argsParser.AdditionalArguments, config) }; Program.LogBestParameters(bestParameters, config); } else { Worker.Run(args); } }