Skip to content

Commit

Permalink
Initial support for IPv6 (#8225)
Browse files Browse the repository at this point in the history
- Merge rabit socket into XGBoost.
- Dask interface support.
- Add test to the socket.
  • Loading branch information
trivialfis committed Sep 21, 2022
1 parent 7d43e74 commit b791446
Show file tree
Hide file tree
Showing 17 changed files with 924 additions and 595 deletions.
3 changes: 3 additions & 0 deletions amalgamation/xgboost-all0.cc
Expand Up @@ -91,6 +91,9 @@
#include "../src/common/timer.cc"
#include "../src/common/version.cc"

// collective
#include "../src/collective/socket.cc"

// c_api
#include "../src/c_api/c_api.cc"
#include "../src/c_api/c_api_error.cc"
2 changes: 1 addition & 1 deletion doc/conf.py
Expand Up @@ -204,7 +204,7 @@
]

intersphinx_mapping = {
"python": ("https://docs.python.org/3.6", None),
"python": ("https://docs.python.org/3.8", None),
"numpy": ("https://docs.scipy.org/doc/numpy/", None),
"scipy": ("https://docs.scipy.org/doc/scipy/reference/", None),
"pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None),
Expand Down
30 changes: 29 additions & 1 deletion doc/tutorials/dask.rst
Expand Up @@ -474,7 +474,6 @@ interface, including callback functions, custom evaluation metric and objective:
callbacks=[early_stop],
)
.. _tracker-ip:

***************
Expand Down Expand Up @@ -504,6 +503,35 @@ dask config is used:
reg = dxgb.DaskXGBRegressor()
************
IPv6 Support
************

.. versionadded:: 2.0.0

XGBoost has initial IPv6 support for the dask interface on Linux. Due to most of the
cluster support for IPv6 is partial (dual stack instead of IPv6 only), we require
additional user configuration similar to :ref:`tracker-ip` to help XGBoost obtain the
correct address information:

.. code-block:: python
import dask
from distributed import Client
from xgboost import dask as dxgb
# let xgboost know the scheduler address, use the same bracket format as dask.
with dask.config.set({"xgboost.scheduler_address": "[fd20:b6f:f759:9800::]"}):
with Client("[fd20:b6f:f759:9800::]") as client:
reg = dxgb.DaskXGBRegressor(tree_method="hist")
When GPU is used, XGBoost employs `NCCL <https://developer.nvidia.com/nccl>`_ as the
underlying communication framework, which may require some additional configuration via
environment variable depending on the setting of the cluster. Please note that IPv6
support is Unix only.


*****************************************************************************
Why is the initialization of ``DaskDMatrix`` so slow and throws weird errors
*****************************************************************************
Expand Down

0 comments on commit b791446

Please sign in to comment.