root/ompi/mca/fcoll/vulcan/fcoll_vulcan_component.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. vulcan_register

   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
   4  *                         University Research and Technology
   5  *                         Corporation.  All rights reserved.
   6  * Copyright (c) 2004-2005 The University of Tennessee and The University
   7  *                         of Tennessee Research Foundation.  All rights
   8  *                         reserved.
   9  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
  10  *                         University of Stuttgart.  All rights reserved.
  11  * Copyright (c) 2004-2005 The Regents of the University of California.
  12  *                         All rights reserved.
  13  * Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
  14  * Copyright (c) 2008-2017 University of Houston. All rights reserved.
  15  * Copyright (c) 2015      Los Alamos National Security, LLC. All rights
  16  *                         reserved.
  17  * $COPYRIGHT$
  18  *
  19  * Additional copyrights may follow
  20  *
  21  * $HEADER$
  22  *
  23  * These symbols are in a file by themselves to provide nice linker
  24  * semantics.  Since linkers generally pull in symbols by object
  25  * files, keeping these symbols as the only symbols in this file
  26  * prevents utility programs such as "ompi_info" from having to import
  27  * entire components just to query their version and parameters.
  28  */
  29 
  30 #include "ompi_config.h"
  31 #include "fcoll_vulcan.h"
  32 #include "mpi.h"
  33 
  34 /*
  35  * Public string showing the fcoll ompi_vulcan component version number
  36  */
  37 const char *mca_fcoll_vulcan_component_version_string =
  38     "Open MPI vulcan collective MCA component version " OMPI_VERSION;
  39 
  40 /*
  41  * Global variables
  42  */
  43 int mca_fcoll_vulcan_priority = 10;
  44 int mca_fcoll_vulcan_num_groups = 1;
  45 int mca_fcoll_vulcan_write_chunksize = -1;
  46 int mca_fcoll_vulcan_async_io = 0;
  47 
  48 /*
  49  * Local function
  50  */
  51 static int vulcan_register(void);
  52 
  53 /*
  54  * Instantiate the public struct with all of our public information
  55  * and pointers to our public functions in it
  56  */
  57 mca_fcoll_base_component_2_0_0_t mca_fcoll_vulcan_component = {
  58 
  59     /* First, the mca_component_t struct containing meta information
  60      * about the component itself */
  61 
  62     .fcollm_version = {
  63         MCA_FCOLL_BASE_VERSION_2_0_0,
  64 
  65         /* Component name and version */
  66         .mca_component_name = "vulcan",
  67         MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION,
  68                               OMPI_RELEASE_VERSION),
  69         .mca_register_component_params = vulcan_register,
  70     },
  71     .fcollm_data = {
  72         /* The component is checkpoint ready */
  73         MCA_BASE_METADATA_PARAM_CHECKPOINT
  74     },
  75 
  76     .fcollm_init_query = mca_fcoll_vulcan_component_init_query,
  77     .fcollm_file_query = mca_fcoll_vulcan_component_file_query,
  78     .fcollm_file_unquery = mca_fcoll_vulcan_component_file_unquery,
  79 };
  80 
  81 
  82 static int
  83 vulcan_register(void)
  84 {
  85     mca_fcoll_vulcan_priority = 10;
  86     (void) mca_base_component_var_register(&mca_fcoll_vulcan_component.fcollm_version,
  87                                            "priority", "Priority of the vulcan fcoll component",
  88                                            MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
  89                                            OPAL_INFO_LVL_9,
  90                                            MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_vulcan_priority);
  91 
  92     mca_fcoll_vulcan_num_groups = 1;
  93     (void) mca_base_component_var_register(&mca_fcoll_vulcan_component.fcollm_version,
  94                                            "num_groups", "Number of subgroups created by the vulcan component",
  95                                            MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
  96                                            OPAL_INFO_LVL_9,
  97                                            MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_vulcan_num_groups);
  98 
  99     mca_fcoll_vulcan_write_chunksize = -1;
 100     (void) mca_base_component_var_register(&mca_fcoll_vulcan_component.fcollm_version,
 101                                            "write_chunksize", "Chunk size written at once. Default: stripe_size of the file system",
 102                                            MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
 103                                            OPAL_INFO_LVL_9,
 104                                            MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_vulcan_write_chunksize);
 105 
 106     mca_fcoll_vulcan_async_io = 0;
 107     (void) mca_base_component_var_register(&mca_fcoll_vulcan_component.fcollm_version,
 108                                            "async_io", "Asynchronous I/O support options. 0: Automatic choice (default) "
 109                                            "1: Asynchronous I/O only. 2: Synchronous I/O only.",
 110                                            MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
 111                                            OPAL_INFO_LVL_9,
 112                                            MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_vulcan_async_io);
 113 
 114     return OMPI_SUCCESS;
 115 }

/* [<][>][^][v][top][bottom][index][help] */