1
1
openmpi/ompi/mca/ptl/prof/ptl_prof.c
2005-07-03 16:06:07 +00:00

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 );