33 #define ASYNC_TAG 1001 35 #define ASYNC_CMD_EXIT 1 36 #define ASYNC_CMD_REGISTER_OUTPUT 2 37 #define ASYNC_CMD_OUTPUT 3 minimal information needed for communication between MPI_Comms
int COMPUTE_get_receive_rank(const intercomm_layout &il)
get the IO node rank that will receive our data chunk
void IO_register_output(async_IO_queue &io_queue)
void IO_do_output(async_IO_queue &io_queue)
void COMPUTE_send_exit_flag()
this function sends the exit flag from a compute node to an io node.
void IO_poll_for_output(async_IO_queue &io_queue)
SF::vector< SF::vector< mesh_int_t > > perm_a
permutation after MPI_Exchange
int loc_rank
the local rank
SF::vector< SF::vector< mesh_int_t > > perm_b
permutation before MPI_Exchange
void COMPUTE_do_output(SF_real *dat, const int lsize, const int IO_id)
SF::vector< SF::vector< long int > > layouts
data layouts
int loc_size
the local communicator size
int COMPUTE_register_output(const SF::vector< mesh_int_t > &idx, const int dpn, const char *name, const char *units)
int rem_size
the remote communicator size
int add(IGBheader *igb, const SF::vector< long int > <, const SF::commgraph< size_t > &c, const SF::vector< mesh_int_t > &pb, const SF::vector< mesh_int_t > &pa)
add one slice of IO info to the queue
SF::vector< SF::commgraph< size_t > > cg
commgraphs for MPI_Exchange
void IO_get_sender_ranks(const intercomm_layout &il, SF::vector< int > &sender)
get the compute node ranks that will send their data chunk to us
void setup(MPI_Comm ic)
setup routine for the members
int get_remote_size(MPI_Comm intercomm)
size_t size() const
The current size of the vector.
A vector storing arbitrary data.
std::map< int, std::string > units
double SF_real
Use the general double as real type.
int get_size(MPI_Comm comm=PETSC_COMM_WORLD)
int get_rank(MPI_Comm comm=PETSC_COMM_WORLD)
void IO_prepare_sort(const SF::vector< mesh_int_t > &inp_idx, SF::commgraph< size_t > &grph, SF::vector< mesh_int_t > &perm_before_comm, SF::vector< mesh_int_t > &perm_after_comm)
SF::vector< IGBheader * > IGBs
IGBs with open filehandles on rank 0.
queue with the data required for performing async IO writes to IGB