Skip to content

Comments

Deprecate distributed algorithms in DAAL#3481

Open
Vika-F wants to merge 13 commits intouxlfoundation:mainfrom
Vika-F:dev/distr_depr
Open

Deprecate distributed algorithms in DAAL#3481
Vika-F wants to merge 13 commits intouxlfoundation:mainfrom
Vika-F:dev/distr_depr

Conversation

@Vika-F
Copy link
Contributor

@Vika-F Vika-F commented Jan 16, 2026

Description

This PR deprecates all distributed algorithms APIs in DAAL.
The actual removal of the deprecated APIs is expected in 2026.X releases.


Checklist:

Completeness and readability

  • I have updated the documentation to reflect the changes or created a separate PR with updates and provided its number in the description, if necessary.
  • Git commit message contains an appropriate signed-off-by string (see CONTRIBUTING.md for details).
  • I have resolved any merge conflicts that might occur with the base branch.

Testing

  • I have run it locally and tested the changes extensively.
  • All CI jobs are green or I have provided justification why they aren't.
    No failures related to the changes in CI:
    http://intel-ci.intel.com/f106607e-c718-f169-a79a-a4bf010d0e2d
  • I have extended testing suite if new functionality was introduced in this PR.
    No new functionality is introduced.

Performance

not applicable.

@Vika-F Vika-F added the interfaces Update interfaces label Jan 16, 2026
@Vika-F
Copy link
Contributor Author

Vika-F commented Jan 19, 2026

/intelci: run

Copy link
Contributor

@ethanglaser ethanglaser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like implicit_als still needs deprecations - if we are planning to deprecate those distributed interfaces. Also covariance_types.h.

@ethanglaser
Copy link
Contributor

Looks like implicit_als still needs deprecations - if we are planning to deprecate those distributed interfaces. Also covariance_types.h.

Does it make sense to apply deprecations to https://github.com/uxlfoundation/oneDAL/blob/main/cpp/daal/include/algorithms/covariance/covariance_types.h and https://github.com/uxlfoundation/oneDAL/tree/main/cpp/daal/include/algorithms/implicit_als ?


- :ref:`Correlation and Variance-Covariance Matrices <cor_cov>`
- :ref:`K-Means Clustering <kmeans>`
- :ref:`Linear <linear_regression>` and :ref:`Ridge <ridge>` Regression
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can add DBSCAN and implicit ALS here

Copilot AI review requested due to automatic review settings February 6, 2026 09:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR deprecates all distributed algorithm APIs in DAAL as part of transitioning distributed functionality from the legacy DAAL interface to the modern oneAPI interface. The deprecation marks these APIs for removal in 2026.x releases, with complete transition to oneAPI expected by 2027.0.

Changes:

  • Documentation added describing deprecation timeline and affected algorithms
  • DAAL_DEPRECATED macro added to constructors and initializer lists across distributed algorithm classes
  • Reference anchors added to documentation files for cross-referencing

Reviewed changes

