00001 /*!@file Beowulf/BeowulfOpts.C */ 00002 00003 // //////////////////////////////////////////////////////////////////// // 00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005 // 00005 // by the University of Southern California (USC) and the iLab at USC. // 00006 // See http://iLab.usc.edu for information about this project. // 00007 // //////////////////////////////////////////////////////////////////// // 00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected // 00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency // 00010 // in Visual Environments, and Applications'' by Christof Koch and // 00011 // Laurent Itti, California Institute of Technology, 2001 (patent // 00012 // pending; application number 09/912,225 filed July 23, 2001; see // 00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status). // 00014 // //////////////////////////////////////////////////////////////////// // 00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit. // 00016 // // 00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can // 00018 // redistribute it and/or modify it under the terms of the GNU General // 00019 // Public License as published by the Free Software Foundation; either // 00020 // version 2 of the License, or (at your option) any later version. // 00021 // // 00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope // 00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the // 00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // 00025 // PURPOSE. See the GNU General Public License for more details. // 00026 // // 00027 // You should have received a copy of the GNU General Public License // 00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write // 00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, // 00030 // Boston, MA 02111-1307 USA. // 00031 // //////////////////////////////////////////////////////////////////// // 00032 // 00033 // Primary maintainer for this file: 00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Beowulf/BeowulfOpts.C $ 00035 // $Id: BeowulfOpts.C 6437 2006-04-07 17:16:42Z rjpeters $ 00036 // 00037 00038 #ifndef BEOWULF_BEOWULFOPTS_C_DEFINED 00039 #define BEOWULF_BEOWULFOPTS_C_DEFINED 00040 00041 #include "Beowulf/BeowulfOpts.H" 00042 00043 #include "Component/ModelOptionDef.H" 00044 00045 #ifdef HAVE_ARPA_INET_H 00046 #include <arpa/inet.h> 00047 #endif 00048 #include <netinet/in.h> 00049 00050 const ModelOptionCateg MOC_BEOWULF = { 00051 MOC_SORTPRI_2, "Beowulf-Related Options" }; 00052 00053 // Format here is: 00054 // 00055 // { MODOPT_TYPE, "name", &MOC_CATEG, OPTEXP_CORE, 00056 // "description of what option does", 00057 // "long option name", 'short option name', "valid values", "default value" } 00058 // 00059 00060 // alternatively, for MODOPT_ALIAS option types, format is: 00061 // 00062 // { MODOPT_ALIAS, "", &MOC_ALIAS, OPTEXP_CORE, 00063 // "description of what alias does", 00064 // "long option name", 'short option name', "", "list of options" } 00065 // 00066 00067 // NOTE: do not change the default value of any existing option unless 00068 // you really know what you are doing! Many components will determine 00069 // their default behavior from that default value, so you may break 00070 // lots of executables if you change it. 00071 00072 // #################### Beowulf options 00073 // Used by: Beowulf 00074 const ModelOptionDef OPT_BeowulfSlaveNames = 00075 { MODOPT_ARG_STRING, "BeowulfSlaveNames", &MOC_BEOWULF, OPTEXP_CORE, 00076 "Comma-separated list of names of slaves to use, in the hostname:port " 00077 "format (default port will be used if not specified), or single absolute " 00078 "path to a text file that contains the node names, one per line.", 00079 "beowulf-slaves", '\0', "<host:port,host:port,...|/path/to/nodelist.txt>", 00080 "/etc/nodes" }; 00081 00082 // Used by: Beowulf 00083 const ModelOptionDef OPT_BeowulfMaster = 00084 { MODOPT_FLAG, "BeowulfMaster", &MOC_BEOWULF, OPTEXP_CORE, 00085 "Flags this as the master node", 00086 "beowulf-master", '\0', "", "false" }; 00087 00088 // Used by: TCPcommunicator 00089 const ModelOptionDef OPT_TCPcommunicatorIPaddr = 00090 { MODOPT_ARG(in_addr), "TCPcommunicatorIPaddr", &MOC_BEOWULF, OPTEXP_CORE, 00091 "Our IP address to use for Beowulf communications (useful if we have " 00092 "several ethernet interfaces), or 0.0.0.0 to determine it automatically " 00093 "from our hostname", 00094 "ip-addr", '\0', "<int>.<int>.<int>.<int>", "0.0.0.0" }; 00095 00096 // Used by: TCPcommunicator 00097 const ModelOptionDef OPT_TCPcommunicatorInQlen = 00098 { MODOPT_ARG(int), "TCPcommunicatorInQlen", &MOC_BEOWULF, OPTEXP_CORE, 00099 "Queue length for incoming messages, or zero for unlimited", 00100 "tcp-inqlen", '\0', "<int>", "100" }; 00101 00102 // Used by: TCPcommunicator 00103 const ModelOptionDef OPT_TCPcommunicatorOuQlen = 00104 { MODOPT_ARG(int), "TCPcommunicatorOuQlen", &MOC_BEOWULF, OPTEXP_CORE, 00105 "Queue length for outgoing messages, or zero for unlimited", 00106 "tcp-outqlen", '\0', "<int>", "100" }; 00107 00108 // Used by: TCPcommunicator 00109 const ModelOptionDef OPT_TCPcommunicatorInDropLast = 00110 { MODOPT_FLAG, "TCPcommunicatorInDropLast", &MOC_BEOWULF, OPTEXP_CORE, 00111 "Message dropping policy when incoming queue is full; if true, the " 00112 "most recent (last received) message will be dropped, otherwise, the " 00113 "least recent will be dropped", 00114 "tcp-indroplast", '\0', "", "false" }; 00115 00116 // Used by: TCPcommunicator 00117 const ModelOptionDef OPT_TCPcommunicatorOuDropLast = 00118 { MODOPT_FLAG, "TCPcommunicatorOuDropLast", &MOC_BEOWULF, OPTEXP_CORE, 00119 "Message dropping policy when outgoing queue is full; if true, the " 00120 "most recent (last queued) message will be dropped, otherwise, the " 00121 "least recent will be dropped", 00122 "tcp-outdroplast", '\0', "", "false" }; 00123 00124 // Used by: TCPcommunicator 00125 const ModelOptionDef OPT_TCPcommunicatorDisableShm = 00126 { MODOPT_FLAG, "TCPcommunicatorDisableShm", &MOC_BEOWULF, OPTEXP_CORE, 00127 "Disable the use of shared memory for faster transfers between two " 00128 "Beowulf nodes running on the same physical machine", 00129 "tcp-disable-shm", '\0', "", "false" }; 00130 00131 // Used by: TCPcommunicator 00132 const ModelOptionDef OPT_SockServPort = 00133 { MODOPT_ARG(short), "SockServPort", &MOC_BEOWULF, OPTEXP_CORE, 00134 "Port on which to listen for incoming Beowulf connections, " 00135 "or 0 to determine it from /etc/services", 00136 "ip-port", '\0', "<int>", "0" }; 00137 00138 // Used by: Beowulf 00139 const ModelOptionDef OPT_BeowulfSelfQlen = 00140 { MODOPT_ARG(int), "BeowulfSelfQlen", &MOC_BEOWULF, OPTEXP_CORE, 00141 "Queue length for self-addressed messages, or zero for unlimited", 00142 "tcp-selfqlen", '\0', "<int>", "100" }; 00143 00144 // Used by: Beowulf 00145 const ModelOptionDef OPT_BeowulfSelfDropLast = 00146 { MODOPT_FLAG, "BeowulfSelfDropLast", &MOC_BEOWULF, OPTEXP_CORE, 00147 "Message dropping policy when self-addressed message queue is full; " 00148 "if true, the most recent (last received) message will be dropped, " 00149 "otherwise, the least recent will be dropped", 00150 "tcp-selfdroplast", '\0', "", "false" }; 00151 00152 // Used by: SingleChannelBeoServer 00153 const ModelOptionDef OPT_SingleChannelBeoServerQuickMode = 00154 { MODOPT_FLAG, "SingleChannelBeoServerQuickMode", &MOC_BEOWULF, OPTEXP_CORE, 00155 "Use quick mode where only the output map is sent back for each" 00156 "channel; this will break any program that attempts to access other" 00157 "channel results, such as the pyramid queue, submaps or clipPyramid", 00158 "scbserver-quickmode", '\0', "", "true" }; 00159 00160 const ModelOptionDef OPT_BeowulfInitTimeout = 00161 { MODOPT_ARG(double), "BeowulfInitTimeout", &MOC_BEOWULF, OPTEXP_CORE, 00162 "Max time in seconds to wait for Beowulf initialization, " 00163 "or zero for unlimited", 00164 "beowulf-init-timeout", '\0', "<float>", "0" }; 00165 00166 // ###################################################################### 00167 /* So things look consistent in everyone's emacs... */ 00168 /* Local Variables: */ 00169 /* indent-tabs-mode: nil */ 00170 /* End: */ 00171 00172 #endif // BEOWULF_BEOWULFOPTS_C_DEFINED