499e4de1e7
This commit was SVN r6321.
166 строки
5.4 KiB
C
166 строки
5.4 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
|
* All rights reserved.
|
|
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
|
* 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$
|
|
*/
|
|
|
|
#include "ompi_config.h"
|
|
#include "ptl_prof.h"
|
|
#include "class/ompi_bitmap.h"
|
|
|
|
static int ptl_prof_add_procs_fn( struct mca_ptl_base_module_t* ptl,
|
|
size_t nprocs,
|
|
struct ompi_proc_t** procs,
|
|
struct mca_ptl_base_peer_t** peer,
|
|
struct ompi_bitmap_t* reachable )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static int ptl_prof_del_procs_fn( struct mca_ptl_base_module_t* ptl,
|
|
size_t nprocs,
|
|
struct ompi_proc_t** procs,
|
|
struct mca_ptl_base_peer_t** peer )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static int ptl_prof_finalize_fn( struct mca_ptl_base_module_t* ptl )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static int ptl_prof_send_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_ptl_base_peer_t* ptl_base_peer,
|
|
struct mca_pml_base_send_request_t* request,
|
|
size_t offset,
|
|
size_t size,
|
|
int flags )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static int ptl_prof_put_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_ptl_base_peer_t* ptl_base_peer,
|
|
struct mca_pml_base_send_request_t* request,
|
|
size_t offset,
|
|
size_t size,
|
|
int flags )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static int ptl_prof_get_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_ptl_base_peer_t* ptl_base_peer,
|
|
struct mca_pml_base_recv_request_t* request,
|
|
size_t offset,
|
|
size_t size,
|
|
int flags )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static void ptl_prof_matched_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_ptl_base_recv_frag_t* request )
|
|
{
|
|
}
|
|
|
|
static int ptl_prof_request_init_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_pml_base_send_request_t* request )
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static void ptl_prof_request_fini_fn( struct mca_ptl_base_module_t* ptl, struct mca_pml_base_send_request_t* request )
|
|
{
|
|
}
|
|
|
|
static bool ptl_prof_match_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_ptl_base_recv_frag_t* recv_frag,
|
|
struct mca_ptl_base_match_header_t* header )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
static void ptl_prof_send_progress_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_pml_base_send_request_t* send_request,
|
|
size_t bytes_sent )
|
|
{
|
|
}
|
|
|
|
static void ptl_prof_recv_progress_fn( struct mca_ptl_base_module_t* ptl,
|
|
struct mca_pml_base_recv_request_t* recv_request,
|
|
size_t bytes_received,
|
|
size_t bytes_delivered )
|
|
{
|
|
}
|
|
|
|
/* The default profiling PTL. We will canibalize all others PTL
|
|
* except this one. It's just a simple way to have the control function
|
|
* called.
|
|
*/
|
|
mca_ptl_prof_t mca_ptl_prof = {
|
|
{ NULL,
|
|
0, /* maximum size of request cache for this PTL */
|
|
0, /* number of bytes required by PTL for request cache */
|
|
0, /* ptl_frag_first_size */
|
|
0, /* ptl_frag_min_size */
|
|
0, /* ptl_frag_max_size */
|
|
0, /* ptl_exclusivity */
|
|
0, /* ptl_latency */
|
|
0, /* ptl_bandwidth */
|
|
MCA_PTL_PUT | MCA_PTL_GET, /* ptl flags */
|
|
ptl_prof_add_procs_fn,
|
|
ptl_prof_del_procs_fn,
|
|
ptl_prof_finalize_fn,
|
|
ptl_prof_send_fn,
|
|
ptl_prof_put_fn,
|
|
ptl_prof_get_fn,
|
|
ptl_prof_matched_fn,
|
|
ptl_prof_request_init_fn,
|
|
ptl_prof_request_fini_fn,
|
|
ptl_prof_match_fn,
|
|
ptl_prof_send_progress_fn,
|
|
ptl_prof_recv_progress_fn,
|
|
NULL, /* the stack :) */
|
|
NULL,
|
|
}
|
|
};
|
|
|
|
static void ptl_prof_construct(mca_ptl_prof_t* ptl)
|
|
{
|
|
ptl->super.ptl_add_procs = ptl_prof_add_procs_fn;
|
|
ptl->super.ptl_del_procs = ptl_prof_del_procs_fn;
|
|
ptl->super.ptl_finalize = ptl_prof_finalize_fn;
|
|
ptl->super.ptl_send = ptl_prof_send_fn;
|
|
ptl->super.ptl_put = ptl_prof_put_fn;
|
|
ptl->super.ptl_get = ptl_prof_get_fn;
|
|
ptl->super.ptl_matched = ptl_prof_matched_fn;
|
|
ptl->super.ptl_request_init = ptl_prof_request_init_fn;
|
|
ptl->super.ptl_request_fini = ptl_prof_request_fini_fn;
|
|
ptl->super.ptl_match = ptl_prof_match_fn;
|
|
ptl->super.ptl_send_progress = ptl_prof_send_progress_fn;
|
|
ptl->super.ptl_recv_progress = ptl_prof_recv_progress_fn;
|
|
ptl->super.ptl_stack = NULL;
|
|
}
|
|
|
|
static void ptl_prof_destruct(mca_ptl_prof_t* ptl)
|
|
{
|
|
/* deregistering the profiling ids from the profiling layer */
|
|
}
|
|
|
|
OBJ_CLASS_INSTANCE( mca_ptl_prof_t, opal_object_t,
|
|
ptl_prof_construct,
|
|
ptl_prof_destruct );
|
|
|