Copilot reviewed 28 out of 28 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/source/deprecation.rst Added deprecation notice section documenting affected algorithms and migration path
docs/source/daal/algorithms/qr/qr-without-pivoting.rst Added reference anchor for QR decomposition
docs/source/daal/algorithms/implicit_als/implicit-alternating-least-squares.rst Added reference anchor for Implicit ALS
cpp/daal/include/algorithms/svd/*.h Deprecated distributed SVD constructors and input/result classes
cpp/daal/include/algorithms/ridge_regression/*.h Deprecated distributed ridge regression constructors and input classes
cpp/daal/include/algorithms/qr/*.h Deprecated distributed QR decomposition constructors and input/result classes
cpp/daal/include/algorithms/pca/*.h Deprecated distributed PCA constructors, parameters, and input classes
cpp/daal/include/algorithms/moments/*.h Deprecated distributed low order moments constructors and input classes
cpp/daal/include/algorithms/linear_regression/*.h Deprecated distributed linear regression constructors and input classes
cpp/daal/include/algorithms/kmeans/*.h Deprecated distributed K-Means constructors, inputs, and partial results
cpp/daal/include/algorithms/implicit_als/*.h Deprecated distributed Implicit ALS constructors, parameters, inputs, and results
cpp/daal/include/algorithms/dbscan/*.h Deprecated all distributed DBSCAN constructors, containers, inputs, and results across 13 steps
cpp/daal/include/algorithms/covariance/*.h Deprecated distributed covariance constructors and input classes

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 6, 2026 14:02
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 6 comments.

Comment on lines +24 to +25
**Deprecation:** The distributed DAAL functionality in the oneDAL library is marked as deprecated.
The 2026.x releases are the last to provide it. The list of the deprecated DAAL distributed algorithms includes:
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The timeline stated here is internally inconsistent: it says 2026.x are the last releases to provide distributed DAAL, while also stating that by 2027.0 everything will be available via oneDAL-only interfaces. If 2026.x is the last to provide DAAL distributed APIs, the removal point should be clearly stated (e.g., removed starting 2027.0). Please clarify the timeline and align the wording so it unambiguously communicates last supported version vs. first removed version.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The exact dates of the removal cannot be specified now, because they are unknown yet. The removals will happen in 2026.x timeframe.

Comment on lines 37 to 38
**Reasons for deprecation:** The distributed functionality running on CPUs is being transitioned from DAAL to oneDAL.
By 2027.0 release, all distributed algorithms will be available through oneDAL interfaces only.
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The timeline stated here is internally inconsistent: it says 2026.x are the last releases to provide distributed DAAL, while also stating that by 2027.0 everything will be available via oneDAL-only interfaces. If 2026.x is the last to provide DAAL distributed APIs, the removal point should be clearly stated (e.g., removed starting 2027.0). Please clarify the timeline and align the wording so it unambiguously communicates last supported version vs. first removed version.

Copilot uses AI. Check for mistakes.
typedef typename super::PartialResultType PartialResultType;

Distributed() : Online<algorithmFPType, method>() {}
DAAL_DEPRECATED Distributed() : Online<algorithmFPType, method>() {}
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only the default constructor is marked deprecated here, but the class still exposes other public constructors (e.g., copy constructors) that remain non-deprecated. If the goal is to deprecate the distributed API surface, consider deprecating the class itself (or consistently marking all public constructors/assignment operators) to ensure users get a deprecation warning for any use of the type, not just one construction path.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is enough to deprecate only constructors, because those classes can only be created through those constructors.

Copilot AI review requested due to automatic review settings February 6, 2026 14:05
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 1 comment.

Comment on lines +530 to +531
services::SharedPtr<covariance::Distributed<step2Master, algorithmFPType, covariance::defaultDense> >(
new covariance::Distributed<step2Master, algorithmFPType, covariance::defaultDense>()));
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This deprecated constructor’s default argument instantiates covariance::Distributed<step2Master,...>, whose default ctor is now deprecated (in this PR). Many compilers emit deprecation diagnostics at the point of the default-argument declaration, which can cause warnings (or -Werror build breaks) for any TU that includes this header, even if the constructor is never called. Consider changing the default to an empty SharedPtr and performing the fallback initialization in the constructor definition (or otherwise avoiding a deprecated constructor call in the default argument expression).

Suggested change
services::SharedPtr<covariance::Distributed<step2Master, algorithmFPType, covariance::defaultDense> >(
new covariance::Distributed<step2Master, algorithmFPType, covariance::defaultDense>()));
services::SharedPtr<covariance::DistributedIface<step2Master> >());

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this leads to problems in the future, this can be changed. But for now I prefer to leave it as is.
Also, this API is planned for removal by 2027.0 release.

@david-cortes-intel
Copy link
Contributor

/intelci: run

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 6, 2026 14:51
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated no new comments.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 6, 2026 14:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 4 comments.

******************************

**Deprecation:** The distributed DAAL functionality in the oneDAL library is marked as deprecated.
The 2026.x releases are the last to provide it. The list of the deprecated DAAL distributed algorithms includes:
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor grammar/readability: 'The list of the deprecated ... includes' reads awkwardly. Consider rephrasing to 'The following DAAL distributed algorithms are deprecated:' (and optionally split the long sentence for easier scanning).

Suggested change
The 2026.x releases are the last to provide it. The list of the deprecated DAAL distributed algorithms includes:
The 2026.x releases are the last to provide it. The following DAAL distributed algorithms are deprecated:

Copilot uses AI. Check for mistakes.
typedef typename super::PartialResultType PartialResultType;

Distributed() : Online<algorithmFPType, method>() {}
DAAL_DEPRECATED Distributed() : Online<algorithmFPType, method>() {}
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deprecation is currently applied to specific constructors, but the type itself (and potentially other public construction/usage paths) may remain non-deprecated. If the goal is to deprecate the distributed API surface, consider deprecating the Distributed<...> class template/specializations themselves (or consistently marking all public constructors and key entry points), so any use triggers a diagnostic regardless of which constructor a user calls.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is enough to deprecate only constructors, because those classes can only be created through those constructors.

@Vika-F
Copy link
Contributor Author

Vika-F commented Feb 9, 2026

/intelci: run

1 similar comment
@david-cortes-intel
Copy link
Contributor

/intelci: run

@david-cortes-intel
Copy link
Contributor

The CI error:

 Linking cpp/oneapi/dal/table/backend_test_copy_convert_dpc failed: (Exit 1): dpc_dynamic_link.sh failed: error executing CppLink command (from target //cpp/oneapi/dal/table:backend_test_copy_convert_dpc)  ... (remaining 2 arguments skipped)

@Vika-F
Copy link
Contributor Author

Vika-F commented Feb 12, 2026

/intelci: run

@david-cortes-intel
Copy link
Contributor

I'm unable to access all the logs, but I see an issue with msvc likely popping up with this example: mn_naive_bayes_dense_online.

@Vika-F
Copy link
Contributor Author

Vika-F commented Feb 12, 2026

I'm unable to access all the logs, but I see an issue with msvc likely popping up with this example: mn_naive_bayes_dense_online.

@david-cortes-intel yes, I also see the errors in python examples and tests. I will investigate.

Copilot AI review requested due to automatic review settings February 19, 2026 10:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated no new comments.

@Vika-F
Copy link
Contributor Author

Vika-F commented Feb 19, 2026

/intelci: run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

interfaces Update interfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants