This source file includes following definitions.
- mca_sharedfp_individual_component_init_query
- mca_sharedfp_individual_component_file_query
- mca_sharedfp_individual_component_file_unquery
- mca_sharedfp_individual_module_init
- mca_sharedfp_individual_module_finalize
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 
  26 
  27 
  28 
  29 #include "ompi_config.h"
  30 #include "mpi.h"
  31 #include "ompi/mca/sharedfp/sharedfp.h"
  32 #include "ompi/mca/sharedfp/base/base.h"
  33 #include "ompi/mca/sharedfp/individual/sharedfp_individual.h"
  34 
  35 
  36 
  37 
  38 
  39 
  40  
  41 static mca_sharedfp_base_module_1_0_0_t individual =  {
  42     mca_sharedfp_individual_module_init, 
  43     mca_sharedfp_individual_module_finalize, 
  44     mca_sharedfp_individual_seek,
  45     mca_sharedfp_individual_get_position,
  46     mca_sharedfp_individual_read,
  47     mca_sharedfp_individual_read_ordered,
  48     mca_sharedfp_individual_read_ordered_begin,
  49     mca_sharedfp_individual_read_ordered_end,
  50     mca_sharedfp_individual_iread,
  51     mca_sharedfp_individual_write,
  52     mca_sharedfp_individual_write_ordered,
  53     mca_sharedfp_individual_write_ordered_begin,
  54     mca_sharedfp_individual_write_ordered_end,
  55     mca_sharedfp_individual_iwrite,
  56     mca_sharedfp_individual_file_open,
  57     mca_sharedfp_individual_file_close
  58 };
  59 
  60 
  61 
  62 
  63 
  64 
  65 int mca_sharedfp_individual_component_init_query(bool enable_progress_threads,
  66                                             bool enable_mpi_threads)
  67 {
  68     
  69 
  70    return OMPI_SUCCESS;
  71 }
  72 
  73 struct mca_sharedfp_base_module_1_0_0_t * mca_sharedfp_individual_component_file_query (ompio_file_t *fh, int *priority) {
  74 
  75     int amode;
  76     bool wronly_flag=false;
  77     bool relaxed_order_flag=false;
  78     opal_info_t *info;
  79     int flag;
  80     int valuelen;
  81     char value[MPI_MAX_INFO_VAL+1];
  82     *priority = 0;
  83 
  84     
  85     
  86     
  87     amode = fh->f_amode;
  88     if ( amode & MPI_MODE_WRONLY || amode & MPI_MODE_RDWR ) {
  89         wronly_flag=true;
  90         if ( mca_sharedfp_individual_verbose ) {
  91             opal_output(ompi_sharedfp_base_framework.framework_output,
  92                         "mca_sharedfp_individual_component_file_query: "
  93                         "MPI_MODE_WRONLY[true=%d,false=%d]=%d\n",true,false,wronly_flag);
  94         }
  95     } else {
  96         wronly_flag=false;
  97         if ( mca_sharedfp_individual_verbose ) {
  98             opal_output(ompi_sharedfp_base_framework.framework_output,
  99                         "mca_sharedfp_individual_component_file_query: Can not run!, "
 100                         "MPI_MODE_WRONLY[true=%d,false=%d]=%d\n",true,false,wronly_flag);
 101         }
 102     }
 103 
 104     
 105     
 106     info = fh->f_info;
 107     if ( info != &(MPI_INFO_NULL->super) ){
 108         valuelen = MPI_MAX_INFO_VAL;
 109         opal_info_get ( info,"OMPIO_SHAREDFP_RELAXED_ORDERING", valuelen, value, &flag);
 110         if ( flag ) {
 111            if ( mca_sharedfp_individual_verbose ) {
 112                 opal_output(ompi_sharedfp_base_framework.framework_output,
 113                         "mca_sharedfp_individual_component_file_query: "
 114                         "OMPIO_SHAREDFP_RELAXED_ORDERING=%s\n",value);
 115             }
 116             
 117             relaxed_order_flag=true;
 118         }
 119         else {
 120             if ( mca_sharedfp_individual_verbose ) {
 121                opal_output(ompi_sharedfp_base_framework.framework_output,
 122                         "mca_sharedfp_individual_component_file_query: "
 123                         "OMPIO_SHAREDFP_RELAXED_ORDERING MPI_Info key not set. "
 124                         "Set this key in order to increase this component's priority value.\n");
 125             }
 126         }
 127     }
 128     else {
 129         if ( mca_sharedfp_individual_verbose ) {
 130             opal_output(ompi_sharedfp_base_framework.framework_output,
 131                  "mca_sharedfp_individual_component_file_query: "
 132                  "OMPIO_SHAREDFP_RELAXED_ORDERING MPI_Info key not set, "
 133                  "got MPI_INFO_NULL. Set this key in order to increase "
 134                  "this component's priority value.\n");
 135         }
 136     }
 137 
 138     
 139 
 140 
 141 
 142 
 143     if ( wronly_flag && relaxed_order_flag){
 144         *priority=mca_sharedfp_individual_priority;
 145     }
 146     else {
 147         *priority=1;
 148     }
 149 
 150     if ( wronly_flag ){
 151         return &individual;
 152     }
 153 
 154     return NULL;
 155 }
 156 
 157 int mca_sharedfp_individual_component_file_unquery (ompio_file_t *file)
 158 {
 159    
 160 
 161 
 162 
 163    return OMPI_SUCCESS;
 164 }
 165 
 166 int mca_sharedfp_individual_module_init (ompio_file_t *file)
 167 {
 168     return OMPI_SUCCESS;
 169 }
 170 
 171 
 172 int mca_sharedfp_individual_module_finalize (ompio_file_t *file)
 173 {
 174     return OMPI_SUCCESS;
 175 }