49 #ifndef __IMPLICIT_ALS_TRAINING_DISTRIBUTED_H__ 50 #define __IMPLICIT_ALS_TRAINING_DISTRIBUTED_H__ 52 #include "algorithms/algorithm.h" 53 #include "algorithms/implicit_als/implicit_als_training_types.h" 59 namespace implicit_als
76 template<ComputeStep step,
typename algorithmFPType, Method method, CpuType cpu>
77 class DAAL_EXPORT DistributedContainer
84 template<
typename algorithmFPType, Method method, CpuType cpu>
85 class DAAL_EXPORT DistributedContainer<step1Local, algorithmFPType, method, cpu> :
public 86 TrainingContainerIface<distributed>
94 DistributedContainer(daal::services::Environment::env *daalEnv);
96 ~DistributedContainer();
102 services::Status compute() DAAL_C11_OVERRIDE;
107 services::Status finalizeCompute() DAAL_C11_OVERRIDE;
114 template<
typename algorithmFPType, Method method, CpuType cpu>
115 class DAAL_EXPORT DistributedContainer<step2Master, algorithmFPType, method, cpu> :
public 116 TrainingContainerIface<distributed>
124 DistributedContainer(daal::services::Environment::env *daalEnv);
126 ~DistributedContainer();
132 services::Status compute() DAAL_C11_OVERRIDE;
137 services::Status finalizeCompute() DAAL_C11_OVERRIDE;
144 template<
typename algorithmFPType, Method method, CpuType cpu>
145 class DAAL_EXPORT DistributedContainer<step3Local, algorithmFPType, method, cpu> :
public 146 TrainingContainerIface<distributed>
154 DistributedContainer(daal::services::Environment::env *daalEnv);
156 ~DistributedContainer();
162 services::Status compute() DAAL_C11_OVERRIDE;
167 services::Status finalizeCompute() DAAL_C11_OVERRIDE;
174 template<
typename algorithmFPType, Method method, CpuType cpu>
175 class DAAL_EXPORT DistributedContainer<step4Local, algorithmFPType, method, cpu> :
public 176 TrainingContainerIface<distributed>
184 DistributedContainer(daal::services::Environment::env *daalEnv);
186 ~DistributedContainer();
192 services::Status compute() DAAL_C11_OVERRIDE;
197 services::Status finalizeCompute() DAAL_C11_OVERRIDE;
212 template<ComputeStep step,
typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = fastCSR>
213 class DAAL_EXPORT Distributed :
public Training<distributed> {};
230 template<
typename algorithmFPType, Method method>
231 class DAAL_EXPORT Distributed<step1Local, algorithmFPType, method> :
public Training<distributed>
234 typedef algorithms::implicit_als::training::DistributedInput<step1Local> InputType;
235 typedef algorithms::implicit_als::Parameter ParameterType;
236 typedef algorithms::implicit_als::training::Result ResultType;
237 typedef algorithms::implicit_als::training::DistributedPartialResultStep1 PartialResultType;
239 DistributedInput<step1Local> input;
240 ParameterType parameter;
254 Distributed(
const Distributed<step1Local, algorithmFPType, method> &other) : input(other.input), parameter(other.parameter)
263 virtual int getMethod() const DAAL_C11_OVERRIDE {
return(
int)method; }
271 services::Status setPartialResult(
const DistributedPartialResultStep1Ptr& partialResult)
273 DAAL_CHECK(partialResult, services::ErrorNullPartialResult);
274 _partialResult = partialResult;
275 _pres = _partialResult.get();
276 return services::Status();
285 DistributedPartialResultStep1Ptr getPartialResult() {
return _partialResult; }
292 services::SharedPtr<Distributed<step1Local, algorithmFPType, method> > clone()
const 294 return services::SharedPtr<Distributed<step1Local, algorithmFPType, method> >(cloneImpl());
298 DistributedPartialResultStep1Ptr _partialResult;
300 virtual Distributed<step1Local, algorithmFPType, method> * cloneImpl()
const DAAL_C11_OVERRIDE
302 return new Distributed<step1Local, algorithmFPType, method>(*this);
305 services::Status allocateResult() DAAL_C11_OVERRIDE
307 return services::Status();
310 services::Status allocatePartialResult() DAAL_C11_OVERRIDE
312 services::Status s = _partialResult->allocate<algorithmFPType>(&input, ¶meter, method);
313 _pres = _partialResult.get();
317 services::Status initializePartialResult() DAAL_C11_OVERRIDE
319 return services::Status();
324 _ac =
new __DAAL_ALGORITHM_CONTAINER(distributed, DistributedContainer, step1Local, algorithmFPType, method)(&_env);
327 _partialResult.reset(
new PartialResultType());
346 template<
typename algorithmFPType, Method method>
347 class DAAL_EXPORT Distributed<step2Master, algorithmFPType, method> :
public Training<distributed>
350 typedef algorithms::implicit_als::training::DistributedInput<step2Master> InputType;
351 typedef algorithms::implicit_als::Parameter ParameterType;
352 typedef algorithms::implicit_als::training::Result ResultType;
353 typedef algorithms::implicit_als::training::DistributedPartialResultStep2 PartialResultType;
355 DistributedInput<step2Master> input;
356 ParameterType parameter;
370 Distributed(
const Distributed<step2Master, algorithmFPType, method> &other) : input(other.input), parameter(other.parameter)
379 virtual int getMethod() const DAAL_C11_OVERRIDE {
return(
int)method; }
387 services::Status setPartialResult(
const DistributedPartialResultStep2Ptr& partialResult)
389 DAAL_CHECK(partialResult, services::ErrorNullPartialResult);
390 _partialResult = partialResult;
391 _pres = _partialResult.get();
392 return services::Status();
401 DistributedPartialResultStep2Ptr getPartialResult() {
return _partialResult; }
408 services::SharedPtr<Distributed<step2Master, algorithmFPType, method> > clone()
const 410 return services::SharedPtr<Distributed<step2Master, algorithmFPType, method> >(cloneImpl());
414 DistributedPartialResultStep2Ptr _partialResult;
416 virtual Distributed<step2Master, algorithmFPType, method> * cloneImpl()
const DAAL_C11_OVERRIDE
418 return new Distributed<step2Master, algorithmFPType, method>(*this);
421 services::Status allocateResult() DAAL_C11_OVERRIDE
423 return services::Status();
426 services::Status allocatePartialResult() DAAL_C11_OVERRIDE
428 services::Status s = _partialResult->allocate<algorithmFPType>(&input, ¶meter, method);
429 _pres = _partialResult.get();
433 services::Status initializePartialResult() DAAL_C11_OVERRIDE
435 return services::Status();
440 _ac =
new __DAAL_ALGORITHM_CONTAINER(distributed, DistributedContainer, step2Master, algorithmFPType, method)(&_env);
443 _partialResult.reset(
new PartialResultType());
463 template<
typename algorithmFPType, Method method>
464 class DAAL_EXPORT Distributed<step3Local, algorithmFPType, method> :
public Training<distributed>
467 typedef algorithms::implicit_als::training::DistributedInput<step3Local> InputType;
468 typedef algorithms::implicit_als::Parameter ParameterType;
469 typedef algorithms::implicit_als::training::Result ResultType;
470 typedef algorithms::implicit_als::training::DistributedPartialResultStep3 PartialResultType;
472 DistributedInput<step3Local> input;
473 ParameterType parameter;
487 Distributed(
const Distributed<step3Local, algorithmFPType, method> &other) : input(other.input), parameter(other.parameter)
496 virtual int getMethod() const DAAL_C11_OVERRIDE {
return(
int)method; }
504 services::Status setPartialResult(
const DistributedPartialResultStep3Ptr& partialResult)
506 DAAL_CHECK(partialResult, services::ErrorNullPartialResult);
507 _partialResult = partialResult;
508 _pres = _partialResult.get();
509 return services::Status();
518 DistributedPartialResultStep3Ptr getPartialResult() {
return _partialResult; }
525 services::SharedPtr<Distributed<step3Local, algorithmFPType, method> > clone()
const 527 return services::SharedPtr<Distributed<step3Local, algorithmFPType, method> >(cloneImpl());
531 DistributedPartialResultStep3Ptr _partialResult;
533 virtual Distributed<step3Local, algorithmFPType, method> * cloneImpl()
const DAAL_C11_OVERRIDE
535 return new Distributed<step3Local, algorithmFPType, method>(*this);
538 services::Status allocateResult() DAAL_C11_OVERRIDE
540 return services::Status();
543 services::Status allocatePartialResult() DAAL_C11_OVERRIDE
545 services::Status s = _partialResult->allocate<algorithmFPType>(&input, ¶meter, method);
546 _pres = _partialResult.get();
550 services::Status initializePartialResult() DAAL_C11_OVERRIDE
552 return services::Status();
557 _ac =
new __DAAL_ALGORITHM_CONTAINER(distributed, DistributedContainer, step3Local, algorithmFPType, method)(&_env);
560 _partialResult.reset(
new PartialResultType());
579 template<
typename algorithmFPType, Method method>
580 class DAAL_EXPORT Distributed<step4Local, algorithmFPType, method> :
public Training<distributed>
583 typedef algorithms::implicit_als::training::DistributedInput<step4Local> InputType;
584 typedef algorithms::implicit_als::Parameter ParameterType;
585 typedef algorithms::implicit_als::training::Result ResultType;
586 typedef algorithms::implicit_als::training::DistributedPartialResultStep4 PartialResultType;
588 DistributedInput<step4Local> input;
589 ParameterType parameter;
603 Distributed(
const Distributed<step4Local, algorithmFPType, method> &other) : input(other.input), parameter(other.parameter)
612 virtual int getMethod() const DAAL_C11_OVERRIDE {
return(
int)method; }
620 services::Status setPartialResult(
const DistributedPartialResultStep4Ptr& partialResult)
622 DAAL_CHECK(partialResult, services::ErrorNullPartialResult);
623 _partialResult = partialResult;
624 _pres = _partialResult.get();
625 return services::Status();
634 DistributedPartialResultStep4Ptr getPartialResult() {
return _partialResult; }
641 services::SharedPtr<Distributed<step4Local, algorithmFPType, method> > clone()
const 643 return services::SharedPtr<Distributed<step4Local, algorithmFPType, method> >(cloneImpl());
647 DistributedPartialResultStep4Ptr _partialResult;
649 virtual Distributed<step4Local, algorithmFPType, method> * cloneImpl()
const DAAL_C11_OVERRIDE
651 return new Distributed<step4Local, algorithmFPType, method>(*this);
654 services::Status allocateResult() DAAL_C11_OVERRIDE
656 return services::Status();
659 services::Status allocatePartialResult() DAAL_C11_OVERRIDE
661 services::Status s = _partialResult->allocate<algorithmFPType>(&input, ¶meter, method);
662 _pres = _partialResult.get();
666 services::Status initializePartialResult() DAAL_C11_OVERRIDE
668 return services::Status();
673 _ac =
new __DAAL_ALGORITHM_CONTAINER(distributed, DistributedContainer, step4Local, algorithmFPType, method)(&_env);
676 _partialResult.reset(
new PartialResultType());
681 using interface1::DistributedContainer;
682 using interface1::Distributed;
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::setPartialResult
services::Status setPartialResult(const DistributedPartialResultStep1Ptr &partialResult)
Definition: implicit_als_training_distributed.h:271
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::input
DistributedInput< step1Local > input
Definition: implicit_als_training_distributed.h:239
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::input
DistributedInput< step4Local > input
Definition: implicit_als_training_distributed.h:588
daal::services::interface1::Environment::_envStruct
The environment structure.
Definition: env_detect.h:95
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::Distributed
Distributed()
Definition: implicit_als_training_distributed.h:359
daal
Definition: algorithm_base_common.h:57
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::setPartialResult
services::Status setPartialResult(const DistributedPartialResultStep3Ptr &partialResult)
Definition: implicit_als_training_distributed.h:504
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: implicit_als_training_distributed.h:263
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::Distributed
Distributed(const Distributed< step4Local, algorithmFPType, method > &other)
Definition: implicit_als_training_distributed.h:603
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::Distributed
Distributed()
Definition: implicit_als_training_distributed.h:592
daal::algorithms::implicit_als::interface1::Parameter
Parameters for the compute() method of the implicit ALS algorithm.
Definition: implicit_als_model.h:82
daal::algorithms::implicit_als::training::interface1::DistributedPartialResultStep4
Provides methods to access partial results obtained with the compute() method of the implicit ALS alg...
Definition: implicit_als_training_types.h:739
daal::services::ErrorNullPartialResult
Definition: error_indexes.h:131
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::Distributed
Distributed()
Definition: implicit_als_training_distributed.h:476
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: implicit_als_training_distributed.h:379
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::input
DistributedInput< step3Local > input
Definition: implicit_als_training_distributed.h:472
daal::algorithms::implicit_als::training::interface1::DistributedContainer
Class containing methods to compute the result of implicit ALS model-based training in the distribute...
Definition: implicit_als_training_distributed.h:77
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::setPartialResult
services::Status setPartialResult(const DistributedPartialResultStep4Ptr &partialResult)
Definition: implicit_als_training_distributed.h:620
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::input
DistributedInput< step2Master > input
Definition: implicit_als_training_distributed.h:355
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::Distributed
Distributed(const Distributed< step3Local, algorithmFPType, method > &other)
Definition: implicit_als_training_distributed.h:487
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::clone
services::SharedPtr< Distributed< step2Master, algorithmFPType, method > > clone() const
Definition: implicit_als_training_distributed.h:408
daal::algorithms::kmeans::init::interface1::Distributed
class DAAL_EXPORT Distributed
Computes initial clusters for the K-Means algorithm in the distributed processing mode...
Definition: kmeans_init_distributed.h:281
daal::algorithms::implicit_als::training::interface1::DistributedPartialResultStep1
Provides methods to access partial results obtained with the compute() method of the implicit ALS alg...
Definition: implicit_als_training_types.h:361
daal::distributed
Definition: daal_defines.h:133
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >
Trains the implicit ALS model in the first step of the distributed processing mode.
Definition: implicit_als_training_distributed.h:231
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: implicit_als_training_distributed.h:496
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::Distributed
Distributed()
Definition: implicit_als_training_distributed.h:243
daal::algorithms::implicit_als::training::interface1::Distributed
Trains the implicit ALS model in the distributed processing mode.
Definition: implicit_als_training_distributed.h:213
daal::services::interface1::SharedPtr::get
T * get() const
Definition: daal_shared_ptr.h:332
daal::services::interface1::SharedPtr::reset
void reset()
Definition: daal_shared_ptr.h:265
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::getPartialResult
DistributedPartialResultStep1Ptr getPartialResult()
Definition: implicit_als_training_distributed.h:285
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >
Trains the implicit ALS model in the fourth step of the distributed processing mode.
Definition: implicit_als_training_distributed.h:580
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::Distributed
Distributed(const Distributed< step2Master, algorithmFPType, method > &other)
Definition: implicit_als_training_distributed.h:370
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::clone
services::SharedPtr< Distributed< step1Local, algorithmFPType, method > > clone() const
Definition: implicit_als_training_distributed.h:292
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >
Trains the implicit ALS model in the second step of the distributed processing mode.
Definition: implicit_als_training_distributed.h:347
daal::step4Local
Definition: daal_defines.h:146
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::parameter
ParameterType parameter
Definition: implicit_als_training_distributed.h:356
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >
Trains the implicit ALS model in the third step of the distributed processing mode.
Definition: implicit_als_training_distributed.h:464
daal::algorithms::implicit_als::training::interface1::DistributedPartialResultStep3
Provides methods to access partial results obtained with the compute() method of the implicit ALS alg...
Definition: implicit_als_training_types.h:608
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::clone
services::SharedPtr< Distributed< step3Local, algorithmFPType, method > > clone() const
Definition: implicit_als_training_distributed.h:525
daal::algorithms::kmeans::interface1::DistributedContainer
class DAAL_EXPORT DistributedContainer
Provides methods to run implementations of the K-Means algorithm. This class is associated with the d...
Definition: kmeans_distributed.h:81
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::getPartialResult
DistributedPartialResultStep3Ptr getPartialResult()
Definition: implicit_als_training_distributed.h:518
daal::step1Local
Definition: daal_defines.h:143
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::getPartialResult
DistributedPartialResultStep4Ptr getPartialResult()
Definition: implicit_als_training_distributed.h:634
daal::step2Master
Definition: daal_defines.h:144
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::parameter
ParameterType parameter
Definition: implicit_als_training_distributed.h:240
daal::algorithms::implicit_als::training::interface1::Distributed< step1Local, algorithmFPType, method >::Distributed
Distributed(const Distributed< step1Local, algorithmFPType, method > &other)
Definition: implicit_als_training_distributed.h:254
daal::algorithms::implicit_als::training::interface1::DistributedPartialResultStep2
Provides methods to access partial results obtained with the compute() method of the implicit ALS alg...
Definition: implicit_als_training_types.h:465
daal::algorithms::implicit_als::training::interface1::Distributed< step3Local, algorithmFPType, method >::parameter
ParameterType parameter
Definition: implicit_als_training_distributed.h:473
daal::step3Local
Definition: daal_defines.h:145
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::getPartialResult
DistributedPartialResultStep2Ptr getPartialResult()
Definition: implicit_als_training_distributed.h:401
daal::algorithms::implicit_als::training::interface1::Distributed< step2Master, algorithmFPType, method >::setPartialResult
services::Status setPartialResult(const DistributedPartialResultStep2Ptr &partialResult)
Definition: implicit_als_training_distributed.h:387
daal::algorithms::implicit_als::training::interface1::Result
Provides methods to access the results obtained with the compute() method of the implicit ALS trainin...
Definition: implicit_als_training_types.h:795
daal::algorithms::TrainingContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the model...
Definition: training.h:76
daal::algorithms::Training
Provides methods to train models that depend on the data provided. For example, these methods enable ...
Definition: training.h:86
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: implicit_als_training_distributed.h:612
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::clone
services::SharedPtr< Distributed< step4Local, algorithmFPType, method > > clone() const
Definition: implicit_als_training_distributed.h:641
daal::algorithms::implicit_als::training::interface1::Distributed< step4Local, algorithmFPType, method >::parameter
ParameterType parameter
Definition: implicit_als_training_distributed.h:589