#ifndef MLX_DISTRIBUTED_GROUP_H
#define MLX_DISTRIBUTED_GROUP_H
#include <stdbool.h>
#include "mlx/c/stream.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct mlx_distributed_group_ {
void* ctx;
} mlx_distributed_group;
mlx_distributed_group mlx_distributed_group_new(void);
int mlx_distributed_group_free(mlx_distributed_group group);
int mlx_distributed_init(
mlx_distributed_group* res,
bool strict,
const char* bk );
int mlx_distributed_group_rank(mlx_distributed_group group);
int mlx_distributed_group_size(mlx_distributed_group group);
int mlx_distributed_group_split(
mlx_distributed_group* res,
mlx_distributed_group group,
int color,
int key);
bool mlx_distributed_is_available(const char* bk );
#ifdef __cplusplus
}
#endif
#endif