Skip to content

Commit cf1e4ef

Browse files
authored
ranuk/readme-cleanup
doc: README cleanup
2 parents 549e39f + ba6e389 commit cf1e4ef

File tree

1 file changed

+20
-35
lines changed

1 file changed

+20
-35
lines changed

README.md

+20-35
Original file line numberDiff line numberDiff line change
@@ -23,63 +23,49 @@ oneCCL is governed by the [UXL Foundation](http://www.uxlfoundation.org) and is
2323
- [Explicit setup](#explicit-setup)
2424
- [Using oneCCL package from CMake](#using-oneccl-package-from-cmake)
2525
- [oneCCLConfig files generation](#onecclconfig-files-generation)
26+
- [Governance](#governance)
2627
- [Additional Resources](#additional-resources)
2728
- [Blog Posts](#blog-posts)
2829
- [Workshop Materials](#workshop-materials)
30+
- [Contribute](#contribute)
31+
- [License](#license)
32+
- [Security Policy](#security-policy)
2933

3034
## Prerequisites
3135

3236
See [System Requirements](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/oneapi-collective-communication-library-system-requirements.html) to learn about hardware and software requirements before getting started with oneCCL.
3337

34-
3538
## Installation
3639

37-
General installation scenario:
38-
39-
```
40-
cd oneCCL
41-
mkdir build
42-
cd build
43-
cmake ..
44-
make -j install
45-
```
46-
47-
If you need a clean build, create a new build directory and invoke `cmake` within it.
48-
49-
You can also do the following during installation:
50-
- [Specify installation directory](INSTALL.md#specify-installation-directory)
51-
- [Specify the compiler](INSTALL.md#specify-the-compiler)
52-
- [Specify `SYCL` cross-platform abstraction level](INSTALL.md#specify-sycl-cross-platform-abstraction-level)
53-
- [Specify the build type](INSTALL.md#specify-the-build-type)
54-
- [Enable `make` verbose output](INSTALL.md#enable-make-verbose-output)
40+
See [install instructions](INSTALL.md) to familiarize yourself with the general installation scenario and the customizations you can make during the build process.
5541

5642
## Usage
5743

58-
### Launching Example Application
44+
### Launch an Example Application
5945

6046
Use the command:
6147
```bash
6248
$ source <install_dir>/env/setvars.sh
6349
$ mpirun -n 2 <install_dir>/examples/benchmark/benchmark
6450
```
6551

66-
#### Using external mpi
52+
#### Use External mpi
6753

68-
The ccl-bundled-mpi flag in vars.sh can take values "yes" or "no" to control if bundled Intel MPI should be used or not. Current default is "yes", which means that oneCCL temporarily overrides the mpi implementation in use.
54+
In the vars.sh file, the `ccl-bundled-mpi` flag can have values "yes" or "no" to control whether bundled Intel MPI should be used or not. Current default value is "yes", which means that oneCCL temporarily overrides the mpi implementation in use.
6955

70-
In order to suppress the behavior and use user-supplied or system-default mpi use the following command *instead* of sourcing `setvars.sh`:
56+
In order to suppress the behavior and use user-supplied or system-default mpi, use the following command *instead* of sourcing `setvars.sh`:
7157

7258
```bash
7359
$ source <install_dir>/env/vars.sh --ccl-bundled-mpi=no
7460
```
7561

76-
The mpi implementation will not be overridden. Please note that, in this case, user needs to assure the system finds all required mpi-related binaries.
62+
The mpi implementation will not be overridden. In this case, you need to ensure that the system finds all required mpi-related binaries.
7763

78-
### Setting workers affinity
64+
### Set Workers Affinity
7965

8066
There are two ways to set worker threads (workers) affinity: [automatically](#setting-affinity-automatically) and [explicitly](#setting-affinity-explicitly).
8167

82-
#### Automatic setup
68+
#### Automatic Setup
8369

8470
1. Set the `CCL_WORKER_COUNT` environment variable with the desired number of workers per process.
8571
2. Set the `CCL_WORKER_AFFINITY` environment variable with the value `auto`.
@@ -91,13 +77,13 @@ export CCL_WORKER_AFFINITY=auto
9177
```
9278
With the variables above, oneCCL will create four workers per process and the pinning will depend from process launcher.
9379

94-
If an application has been launched using `mpirun` that is provided by oneCCL distribution package then workers will be automatically pinned to the last four cores available for the launched process. The exact IDs of CPU cores can be controlled by `mpirun` parameters.
80+
If an application is launched using `mpirun` that is provided by oneCCL distribution package, then workers will be automatically pinned to the last four cores available for the launched process. The exact IDs of CPU cores can be controlled by the `mpirun` parameters.
9581

9682
Otherwise, workers will be automatically pinned to the last four cores available on the node.
9783

9884
---
9985

100-
#### Explicit setup
86+
#### Explicit Setup
10187

10288
1. Set the `CCL_WORKER_COUNT` environment variable with the desired number of workers per process.
10389
2. Set the `CCL_WORKER_AFFINITY` environment variable with the IDs of cores to pin local workers.
@@ -109,11 +95,11 @@ export CCL_WORKER_AFFINITY=3,4,5,6
10995
```
11096
With the variables above, oneCCL will create four workers per process and pin them to the cores with the IDs of 3, 4, 5, and 6 respectively.
11197

112-
### Using oneCCL package from CMake
98+
### Use oneCCL package from CMake
11399

114100
`oneCCLConfig.cmake` and `oneCCLConfigVersion.cmake` are included into oneCCL distribution.
115101

116-
With these files, you can integrate oneCCL into a user project with the [find_package](https://cmake.org/cmake/help/latest/command/find_package.html) command. Successful invocation of `find_package(oneCCL <options>)` creates imported target `oneCCL` that can be passed to the [target_link_libraries](https://cmake.org/cmake/help/latest/command/target_link_libraries.html) command.
102+
With these files, you can integrate oneCCL into a project with the [find_package](https://cmake.org/cmake/help/latest/command/find_package.html) command. Successful invocation of `find_package(oneCCL <options>)` creates imported target `oneCCL` that can be passed to the [target_link_libraries](https://cmake.org/cmake/help/latest/command/target_link_libraries.html) command.
117103

118104
For example:
119105

@@ -127,7 +113,7 @@ find_package(oneCCL REQUIRED)
127113
# Connect oneCCL to foo
128114
target_link_libraries(foo oneCCL)
129115
```
130-
#### oneCCLConfig files generation
116+
#### oneCCLConfig Files Generation
131117

132118
To generate oneCCLConfig files for oneCCL package, use the provided [`cmake/scripts/config_generation.cmake`](/cmake/scripts/config_generation.cmake) file:
133119

@@ -137,14 +123,13 @@ cmake [-DOUTPUT_DIR=<output_dir>] -P cmake/script/config_generation.cmake
137123

138124
### OS File Descriptors
139125

140-
oneCCL uses [Level Zero IPC handles](https://spec.oneapi.io/level-zero/latest/core/PROG.html#memory-1) so that a process can access a memory allocation done by a different process.
141-
However, these IPC handles consume OS File Descriptors (FDs). As a result, to avoid running out of OS FDs, we recommend to increase the default limit of FDs in the system for applications running with oneCCL and GPU buffers.
126+
oneCCL uses [Level Zero IPC handles](https://spec.oneapi.io/level-zero/latest/core/PROG.html#memory-1) so that a process can access a memory allocation done by a different process. However, these IPC handles consume OS File Descriptors (FDs). To avoid running out of OS FDs, we recommend to increase the default limit of FDs in the system for applications running with oneCCL and GPU buffers.
142127

143-
The number of FDs required is application-dependent, but the recommended limit is ``1048575``. This value can be modified with the ulimit command.
128+
The number of FDs required is application-dependent, but the recommended limit is ``1048575``. This value can be modified with the `ulimit` command.
144129

145130
## Governance
146131

147-
The oneCCL project is governed by the UXL Foundation and you can get involved in this project in multiple ways. It is possible to join the [Special Interest Groups (SIG)](https://github.com/uxlfoundation/foundation) meetings where the group discuss and demonstrates work using the foundation projects. Members can also join the Open Source and Specification Working Group meetings.
132+
The oneCCL project is governed by the UXL Foundation and you can get involved in this project in multiple ways. It is possible to join the [Special Interest Groups (SIG)](https://github.com/uxlfoundation/foundation) meetings where the group discusses and demonstrates work using the foundation projects. Members can also join the Open Source and Specification Working Group meetings.
148133

149134
You can also join the mailing lists for the [UXL Foundation](https://lists.uxlfoundation.org/g/main/subgroups) to be informed of when meetings are happening and receive the latest information and discussions.
150135

0 commit comments

Comments
 (0)