b06335abe2
This commit was SVN r8236.
100 строки
3.0 KiB
C
100 строки
3.0 KiB
C
/*
|
|
* 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$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
/**
|
|
* @file
|
|
*/
|
|
#ifndef MCA_PML_PROC_H
|
|
#define MCA_PML_PROC_H
|
|
|
|
#include "opal/threads/mutex.h"
|
|
#include "communicator/communicator.h"
|
|
#include "group/group.h"
|
|
#include "proc/proc.h"
|
|
#include "pml_dr_endpoint.h"
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
/**
|
|
* Structure associated w/ ompi_proc_t that contains data specific
|
|
* to the PML. Note that this name is not PML specific.
|
|
*/
|
|
struct mca_pml_dr_proc_t {
|
|
mca_pml_proc_t base;
|
|
};
|
|
typedef struct mca_pml_dr_proc_t mca_pml_dr_proc_t;
|
|
OMPI_COMP_EXPORT extern opal_class_t mca_pml_dr_proc_t_class;
|
|
|
|
/**
|
|
* Return the mca_pml_proc_t instance cached in the communicators local group.
|
|
*
|
|
* @param comm Communicator
|
|
* @param rank Peer rank
|
|
* @return mca_pml_proc_t instance
|
|
*/
|
|
|
|
/* static inline mca_pml_dr_proc_t* mca_pml_dr_proc_lookup_local(ompi_communicator_t* comm, int rank) */
|
|
/* { */
|
|
/* return (mca_pml_dr_proc_t*) comm->c_local_group->grp_proc_pointers[rank]->proc_pml; */
|
|
/* } */
|
|
|
|
/* /\** */
|
|
/* * Return the mca_pml_proc_t instance cached on the communicators remote group. */
|
|
/* * */
|
|
/* * @param comm Communicator */
|
|
/* * @param rank Peer rank */
|
|
/* * @return mca_pml_proc_t instance */
|
|
/* *\/ */
|
|
|
|
/* static inline mca_pml_dr_proc_t* mca_pml_dr_proc_lookup_remote(ompi_communicator_t* comm, int rank) */
|
|
/* { */
|
|
/* return (mca_pml_dr_proc_t*) comm->c_pml_procs[rank]; */
|
|
/* } */
|
|
|
|
/* /\** */
|
|
/* * Return the mca_btl_peer_t instance corresponding to the process/btl combination. */
|
|
/* * */
|
|
/* * @param comm Communicator */
|
|
/* * @param rank Peer rank */
|
|
/* * @return mca_pml_proc_t instance */
|
|
/* *\/ */
|
|
|
|
/* static inline struct mca_btl_base_endpoint_t* mca_pml_dr_proc_lookup_remote_endpoint( */
|
|
/* ompi_communicator_t* comm, */
|
|
/* int rank, */
|
|
/* struct mca_btl_base_module_t* btl) */
|
|
/* { */
|
|
/* mca_pml_dr_proc_t* proc = (mca_pml_dr_proc_t*) comm->c_pml_procs[rank]; */
|
|
/* size_t i, size = mca_pml_dr_ep_array_get_size(&proc->btl_eager); */
|
|
/* mca_pml_dr_endpoint_t* endpoint = proc->btl_eager.arr_endpoints; */
|
|
/* for(i = 0; i < size; i++) { */
|
|
/* if(endpoint->btl == btl) { */
|
|
/* return endpoint->btl_endpoint; */
|
|
/* } */
|
|
/* endpoint++; */
|
|
/* } */
|
|
/* return NULL; */
|
|
/* } */
|
|
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
}
|
|
#endif
|
|
#endif
|
|
|