C/C++ API¶
Core¶
Class definitions¶
-
struct
SID_info¶ Public Members
-
SID_Comm *
COMM_WORLD¶ The communicator used by SID.
-
FILE *
fp_log¶ File pointer for log output.
-
int
My_rank¶ Rank of process in SID_COMM_WORLD.
-
int
n_proc¶ Number of processes in SID_COMM_WORLD communicator.
-
int
logging_active¶ Used to control whether a rank can write to the log or not.
-
int
verbosity¶ Sets the maximum indentation level of the log.
-
int
level¶ Sets the current indentation level of the log.
-
int
indent¶ If evluates to True, then next log entry needs to be indented.
-
int
I_am_Master¶ SID rank identified as the “Master Rank”.
-
int
I_am_last_rank¶ SID rank which is identified as the “Last Rank”.
-
int
rank_to_left¶ SID rank identified as being to the “left” of the current rank.
-
int
rank_to_right¶ SID rank identified as being to the “right” of the current rank.
-
time_t
time_start¶ Time of application execution start.
-
time_t
time_stop¶ Time of application execution end.
-
time_t *
time_start_level¶ Time of start for all active indentation levels.
-
time_t *
time_stop_level¶ Time of end for all active indentation levels.
-
double *
IO_size¶ I/O Size for I/O progress counter.
-
int *
time_total_level¶ Total time spent in this indent level.
-
int *
flag_use_timer¶ True if timing reporting is to be reported for this indent level.
-
char *
My_node¶ Name of the rank’s node.
-
char
My_binary[SID_MAX_FILENAME_LENGTH]¶ Application executable name.
-
SID_Comm *
-
struct
gbp_va_list¶ - #include <gbpSID_core.h>
Variadic arguments structure.
Functions¶
-
void
SID_Init(int *argc, char **argv[], void *mpi_comm_as_void)¶ Initialize the SID run-time environment This function should be called as soon as possible for any project utilizing gbpSID. It takes pointers to the run-time arguments passed to main() and an optional communicator to inherit from as parameters
- Parameters
argc: A pointer to the argument count passed to main()argv: A pointer to the argument list passed to main()mpi_comm_as_void: An optional MPI communicator to inherit from. Set to NULL to ignore.
-
void
SID_Finalize()¶ Clean-up a SID runtime configuration.
-
void
SID_exit_error(const char *fmt, int r_val, ...)¶ Exit with an error
- Parameters
fmt:r_val:...:
-
void
SID_seconds2ascii(int n_secs, char *string)¶ Convert a number of seconds to a c-style string describing the amount of time represented by it
- Parameters
n_secs:string:
-
void
SID_va_start(gbp_va_list *vargs)¶ Initialize a variadic argument list
- Parameters
vargs:
-
void
SID_add_va_arg(gbp_va_list *vargs, size_t size, void *ptr)¶ Add a variadic argument
- Parameters
vargs:size:ptr:
-
void
SID_fetch_va_arg(gbp_va_list *vargs, size_t size, void *ptr)¶ Return the content of a variadic argument
- Parameters
vargs:size:ptr:
Memory managment¶
Logging¶
Functions¶
-
void
SID_log(const char *fmt, int mode, ...)¶
-
void
SID_log_error(const char *fmt, ...)¶
-
void
SID_log_set_fp(FILE *fp)¶
-
void
SID_log_warning(const char *fmt, int mode, ...)¶
-
void
SID_log_header()¶
-
void
SID_set_verbosity(int mode, ...)¶
-
void
SID_Init_pcounter(pcounter_info *pcounter, size_t n_i, int n_report)¶
-
void
SID_check_pcounter(pcounter_info *pcounter, size_t i)¶
Message Passing Interface (MPI)¶
Functions¶
-
void
SID_Comm_init(SID_Comm **comm)¶
-
void
SID_Comm_free(SID_Comm **comm)¶
-
void
SID_Comm_list(SID_Comm *comm_in, int comm_id, SID_Comm *comm_out)¶
-
void
SID_Comm_split(SID_Comm *comm_in, int colour, int key, SID_Comm *comm_out)¶
-
void
SID_Type_size(SID_Datatype type, int *size)¶
-
void
SID_Send(void *sendbuf, int sendcount, SID_Datatype sendtype, int dest, int sendtag, SID_Comm *comm)¶
-
void
SID_Isend(void *sendbuf, int sendcount, SID_Datatype sendtype, int dest, int sendtag, SID_Comm *comm, SID_Request *request)¶
-
void
SID_Ssend(void *buf, int count, SID_Datatype datatype, int dest, int tag, SID_Comm *comm)¶
-
void
SID_Recv(void *recvbuf, int recvcount, SID_Datatype recvtype, int source, int recvtag, SID_Comm *comm, SID_Status *status)¶
-
void
SID_Irecv(void *recvbuf, int recvcount, SID_Datatype recvtype, int source, int recvtag, SID_Comm *comm, SID_Request *request)¶
-
void
SID_Sendrecv(void *sendbuf, int sendcount, SID_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, SID_Datatype recvtype, int source, int recvtag, SID_Comm *comm, SID_Status *status)¶
-
void
SID_Probe(int source, int tag, SID_Comm *comm, SID_Status *status)¶
-
void
SID_Reduce(void *sendbuf, void *recvbuf, int count, SID_Datatype datatype, SID_Op op, int root, SID_Comm *comm)¶
-
void
SID_Allreduce(void *sendbuf, void *recvbuf, int count, SID_Datatype datatype, SID_Op op, SID_Comm *comm)¶
-
void
SID_Allgather(void *sendbuf, int sendcount, SID_Datatype sendtype, void *recvbuf, int recvcount, SID_Datatype recvtype, SID_Comm *comm)¶
-
void
SID_Allgatherv(void *sendbuf, int sendcount, SID_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, SID_Datatype recvtype, SID_Comm *comm)¶
-
void
SID_Gatherv(void *sendbuf, int sendcount, SID_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, SID_Datatype recvtype, int root, SID_Comm *comm)¶
-
void
SID_Scatterv(void *sendbuf, int *sendcounts, int *displs, SID_Datatype sendtype, void *recvbuf, int recvcount, SID_Datatype recvtype, int root, SID_Comm *comm)¶
-
void
SID_Barrier(SID_Comm *comm)¶
-
void
SID_Bcast(void *buffer, int count, SID_Datatype datatype, int source_rank, SID_Comm *comm)¶
-
void
SID_Waitall(int count, SID_Request array_request[], SID_Status array_status[])¶
-
double
SID_Wtime(void)¶
File I/O¶
Functions¶
-
int
SID_fopen(const char *filename, const char *mode, SID_fp *fp)¶ Open a SID file pointer
- Return
- Parameters
filename:mode:fp:
-
int
SID_fclose(SID_fp *fp)¶ Close a SID file pointer
- Return
- Parameters
fp:
-
size_t
SID_fread(void *buffer, size_t size_per_item, size_t n_items, SID_fp *fp)¶ Perform a rank-independent read with a SID file pointer
- Return
- Parameters
buffer:size_per_item:n_items:fp:
-
size_t
SID_fwrite(void *buffer, size_t size_per_item, size_t n_items, SID_fp *fp)¶
-
void
SID_frewind(SID_fp *fp)¶
-
void
SID_fseek(SID_fp *fp, size_t size_per_item, size_t n_items, int origin)¶
-
void
SID_fskip(size_t size_per_item, size_t n_items, SID_fp *fp)¶
-
void
SID_fseek_end(SID_fp *fp)¶
-
size_t
SID_fread_all(void *buffer, size_t size_per_item, size_t n_items, SID_fp *fp)¶ Perform an identical read to all ranks with a SID file pointer
- Return
- Parameters
buffer:size_per_item:n_items:fp:
-
size_t
SID_fwrite_all(void *buffer, size_t size_per_item, size_t n_items, SID_fp *fp)¶
-
void
SID_fread_all_buffer(void *rval, size_t dtype_size, size_t n_items, SID_fp_buffer *fp_buffer)¶
-
size_t
SID_fread_ordered(void *buffer, size_t size_per_item, size_t n_items, SID_fp *fp)¶
-
size_t
SID_fwrite_ordered(void *buffer, size_t size_per_item, size_t n_items, SID_fp *fp)¶
-
int
SID_fopen_chunked(const char *filename_root, const char *mode, SID_fp *fp, void *header, ...)¶ Open a chuncked SID file pointer
- Return
- Parameters
filename_root:mode:fp:header:...:
-
int
SID_fclose_chunked(SID_fp *fp)¶ Close a chuncked SID file pointer
- Return
- Parameters
fp:
-
size_t
SID_fread_chunked(void *buffer, size_t n_x_read_local, size_t i_x_offset_local, SID_fp *fp)¶
-
size_t
SID_fread_chunked_all(void *buffer, size_t n_x_read, SID_fp *fp)¶
-
size_t
SID_fread_chunked_ordered(void *buffer, size_t n_x_read_local, SID_fp *fp)¶
-
void
SID_frewind_chunked(SID_fp *fp)¶
-
void
SID_fseek_chunked(size_t i_x_skip_local, SID_fp *fp)¶
-
void
SID_fskip_chunked(size_t n_x_skip_local, SID_fp *fp)¶
-
size_t
SID_fwrite_chunked(void *buffer, size_t n_x_write_local, size_t i_x_offset_local, SID_fp *fp)¶
-
int
SID_remove_chunked(char *filename_root)¶
-
void
SID_cat_files(const char *filename_out, int mode, int n_files, ...)¶ Concatinate a set of files
- Parameters
filename_out:mode:n_files:...:
-
void
SID_Init_fp_buffer(SID_fp *fp, size_t n_bytes_to_read, size_t n_bytes_buffer_max, SID_fp_buffer **fp_buffer)¶
-
void
SID_reset_fp_buffer(SID_fp_buffer **fp_buffer)¶
-
void
SID_free_fp_buffer(SID_fp_buffer **fp_buffer)¶
-
size_t
SID_fread_verify(void *ptr, size_t size, size_t count, FILE *stream)¶