grasp_mpi_engine.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <grasp/utils.h>
#include <unistd.h>
#include <assert.h>
#include <signal.h>
#include <setjmp.h>
#include <stdbool.h>
#include "grasp_mpi_engine.h"
Data Structures | |
struct | order_t_ |
struct | result_t_ |
struct | process_info_t_ |
Typedefs | |
typedef enum worker_status_t_ | worker_status_t |
typedef struct process_info_t_ | process_info_t |
Enumerations | |
enum | { ORDER_LABEL_MAX_LEN = 255 } |
enum | { RESULT_LABEL_MAX_LEN = 255 } |
enum | { ORDER_WRAPPER_SIZE = 1024 } |
enum | { RESULT_WRAPPER_SIZE = 1024 } |
enum | { ORDER_OFFSET_NO_MORE_JOB = 0, ORDER_OFFSET_MESSAGE_SIZE = 8, ORDER_OFFSET_PAYLOAD_SIZE = 16, ORDER_OFFSET_LABEL = 24, ORDER_OFFSET_PAYLOAD = ORDER_WRAPPER_SIZE } |
enum | { RESULT_OFFSET_MESSAGE_SIZE = 0, RESULT_OFFSET_PAYLOAD_SIZE = 8, RESULT_OFFSET_LABEL = 16, RESULT_OFFSET_PAYLOAD = RESULT_WRAPPER_SIZE } |
enum | { WORKER_STATUS_TAG, ORDER_TAG, RESULT_IS_READY_TAG } |
enum | { NO_AVAILABLE_WORKER = -1 } |
enum | worker_status_t_ { WORKER_STATUS_BUSY, WORKER_STATUS_AVAILABLE } |
Functions | |
order_t * | grasp_mpi_engine_new_order (const char *label, size_t payload_size, const void *payload) |
result_t * | grasp_mpi_engine_new_result (const char *label, size_t payload_size, const void *payload) |
void | grasp_mpi_engine_delete_order (order_t *order) |
void | grasp_mpi_engine_delete_result (result_t *result) |
void | grasp_mpi_engine_get_order_label (const order_t *order, size_t label_max_size, char *label) |
void | grasp_mpi_engine_get_result_label (const result_t *result, size_t label_max_size, char *label) |
void | grasp_mpi_engine_set_debug_level (int debug_level) |
void | grasp_mpi_engine_set_appname (const char *appname) |
void * | grasp_mpi_engine_get_order_payload (const order_t *order) |
void * | grasp_mpi_engine_get_result_payload (const result_t *result) |
order_t * | grasp_mpi_engine_dummy_order_callback (int worker_rank, const void *master_info, bool *no_more_order, int *num_orders) |
result_t * | grasp_mpi_engine_dummy_task_callback (const order_t *order, const void *worker_info) |
void | grasp_mpi_engine_set_order_callback (order_callback_t order_callback, int order_payload_max_size) |
void | grasp_mpi_engine_set_task_callback (task_callback_t task_callback, int result_payload_max_size) |
void | grasp_mpi_engine_set_collect_callback (collect_callback_t collect_callback) |
void | grasp_mpi_engine_set_progress_info_callback (progress_info_callback_t progress_callback) |
bool | grasp_mpi_engine_is_master (void) |
bool | grasp_mpi_engine_is_worker (void) |
int | grasp_mpi_engine_main_loop (const void *master_info, const void *worker_info) |
Typedef Documentation
◆ process_info_t
typedef struct process_info_t_ process_info_t |
◆ worker_status_t
typedef enum worker_status_t_ worker_status_t |
Enumeration Type Documentation
◆ anonymous enum
◆ anonymous enum
◆ anonymous enum
◆ anonymous enum
◆ anonymous enum
anonymous enum |
◆ anonymous enum
anonymous enum |
◆ anonymous enum
◆ anonymous enum
◆ worker_status_t_
enum worker_status_t_ |
Function Documentation
◆ grasp_mpi_engine_delete_order()
void grasp_mpi_engine_delete_order | ( | order_t * | order | ) |
◆ grasp_mpi_engine_delete_result()
void grasp_mpi_engine_delete_result | ( | result_t * | result | ) |
◆ grasp_mpi_engine_dummy_order_callback()
order_t* grasp_mpi_engine_dummy_order_callback | ( | int | worker_rank, |
const void * | master_info, | ||
bool * | no_more_order, | ||
int * | num_orders | ||
) |
◆ grasp_mpi_engine_dummy_task_callback()
◆ grasp_mpi_engine_get_order_label()
void grasp_mpi_engine_get_order_label | ( | const order_t * | order, |
size_t | label_max_size, | ||
char * | label | ||
) |
◆ grasp_mpi_engine_get_order_payload()
void* grasp_mpi_engine_get_order_payload | ( | const order_t * | order | ) |
◆ grasp_mpi_engine_get_result_label()
void grasp_mpi_engine_get_result_label | ( | const result_t * | result, |
size_t | label_max_size, | ||
char * | label | ||
) |
◆ grasp_mpi_engine_get_result_payload()
void* grasp_mpi_engine_get_result_payload | ( | const result_t * | result | ) |
◆ grasp_mpi_engine_is_master()
bool grasp_mpi_engine_is_master | ( | void | ) |
◆ grasp_mpi_engine_is_worker()
bool grasp_mpi_engine_is_worker | ( | void | ) |
◆ grasp_mpi_engine_main_loop()
int grasp_mpi_engine_main_loop | ( | const void * | master_info, |
const void * | worker_info | ||
) |
◆ grasp_mpi_engine_new_order()
order_t* grasp_mpi_engine_new_order | ( | const char * | label, |
size_t | payload_size, | ||
const void * | payload | ||
) |
◆ grasp_mpi_engine_new_result()
result_t* grasp_mpi_engine_new_result | ( | const char * | label, |
size_t | payload_size, | ||
const void * | payload | ||
) |
◆ grasp_mpi_engine_set_appname()
void grasp_mpi_engine_set_appname | ( | const char * | appname | ) |
◆ grasp_mpi_engine_set_collect_callback()
void grasp_mpi_engine_set_collect_callback | ( | collect_callback_t | collect_callback | ) |
◆ grasp_mpi_engine_set_debug_level()
void grasp_mpi_engine_set_debug_level | ( | int | debug_level | ) |
◆ grasp_mpi_engine_set_order_callback()
void grasp_mpi_engine_set_order_callback | ( | order_callback_t | order_callback, |
int | order_payload_max_size | ||
) |
◆ grasp_mpi_engine_set_progress_info_callback()
void grasp_mpi_engine_set_progress_info_callback | ( | progress_info_callback_t | progress_callback | ) |
◆ grasp_mpi_engine_set_task_callback()
void grasp_mpi_engine_set_task_callback | ( | task_callback_t | task_callback, |
int | result_payload_max_size | ||
) |