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

📄 proc.h

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 H
字号:
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana *                         University Research and Technology *                         Corporation.  All rights reserved. * Copyright (c) 2004-2005 The University of Tennessee and The University *                         of Tennessee Research Foundation.  All rights *                         reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,  *                         University of Stuttgart.  All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. *                         All rights reserved. * Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved. * $COPYRIGHT$ *  * Additional copyrights may follow *  * $HEADER$ */#ifndef OMPI_PROC#define OMPI_PROC#include "ompi/types.h"#include "opal/class/opal_list.h"#include "orte/dss/dss_types.h"#include "opal/threads/mutex.h"#include "orte/mca/ns/ns_types.h"#if defined(c_plusplus) || defined(__cplusplus)extern "C" {#endifOMPI_DECLSPEC extern opal_class_t ompi_proc_t_class;struct ompi_proc_t {    /** allow proc to be placed on a list */    opal_list_item_t          super;    /** this process' name */    orte_process_name_t       proc_name;    /** BML specific proc data */    struct mca_bml_base_endpoint_t* proc_bml;    /** PML specific proc data */    struct mca_pml_base_endpoint_t* proc_pml;    /** MCA module exchange data */    opal_object_t*            proc_modex;    /** architecture of this process */    uint32_t                  proc_arch;    /** process-wide convertor */    struct ompi_convertor_t*  proc_convertor;    /** process-wide lock */    opal_mutex_t              proc_lock;    /** Keep the hostname around for debugging purposes */    char *proc_hostname;    /** flags for this proc */    uint8_t                   proc_flags;};/** * Convenience typedef */typedef struct ompi_proc_t ompi_proc_t;OMPI_DECLSPEC extern ompi_proc_t* ompi_proc_local_proc;/*  * Flags  *//** * Flag to indicate that the proc is on the same node as the local proc */#define OMPI_PROC_FLAG_LOCAL  0x01/** * Query the run-time environment and build list of available proc instances. */int ompi_proc_init(void);/** * Release the processes at the end of the application */int ompi_proc_finalize(void);/** * Returns the list of proc instances associated with this job. */ompi_proc_t** ompi_proc_world(size_t* size);/** * Returns the list of all known proc instances. */ompi_proc_t** ompi_proc_all(size_t* size);/** * Returns a list (of one) proc instances. */ompi_proc_t** ompi_proc_self(size_t* size);/** * Returns the proc instance corresponding to the local proc. */static inline ompi_proc_t* ompi_proc_local(void) {       extern ompi_proc_t* ompi_proc_local_proc;    return ompi_proc_local_proc;}/** * Returns the proc instance for a given name */ompi_proc_t * ompi_proc_find ( const orte_process_name_t* name );/** * INPUT: ompi_proc_t **proclist : list of process pointers * INPUT: int proclistsize       : lenght of the proclist array * IN/OUT: orte_buffer_t *buf    : an orte_buffer containing the packed names *  * This function takes a list of ompi_proc_t pointers (e.g. as given * in groups) and returns a orte buffer containing all information * needed to add the proc to a remote list.  This includes the ORTE * process name, the architecture, and the hostname.  Ordering is * maintained.  The buffer is packed to be sent to a remote node with * different architecture (endian or word size).  The buffer can be * dss unloaded to be sent using MPI or send using rml_send_packed. * * Return values: *  OMPI_SUCCESS               on success *  OMPI_ERROR:                other errors */int ompi_proc_pack(ompi_proc_t **proclist, int proclistsize,                   orte_buffer_t *buf);/** * INPUT: orte_buffer_t *buf       : orte_buffer containing the packed names * INPUT: int proclistsize         : number of expected proc-pointres * OUTPUT: ompi_proc_t ***proclist : list of process pointers * * This function unpacks a packed list of ompi_proc_t structures and * returns the ordered list of proc structures.  If the given proc is * already "known", the architecture and hostname information in the * buffer is ignored.  If the proc is "new" to this process, it will * be added to the global list of known procs, with information * provided in the buffer.  The lookup actions are always entirely * local.  The proclist returned is a list of pointers to all procs in * the buffer, whether they were previously known or are new to this * process.  PML_ADD_PROCS will be called on the list of new processes * discovered during this operation. * * Return value: *   OMPI_SUCCESS               on success *   OMPI_ERROR                 else */int ompi_proc_unpack(orte_buffer_t *buf, int proclistsize, ompi_proc_t ***proclist);#if defined(c_plusplus) || defined(__cplusplus)}#endif#endif /* OMPI_PROC */

⌨️ 快捷键说明

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