SHAFFT 1.1.0-alpha
A Scalable High-dimensional Accelerated FFT Library
Loading...
Searching...
No Matches
shafft_nd_config_t Struct Reference

N-D configuration object (C POD struct). More...

#include <shafft.h>

Public Attributes

size_t structSize
 
int apiVersion
 
int ndim
 
shafft_t precision
 
size_t * globalShape
 
shafft_decomposition_strategy_t strategy
 
shafft_transform_layout_t outputPolicy
 
size_t memLimit
 
int * hintCommDims
 
int hintNda
 
int * commDims
 
int nda
 
int commSize
 
size_t allocElements
 
shafft_nd_layout_t initial
 
shafft_nd_layout_t output
 
int isActive
 
int activeRank
 
int activeSize
 
MPI_Comm worldComm
 
MPI_Comm activeComm
 
int nodeId
 
int nodeCount
 
char * hostname
 
size_t hostnameLen
 
char * deviceName
 
size_t deviceNameLen
 
int flags
 
int status
 
int reserved [8]
 

Detailed Description

The authoritative data store for all language APIs. Caller-owned (stack/heap); internal arrays are config-owned. Do NOT copy by value (owning pointers — double-free hazard). Use shafftConfigNDInit/shafftConfigNDRelease to manage lifecycle.

Examples
example_portable_config.c.

Member Data Documentation

◆ structSize

size_t shafft_nd_config_t::structSize

Must be sizeof(shafft_nd_config_t).

◆ apiVersion

int shafft_nd_config_t::apiVersion

API version (set by init).

◆ ndim

int shafft_nd_config_t::ndim

Number of tensor dimensions.

◆ precision

shafft_t shafft_nd_config_t::precision

FFT type (SHAFFT_C2C or SHAFFT_Z2Z).

◆ globalShape

size_t* shafft_nd_config_t::globalShape

Global extents per axis (config-owned, length = ndim).

◆ strategy

shafft_decomposition_strategy_t shafft_nd_config_t::strategy

Decomposition strategy.

◆ outputPolicy

shafft_transform_layout_t shafft_nd_config_t::outputPolicy

Forward output-layout policy.

◆ memLimit

size_t shafft_nd_config_t::memLimit

Per-rank memory limit in bytes (0 = no limit).

◆ hintCommDims

int* shafft_nd_config_t::hintCommDims

Process grid hint (config-owned, length = ndim).

◆ hintNda

int shafft_nd_config_t::hintNda

Number of distributed axes hint (0 = auto).

◆ commDims

int* shafft_nd_config_t::commDims

Resolved process grid (config-owned, length = ndim).

◆ nda

int shafft_nd_config_t::nda

Resolved number of distributed axes.

◆ commSize

int shafft_nd_config_t::commSize

Number of active ranks.

◆ allocElements

size_t shafft_nd_config_t::allocElements

Required buffer size in complex elements.

Examples
example_portable_config.c.

◆ initial

shafft_nd_layout_t shafft_nd_config_t::initial

Layout before execution.

Examples
example_portable_config.c.

◆ output

shafft_nd_layout_t shafft_nd_config_t::output

Post-forward layout (policy-dependent).

◆ isActive

int shafft_nd_config_t::isActive

Boolean: this rank participates.

◆ activeRank

int shafft_nd_config_t::activeRank

Rank within active subset; -1 if inactive.

◆ activeSize

int shafft_nd_config_t::activeSize

Number of active ranks; 0 before resolve.

◆ worldComm

MPI_Comm shafft_nd_config_t::worldComm

Dup of communicator passed to init.

◆ activeComm

MPI_Comm shafft_nd_config_t::activeComm

Subcommunicator of active ranks; MPI_COMM_NULL if inactive.

◆ nodeId

int shafft_nd_config_t::nodeId

Node identifier within the communicator.

◆ nodeCount

int shafft_nd_config_t::nodeCount

Total number of distinct nodes.

◆ hostname

char* shafft_nd_config_t::hostname

Config-owned hostname string.

◆ hostnameLen

size_t shafft_nd_config_t::hostnameLen

Length of hostname (excluding null).

◆ deviceName

char* shafft_nd_config_t::deviceName

Config-owned device name; NULL if not applicable.

◆ deviceNameLen

size_t shafft_nd_config_t::deviceNameLen

Length of deviceName (excluding null).

◆ flags

int shafft_nd_config_t::flags

Bitwise OR of shafft_config_flags_t values.

◆ status

int shafft_nd_config_t::status

Last resolve/init status code.

◆ reserved

int shafft_nd_config_t::reserved[8]

Reserved for future use.


The documentation for this struct was generated from the following file: