⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ompi_dll_defs.h

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 H
字号:
/********************************************************************** * Copyright (C) 2000-2004 by Etnus, LLC. * Copyright (C) 1999 by Etnus, Inc. * Copyright (C) 1997-1998 Dolphin Interconnect Solutions Inc. * * Permission is hereby granted to use, reproduce, prepare derivative * works, and to redistribute to others. * *				  DISCLAIMER * * Neither Dolphin Interconnect Solutions, Etnus LLC, nor any of their * employees, makes any warranty express or implied, or assumes any * legal liability or responsibility for the accuracy, completeness, * or usefulness of any information, apparatus, product, or process * disclosed, or represents that its use would not infringe privately * owned rights. * * This code was written by * James Cownie: Dolphin Interconnect Solutions. <jcownie@dolphinics.com> *               Etnus LLC <jcownie@etnus.com> **********************************************************************//* Update log * * May 19 1998 JHC: Changed the names of the structs now that we don't *              include this directly in mpi_interface.h * Oct 27 1997 JHC: Structure definitions for structures used to hold MPICH *              info required by the DLL for dumping message queues. *//*********************************************************************** * Information associated with a specific executable image */typedef struct {    const struct mqs_image_callbacks * image_callbacks;	/* Functions needed here */    /* basic structures */    struct {        int size;        struct {            int opal_list_next;        } offset;    } opal_list_item_t;    struct {        int size;        struct {            int opal_list_sentinel;        } offset;    } opal_list_t;    struct {        int size;    } ompi_free_list_item_t;    struct {        int size;    } ompi_free_list_memory_t;    struct {        int size;        struct {            int fl_elem_class;    /* opal_class_t* */            int fl_mpool;         /* struct mca_mpool_base_module_t* */            int fl_elem_size;     /* size_t */            int fl_alignment;     /* size_t */            int fl_allocations;   /* opal_list_t */            int fl_max_to_alloc;  /* size_t */            int fl_num_per_alloc; /* size_t */            int fl_num_allocated; /* size_t */        } offset;    } ompi_free_list_t;    /* requests structures */    struct {        int size;        struct {            int req_type;            int req_status;            int req_complete;            int req_state;            int req_f_to_c_index;        } offset;    } ompi_request_t;    struct {        int size;        struct {            int req_addr;            int req_count;            int req_peer;            int req_tag;            int req_comm;            int req_datatype;            int req_proc;            int req_sequence;            int req_type;            int req_pml_complete;        } offset;    } mca_pml_base_request_t;    struct {        int size;        struct {            int req_addr;            int req_bytes_packed;            int req_send_mode;        } offset;    } mca_pml_base_send_request_t;    struct {        int size;        struct {            int req_bytes_packed;        } offset;    } mca_pml_base_recv_request_t;    /* fragments for unexpected messages (as well as theirs headers) */    struct {        int size;        struct {            int hdr;            int request;        } offset;    } mca_pml_ob1_recv_frag_t;    struct {        int size;        struct {            int hdr_type;            int hdr_flags;        } offset;    } mca_pml_ob1_common_hdr_t;    struct {        int size;        struct {            int hdr_common;            int hdr_ctx;            int hdr_src;            int hdr_tag;            int hdr_seq;        } offset;    } mca_pml_ob1_match_hdr_t;    /* communicator structures */    struct {        int size;        struct {            int lowest_free;            int number_free;            int size;            int addr;        } offset;    } ompi_pointer_array_t;    struct {        int size;        struct {            int grp_proc_count;            int grp_my_rank;            int grp_flags;        } offset;    } ompi_group_t;    struct {        int size;        struct {            int c_name;            int c_contextid;            int c_my_rank;            int c_local_group;        } offset;    } ompi_communicator_t;    struct {        int size;        struct {            int MPI_SOURCE;            int MPI_TAG;            int MPI_ERROR;            int _count;            int _cancelled;        } offset;    } ompi_status_public_t;    struct {        int size;        struct {            int size;            int name;        } offset;    } ompi_datatype_t;} mpi_image_info; /*********************************************************************** * Information associated with a specific process */typedef struct group_t{    mqs_taddr_t group_base;          /* Where was it in the process  */    int         ref_count;           /* How many references to us */    int         entries;             /* How many entries */    int*        local_to_global;     /* The translation table */} group_t;/* Internal structure we hold for each communicator */typedef struct communicator_t{    struct communicator_t * next;    group_t *               group;		/* Translations */    int                     recv_context;	/* Unique ID for the communicator */    mqs_taddr_t             comm_ptr;    int                     present;    mqs_communicator        comm_info;		/* Info needed at the higher level */} communicator_t;typedef struct mqs_ompi_opal_list_t_pos {    mqs_taddr_t current_item;    mqs_taddr_t list;    mqs_taddr_t sentinel;} mqs_opal_list_t_pos;typedef struct {    mqs_opal_list_t_pos opal_list_t_pos;    mqs_taddr_t current_item;    mqs_taddr_t upper_bound;    mqs_tword_t header_space;    mqs_taddr_t free_list;    mqs_tword_t fl_elem_class;         /* opal_class_t* */    mqs_tword_t fl_mpool;              /* struct mca_mpool_base_module_t* */    mqs_tword_t fl_elem_size;          /* size_t */    mqs_tword_t fl_alignment;          /* size_t */    mqs_tword_t fl_num_per_alloc;      /* size_t */    mqs_tword_t fl_num_allocated;      /* size_t */    mqs_tword_t fl_num_initial_alloc;  /* size_t */} mqs_ompi_free_list_t_pos;/* Information for a single process, a list of communicators, some * useful addresses, and the state of the iterators. */typedef struct {  const struct mqs_process_callbacks * process_callbacks; /* Functions needed here */  struct communicator_t *communicator_list;	/* List of communicators in the process */  mqs_target_type_sizes sizes;			/* Process architecture information */  /* Addresses in the target process */  mqs_taddr_t send_queue_base;			/* Where to find the send message queues */  mqs_taddr_t recv_queue_base;			/* Where to find the recv message queues */  mqs_taddr_t sendq_base;			/* Where to find the send queue */  mqs_taddr_t commlist_base;			/* Where to find the list of communicators */  /* Other info we need to remember about it */  mqs_tword_t comm_number_free;         /* the number of available positions in                                         * the communicator array. */  mqs_tword_t comm_lowest_free;         /* the lowest free communicator */  mqs_tword_t show_internal_requests;   /* show or not the Open MPI internal requests */  /* State for the iterators */  struct communicator_t *current_communicator;	/* Easy, we're walking a simple list */  int world_proc_array_entries;  mqs_taddr_t* world_proc_array;      mqs_ompi_free_list_t_pos next_msg;            /* And state for the message iterator */  mqs_op_class  what;				/* What queue are we looking on */} mpi_process_info;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -