public void OnNext(IAllocatedEvaluator allocatedEvaluator) { IConfiguration contextConfiguration = _groupCommDriver.GetContextConfiguration(); int partitionNum; if (_groupCommDriver.IsMasterContextConfiguration(contextConfiguration)) { partitionNum = -1; } else { lock (_lockObj) { partitionNum = _partitionInex; _partitionInex++; } } IConfiguration gcServiceConfiguration = _groupCommDriver.GetServiceConfiguration(); gcServiceConfiguration = Configurations.Merge(gcServiceConfiguration, _centroidCodecConf, _controlMessageCodecConf, _processedResultsCodecConf); IConfiguration commonServiceConfiguration = TangFactory.GetTang().NewConfigurationBuilder(gcServiceConfiguration) .BindNamedParameter <DataPartitionCache.PartitionIndex, int>(GenericType <DataPartitionCache.PartitionIndex> .Class, partitionNum.ToString(CultureInfo.InvariantCulture)) .BindNamedParameter <KMeansConfiguratioinOptions.ExecutionDirectory, string>(GenericType <KMeansConfiguratioinOptions.ExecutionDirectory> .Class, _executionDirectory) .BindNamedParameter <KMeansConfiguratioinOptions.TotalNumEvaluators, int>(GenericType <KMeansConfiguratioinOptions.TotalNumEvaluators> .Class, _totalEvaluators.ToString(CultureInfo.InvariantCulture)) .BindNamedParameter <KMeansConfiguratioinOptions.K, int>(GenericType <KMeansConfiguratioinOptions.K> .Class, _clustersNumber.ToString(CultureInfo.InvariantCulture)) .Build(); IConfiguration dataCacheServiceConfiguration = ServiceConfiguration.ConfigurationModule .Set(ServiceConfiguration.Services, GenericType <DataPartitionCache> .Class) .Build(); allocatedEvaluator.SubmitContextAndService(contextConfiguration, Configurations.Merge(commonServiceConfiguration, dataCacheServiceConfiguration)); }
private ContextAndServiceConfiguration GetMapTaskContextAndServiceConfiguration(IPartitionDescriptor partitionDescriptor) { var codecConfig = TangFactory.GetTang() .NewConfigurationBuilder( StreamingCodecConfiguration <MapInputWithControlMessage <TMapInput> > .Conf.Set( StreamingCodecConfiguration <MapInputWithControlMessage <TMapInput> > .Codec, GenericType <MapInputWithControlMessageCodec <TMapInput> > .Class).Build(), StreamingCodecConfigurationMinusMessage <TMapOutput> .Conf.Build(), _configurationManager.MapInputCodecConfiguration) .Build(); var contextConf = _groupCommDriver.GetContextConfiguration(); var serviceConf = Configurations.Merge(_groupCommDriver.GetServiceConfiguration(), codecConfig, partitionDescriptor.GetPartitionConfiguration()); return(new ContextAndServiceConfiguration(contextConf, serviceConf)); }