Package elki.parallel.processor
A processor in ELKI is a function, that can be applied in parallel to different objects in the database. It follows the factory design pattern, as it needs to be instantiated for every thread separately.
While this bears some similarity to mappers as used in Map Reduce, this is not an implementation of a map-reduce framework. This is why there is no "reducer" in the ELKI framework.
A key difference is that mappers may be combined into the same thread, and
exchange values via the SharedVariable
API.
The other key difference is that ELKI is not (yet?) running in a distributed framework, therefore it is perfectly possible to have a mapper query the database, or write to an output storage. It may be necessary to apply locking in such cases!
As we want to write to some storage at the end, the last processor usually will not have an "output", thus the name "map" is not a good match anymore.
-
Interface Summary Interface Description Processor Class to represent a processor factory.Processor.Instance Instance. -
Class Summary Class Description AbstractDoubleProcessor Abstract base class for processors that output double values.AbstractDoubleProcessor.Instance Instance.DoubleMinMaxProcessor Sink collecting minimum and maximum values.DoubleMinMaxProcessor.Instance Instance for a particular sub-channel / part of the data set.KDistanceProcessor Compute the kNN distance for each object.KDistanceProcessor.Instance Instance for precomputing the kNN.KNNProcessor Processor to compute the kNN of each object.KNNProcessor.Instance Instance for precomputing the kNN.WriteDataStoreProcessor<T> Output channel to store data in aWritableDataStore
.WriteDoubleDataStoreProcessor Write double values into aWritableDoubleDataStore
.WriteIntegerDataStoreProcessor Write int values into aWritableIntegerDataStore
.