Distributed layers#

Distributed (multi-GPU) counterparts of the serial layers. These are available in the torch_harmonics.distributed subpackage.

Coverage#

The table below shows which serial layers have a distributed counterpart and which do not.

Serial layer

Distributed counterpart

Notes

RealSHT

DistributedRealSHT

InverseRealSHT

DistributedInverseRealSHT

RealVectorSHT

DistributedRealVectorSHT

InverseRealVectorSHT

DistributedInverseRealVectorSHT

SpectralConvS2

DistributedSpectralConvS2

DiscreteContinuousConvS2

DistributedDiscreteContinuousConvS2

DiscreteContinuousConvTransposeS2

DistributedDiscreteContinuousConvTransposeS2

NeighborhoodAttentionS2

DistributedNeighborhoodAttentionS2

ResampleS2

DistributedResampleS2

QuadratureS2

DistributedQuadratureS2

AttentionS2

—

Global attention; no distributed version

GaussianRandomFieldS2

—

Sampling utility

Layer reference#

DistributedRealSHT

Distributed version of the forward (real-valued) SHT.

DistributedInverseRealSHT

Distributed version of the inverse (real-valued) SHT.

DistributedRealVectorSHT

Distributed version of the forward (real) vector SHT.

DistributedInverseRealVectorSHT

Distributed version of the inverse (real-valued) vector SHT.

DistributedSpectralConvS2

Distributed spectral convolution layer on \(S^2\) implemented with distributed real SHT (Driscoll-Healy formulation, see https://api.semanticscholar.org/CorpusID:122817218).

DistributedDiscreteContinuousConvS2

Distributed version of Discrete-continuous convolutions (DISCO) on the 2-Sphere as described in [1].

DistributedDiscreteContinuousConvTransposeS2

Distributed version of discrete-continuous transpose convolutions (DISCO) on the 2-Sphere as described in [1].

DistributedNeighborhoodAttentionS2

Distributed neighborhood attention on the 2-sphere using a ring exchange strategy for the longitude dimension and halo exchange for the latitude dimension.

DistributedResampleS2

Distributed resampling module for spherical data on the 2-sphere.

DistributedQuadratureS2

Distributed scalar quadrature on \(S^2\) for integrating spherical fields on a latitude/longitude grid, with data and weights split across polar and azimuth communicator groups.

Note

The custom C++/CUDA kernels are an implementation detail invoked from these Python modules; they have no separately documented API.