Overview
The Intel® oneAPI Collective Communications Library (oneCCL) enables developers and researchers to more quickly train newer and deeper models. This is done by using optimized communication patterns to distribute model training across multiple nodes.
The library is designed for easy integration into deep learning (DL) frameworks, whether you are implementing them from scratch or customizing existing ones.
- Built on top of lower-level communication middleware - MPI and OFI (libfabrics) which transparently support many interconnects, such as Cornelis Networks, InfiniBand, and Ethernet.
- Optimized for high performance on Intel® CPUs and GPUs.
- Allows the tradeoff of compute for communication performance to drive scalability of communication patterns.
- Enables efficient implementations of collectives that are heavily used for neural network training, including allreduce, and allgather.
2021.14 Release
Major Features Supported
- Table1
Functionality Subitems CPU GPU Collective operations Allgather X X Allgatherv X X Allreduce X X Alltoall X X Alltoallv X X Barrier X X Broadcast X X Reduce X X ReduceScatter X X Point to Point Send X X Recv X X Data types [u]int[8, 16, 32, 64] X X fp[16, 32, 64], bf16 X X Scaling Scale-up X X Scale-out X X Programming model Rank = device 1 rank per process 1 rank per process -
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New 2021.14
- Optimizations on key-value store support to scale up to 3000 nodes
- New APIs for Allgather, Broadcast and group API calls
- Performance Optimizations for scaleup for Allgather, Allreduce, and Reduce-scatter for scaleup and scaleout
- Performance Optimizations for CPU single node
- Optimizations to reuse Level Zero events.
- Change of the default mechanism for IPC exchange to pidfd
System Requirements
please see system requirements.
Previous Releases
2021.13.0 and 2021.13.1
2021.13.1
Bug fixes.
2021.13.0
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Point to Point | Send | X | X |
Recv | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Optimizations to limit the memory consumed by oneCCL
- Optimizations to limit the number of file descriptors maintained opened by oneCCL.
- Align the support for in-place for the Allgatherv and Reduce-scatter collectives to follow the same behavior as NCCL.
In particular, the Allgatherv collective is in place when:
send_buff == recv_buff + rank_offset, where rank_offset = sum (recv_counts[i]), for all I<rank.
Reduce-scatter is in-place when recv_buff == send_buff + rank *recv_count. - When using the environment variable CCL_WORKER_AFFINITY, oneCCL enforces the requirement that the length of the list should be equal to the number of workers.
- Bug fixes.
Removals
- oneCCL 2021.12 removes support for PMIx 4.2.2
2021.12
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Point to Point | Send | X | X |
Recv | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Performance improvements for scaleup for all message sizes for AllReduce, Allgather, and Reduce_Scatter.
Optimizations also include small message sizes that appear in inference apps. - Performance improvements for scaleout for Allreduce, Reduce, Allgather, and Reduce_Scatter.
- Optimized memory usage of oneCCL.
- Support for PMIx 4.2.6.
- For the 2021.12 release, the Third Party Programs file has been included as a section in this product’s release notes rather than as a separate text file.
- Bug fixes.
Removals
- oneCCL 2021.12 removes support for PMIx 4.2.2
2021.11.0, 2021.11.1 and 2021.11.2
2021.11.2 Release
This update provides bug fixes to maintain driver compatibility for Intel® Data Center GPU Max Series.
2021.11.1 Release
This update addresses stability issues with distributed Training and Inference workloads on Intel® Data Center GPU Max Series.
2021.11.0 Release
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Point to Point | Send | X | X |
Recv | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Added point to point blocking communication operations for send and receive.
- Performance optimizations for Reduce-Scatter.
- Improved profiling with Intel® Instrumentation and Tracing Technology (ITT) profiling level.
Removals
- Support of Intel® C++ Compiler Classic (icc) is removed
2021.10.0
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Improved scaling efficiency of the Scaleup algorithms for ReduceScatter
- Optimize performance of oneCCL scaleup collectives by utilizing the new embedded Data Streaming Accelerator in Intel® 4th Generation Xeon Scalable Processors (formerly code-named Sapphire Rapids)
Removals
- Sockets provider will be removed starting with 2021.10 release
- Support of Intel® C++ Compiler Classic (icc) will be removed starting with 2021.11 release
2021.9
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Improved scaling efficiency of the Scaleup algorithms for Alltoall and Allgather
- Add collective selection for scaleout algorithm for device (GPU) buffers
2021.8
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Provides optimized performance for Intel® Data Center GPU Max Series utilizing oneCCL.
- Enables support for Allreduce, Allgather, Reduce, and Alltoall connectivity for GPUs on the same node
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
2021.7 and 2021.7.1
2021.7.1 Release
Intel® oneAPI Collective Communications Library 2021.7.1 has been updated to include functional and security updates. Users should update to the latest version as it becomes available.
2021.7 Release
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- no change from previous release.
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
2021.6
Major Features Supported
Table1
Functionality | Subitems | CPU | GPU |
---|---|---|---|
Collective operations | Allgatherv | X | X |
Allreduce | X | X | |
Alltoall | X | X | |
Alltoallv | X | X | |
Barrier | X | X | |
Broadcast | X | X | |
Reduce | X | X | |
ReduceScatter | X | X | |
Data types | [u]int[8, 16, 32, 64] | X | X |
fp[16, 32, 64], bf16 | X | X | |
Scaling | Scale-up | X | X |
Scale-out | X | X | |
Programming model | Rank = device | 1 rank per process | 1 rank per process |
Service functionality
- Interoperability with SYCL*:
- Construction of oneCCL communicator object based on SYCL context and SYCL device
- Construction of oneCCL stream object based on SYCL queue
- Construction of oneCCL event object based on SYCL event
- Retrieving of SYCL event from oneCCL event associated with oneCCL collective operation
- Passing SYCL buffer as source/destination parameter of oneCCL collective operation
What's New
- Intel® oneAPI Collective Communications Library now supports Intel® Instrumentation and Tracing Technology (ITT) profiling
- Intel® oneAPI Collective Communications Library can be seamlessly integrated with Windows platforms with WSL2 (Windows Subsystem for Linux 2) support
- Enhanced application stability with runtime dependency check for Level Zero, in Intel® oneAPI Collective Communications Library
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
2021.5
What's New
- Added support for output SYCL event to track status of CCL operation
- Added OFI/verbs provider with dmabuf support into package
- Bug fixes
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
oneccl::allreduce(…);
2021.4
What's New
- Memory binding of worker threads is now supported
- NIC filtering by name is now supported for OFI-based multi-NIC
- IPv6 is now supported for key-value store (KVS)
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
2021.3
What's New
- Added OFI-based multi-NIC support
- Added OFI/psm3 provider support
- Bug fixes
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
2021.2
What's New
- Added float16 datatype support.
- Added ip-port hint for customization of KVS creation.
- Optimized communicator creation phase.
- Optimized multi-GPU collectives for single-node case.
- Bug fixes
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
2021.1
What's New
- Added [u]int16 support
- Added initial support for external launch mechanism
- Fixed bugs
Known issues and limitations
- The 'using namespace oneapi;' directive is not recommended, as it may result in compilation errors when oneCCL is used with other oneAPI libraries. You can instead create a namespace alias for oneCCL, e.g.
namespace oneccl = ::oneapi::ccl; oneccl::allreduce(…);
- Limitations imposed by Intel® oneAPI DPC++ Compiler:
- SYCL buffers cannot be used from different queues
Notices and Disclaimers
Intel technologies may require enabled hardware, software or service activation.
No product or component can be absolutely secure.
Your costs and results may vary.
© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
Third Party Programs File
Intel(R) oneAPI Collective Communications Library (oneCCL)
This file is the "third-party-programs.txt" file specified in the associated
Intel end user license agreement for the Intel software you are licensing.
Third party programs and their corresponding required notices and/or license
terms are listed below.
-------------------------------------------------------------------------------
1. Intel(R) MPI Library
Copyright (c) Intel Corporation.
Intel Simplified Software License (Version October 2022)
Use and Redistribution. You may use and redistribute the software, which is
provided in binary form only, (the “Software”), without modification, provided
the following conditions are met:
* Redistributions must reproduce the above copyright notice and these terms
of use in the Software and in the documentation and/or other materials
provided with the distribution.
* Neither the name of Intel nor the names of its suppliers may be used to
endorse or promote products derived from this Software without specific
prior written permission.
* No reverse engineering, decompilation, or disassembly of the Software is
permitted, nor any modification or alteration of the Software or its
operation at any time, including during execution.
No other licenses. Except as provided in the preceding section, Intel grants no
licenses or other rights by implication, estoppel or otherwise to, patent,
copyright, trademark, trade name, service mark or other intellectual property
licenses or rights of Intel.
Third party software. “Third Party Software” means the files (if any) listed
in the “third-party-software.txt” or other similarly-named text file that may
be included with the Software. Third Party Software, even if included with the
distribution of the Software, may be governed by separate license terms,
including without limitation, third party license terms, open source software
notices and terms, and/or other Intel software license terms. These separate
license terms solely govern Your use of the Third Party Software.
DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS
WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE
THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND
ATTORNEYS' FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT
INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE.
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
No support. Intel may make changes to the Software, at any time without notice,
and is not obligated to support, update or provide training for the Software.
Termination. Your right to use the Software is terminated in the event of your
breach of this license.
Feedback. Should you provide Intel with comments, modifications, corrections,
enhancements or other input ("Feedback") related to the Software, Intel will be
free to use, disclose, reproduce, license or otherwise distribute or exploit the
Feedback in its sole discretion without any obligations or restrictions of any
kind, including without limitation, intellectual property rights or licensing
obligations.
Compliance with laws. You agree to comply with all relevant laws and regulations
governing your use, transfer, import or export (or prohibition thereof) of the
Software.
Governing law. All disputes will be governed by the laws of the United States of
America and the State of Delaware without reference to conflict of law
principles and subject to the exclusive jurisdiction of the state or federal
courts sitting in the State of Delaware, and each party agrees that it submits
to the personal jurisdiction and venue of those courts and waives any
objections. THE UNITED NATIONS CONVENTION ON CONTRACTS FOR THE INTERNATIONAL
SALE OF GOODS (1980) IS SPECIFICALLY EXCLUDED AND WILL NOT APPLY TO THE
SOFTWARE.
-------------------------------------------------------------------------------
2. MPICH
Copyright Notice + 2002 University of Chicago
Mpich license
Permission is hereby granted to use, reproduce, prepare derivative works, and
to redistribute to others. This software was authored by:
Mathematics and Computer Science Division
Argonne National Laboratory, Argonne IL 60439
(and)
Department of Computer Science
University of Illinois at Urbana-Champaign
GOVERNMENT LICENSE
Portions of this material resulted from work developed under a U.S.
Government Contract and are subject to the following license: the Government
is granted for itself and others acting on its behalf a paid-up, nonexclusive,
irrevocable worldwide license in this computer software to reproduce, prepare
derivative works, and perform publicly and display publicly.
DISCLAIMER
This computer code material was prepared, in part, as an account of work
sponsored by an agency of the United States Government. Neither the United
States, nor the University of Chicago, nor any of their employees, makes any
warranty express or implied, or assumes any legal liability or responsibility
for the accuracy, completeness, or usefulness of any information, apparatus,
product, or process disclosed, or represents that its use would not infringe
privately owned rights.
-------------------------------------------------------------------------------
3. Libfabric and OpenFabrics Interfaces (OFI)
Copyright (c) 2015-2019 Intel Corporation. All rights reserved.
Copyright (c) 2015-2019 Cisco Systems, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------
4. OpenSHMEM
Copyright 2011 Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software.
Copyright (c) 2017 Intel Corporation. All rights reserved. This software is
available to you under the BSD license.
COPYRIGHT
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer listed
in this license in the documentation and/or other materials
provided with the distribution.
- Neither the name of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
The copyright holders provide no reassurances that the source code
provided does not infringe any patent, copyright, or any other
intellectual property rights of third parties. The copyright holders
disclaim any liability to any recipient for claims brought against
recipient by any third party for infringement of that parties
intellectual property rights.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Additional copyrights may follow
======================================================================
Doug Lea's memory allocator is included in this work at src/malloc.c under the
following license terms:
This is a version (aka dlmalloc) of malloc/free/realloc written by Doug Lea and
released to the public domain, as explained at
http://creativecommons.org/licenses/publicdomain. Send questions, comments,
complaints, performance data, etc to dl@cs.oswego.edu
======================================================================
UTHash is included in this work under the following license terms:
Copyright (c) 2005-2014, Troy D. Hanson
http://troydhanson.github.com/uthash/ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
======================================================================
Some autoconf macros used in building Sandia OpenSHMEM, residing in config/,
are included from the Open MPI project under the following license terms:
Most files in this release are marked with the copyrights of the organizations
who have edited them. The copyrights below are in no particular order and
generally reflect members of the Open MPI core team who have contributed code
to this release. The copyrights for code used under license from other parties
are included in the corresponding files.
Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
University Research and Technology Corporation. All
rights reserved.
Copyright (c) 2004-2017 The University of Tennessee and The University
of Tennessee Research Foundation. All rights reserved.
Copyright (c) 2004-2010 High Performance Computing Center Stuttgart,
University of Stuttgart. All rights reserved.
Copyright (c) 2004-2008 The Regents of the University of California.
All rights reserved.
Copyright (c) 2006-2017 Los Alamos National Security, LLC. All rights
reserved.
Copyright (c) 2006-2017 Cisco Systems, Inc. All rights reserved.
Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved.
Copyright (c) 2006-2017 Sandia National Laboratories. All rights reserved.
Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Copyright (c) 2006-2017 The University of Houston. All rights reserved.
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
Copyright (c) 2007-2017 UT-Battelle, LLC. All rights reserved.
Copyright (c) 2007-2017 IBM Corporation. All rights reserved.
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
Centre, Federal Republic of Germany
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
Copyright (c) 2007 Evergrid, Inc. All rights reserved.
Copyright (c) 2008 Chelsio, Inc. All rights reserved.
Copyright (c) 2008-2009 Institut National de Recherche en
Informatique. All rights reserved.
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
All rights reserved.
Copyright (c) 2007-2017 Mellanox Technologies. All rights reserved.
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
Copyright (c) 2008-2017 Oak Ridge National Labs. All rights reserved.
Copyright (c) 2006-2012 Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2009-2015 Bull SAS. All rights reserved.
Copyright (c) 2010 ARM ltd. All rights reserved.
Copyright (c) 2016 ARM, Inc. All rights reserved.
Copyright (c) 2010-2011 Alex Brick . All rights reserved.
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
reserved.
Copyright (c) 2013-2016 Intel, Inc. All rights reserved.
Copyright (c) 2011-2017 NVIDIA Corporation. All rights reserved.
Copyright (c) 2016 Broadcom Limited. All rights reserved.
Copyright (c) 2011-2017 Fujitsu Limited. All rights reserved.
Copyright (c) 2014-2015 Hewlett-Packard Development Company, LP. All
rights reserved.
Copyright (c) 2013-2017 Research Organization for Information Science (RIST).
All rights reserved.
Copyright (c) 2017 Amazon.com, Inc. or its affiliates. All Rights
reserved.
$COPYRIGHT$
Additional copyrights may follow
$HEADER$
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer listed in this
license in the documentation and/or other materials provided with the
distribution.
- Neither the name of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
The copyright holders provide no reassurances that the source code provided
does not infringe any patent, copyright, or any other intellectual property
rights of third parties. The copyright holders disclaim any liability to any
recipient for claims brought against recipient by any third party for
infringement of that parties intellectual property rights.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
======================================================================
The "Simple PMI" implementation is derived from MPICH and has the following
license:
COPYRIGHT
The following is a notice of limited availability of the code, and disclaimer
which must be included in the prologue of the code and in all source listings
of the code.
Copyright Notice + 2002 University of Chicago
Permission is hereby granted to use, reproduce, prepare derivative works, and
to redistribute to others. This software was authored by:
Mathematics and Computer Science Division Argonne National Laboratory, Argonne
IL 60439
(and)
Department of Computer Science University of Illinois at Urbana-Champaign
GOVERNMENT LICENSE
Portions of this material resulted from work developed under a U.S. Government
Contract and are subject to the following license: the Government is granted
for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable
worldwide license in this computer software to reproduce, prepare derivative
works, and perform publicly and display publicly.
DISCLAIMER
This computer code material was prepared, in part, as an account of work
sponsored by an agency of the United States Government. Neither the United
States, nor the University of Chicago, nor any of their employees, makes any
warranty express or implied, or assumes any legal liability or responsibility
for the accuracy, completeness, or usefulness of any information, apparatus,
product, or process disclosed, or represents that its use would not infringe
privately owned rights.
======================================================================
The backtracing options used at src/backtrace.h are followed from GASNet and
has the following license:
"Copyright (c) 2000-2018 The Regents of the University of California. All
rights reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without written agreement is
hereby granted, provided that the above copyright notice and the following two
paragraphs appear in all copies of this software.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
======================================================================
-------------------------------------------------------------------------------
5. The Portable Hardware Locality (hwloc)
Copyright © 2004-2006 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved.
Copyright © 2004-2005 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved.
Copyright © 2004-2005 High Performance Computing Center Stuttgart, University of Stuttgart. All rights reserved.
Copyright © 2004-2005 The Regents of the University of California. All rights reserved.
Copyright © 2009 CNRS
Copyright © 2009-2016 Inria. All rights reserved.
Copyright © 2009-2015 Université Bordeaux
Copyright © 2009-2015 Cisco Systems, Inc. All rights reserved.
Copyright © 2009-2012 Oracle and/or its affiliates. All rights reserved.
Copyright © 2010 IBM
Copyright © 2010 Jirka Hladky
Copyright © 2012 Aleksej Saushev, The NetBSD Foundation
Copyright © 2012 Blue Brain Project, EPFL. All rights reserved.
Copyright © 2013-2014 University of Wisconsin-La Crosse. All rights reserved.
Copyright © 2015 Research Organization for Information Science and Technology (RIST). All rights reserved.
Copyright © 2015-2016 Intel, Inc. All rights reserved.
See COPYING in top-level directory.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------
6. Intel(R) Instrumentation and Tracing Technology (ITT) and Just-In-Time (JIT) API
Copyright (c) 2019 Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------
7. Intel(R) oneAPI Level Zero (Level Zero)
MIT License
Copyright (C) 2019-2021 Intel Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------
8. OpenPMIx
Most files in this release are marked with the copyrights of the organizations
who have edited them. The copyrights below are in no particular order and
generally reflect members of the Open MPI core team who have contributed code
that may or may not have been ported to PMIx. Per the terms of that LICENSE, we
include the list here. The copyrights for code used under license from other
parties are included in the corresponding files.
Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
University Research and Technology Corporation. All
rights reserved.
Copyright (c) 2004-2010 The University of Tennessee and The University
of Tennessee Research Foundation. All rights reserved.
Copyright (c) 2004-2010 High Performance Computing Center Stuttgart,
University of Stuttgart. All rights reserved.
Copyright (c) 2004-2008 The Regents of the University of California.
All rights reserved.
Copyright (c) 2006-2010 Los Alamos National Security, LLC. All rights
reserved.
Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved.
Copyright (c) 2006-2011 Sandia National Laboratories. All rights reserved.
Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Copyright (c) 2006-2010 The University of Houston. All rights reserved.
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
Copyright (c) 2007-2019 IBM Corporation. All rights reserved.
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
Centre, Federal Republic of Germany
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
Copyright (c) 2007 Evergrid, Inc. All rights reserved.
Copyright (c) 2008 Chelsio, Inc. All rights reserved.
Copyright (c) 2008-2009 Institut National de Recherche en
Informatique. All rights reserved.
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
All rights reserved.
Copyright (c) 2007-2019 Mellanox Technologies. All rights reserved.
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved.
Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2009 Bull SAS. All rights reserved.
Copyright (c) 2010 ARM ltd. All rights reserved.
Copyright (c) 2010-2011 Alex Brick <bricka@ccs.neu.edu>. All rights reserved.
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
reserved.
Copyright (c) 2013-2019 Intel, Inc. All rights reserved.
Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved.
Copyright (c) 2019 Amazon.com, Inc. or its affiliates. All Rights
reserved.
$COPYRIGHT$
Additional copyrights may follow
$HEADER$
The following LICENSE pertains to both PMIx and any code ported from Open MPI.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer listed in this
license in the documentation and/or other materials provided with the
distribution.
* Neither the name of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
The copyright holders provide no reassurances that the source code provided
does not infringe any patent, copyright, or any other intellectual property
rights of third parties. The copyright holders disclaim any liability to any
recipient for claims brought against recipient by any third party for
infringement of that parties intellectual property rights.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------
The following third party programs have their own third party programs. These
additional third party program files are as follows: 1. Intel(R) Intel(R) MPI
Library - <install_dir>/mpi/latest/share/doc/mpi/third-party-programs.txt
-------------------------------------------------------------------------------
*Other names and brands may be claimed as the property of others.