from IPython.config.loader import Config c = get_config() #----------------------------------------------------------------------------- # Application configuration #----------------------------------------------------------------------------- app = c.IPControllerApp # Basic Application config attributes # Start up messages are logged to stdout using the logging module. # These all happen before the twisted reactor is started and are # useful for debugging purposes. Can be (10=DEBUG,20=INFO,30=WARN,40=CRITICAL) # and smaller is more verbose. # app.log_level = 20 # Log to a file in cluster_dir/log, otherwise just log to sys.stdout. # app.log_to_file = False # Remove old logs from cluster_dir/log before starting. # app.clean_logs = True # A list of Python statements that will be run before starting the # controller. This is provided because occasionally certain things need to # be imported in the controller for pickling to work. # app.import_statements = ['import math'] # Reuse the controller's JSON files. If False, JSON files are regenerated # each time the controller is run. If True, they will be reused, *but*, you # also must set the network ports by hand. If set, this will override the # values set for the client and engine connections below. # app.reuse_files = True # Enable exec_key authentication on all messages. Default is True # app.secure = True # The working directory for the process. The application will use os.chdir # to change to this directory before starting. # app.work_dir = os.getcwd() # The log url for logging to an `iploggerz` application. This will override # log-to-file. # app.log_url = 'tcp://127.0.0.1:20202' # The specific external IP that is used to disambiguate multi-interface URLs. # The default behavior is to guess from external IPs gleaned from `socket`. # app.location = '192.168.1.123' # The ssh server remote clients should use to connect to this controller. # It must be a machine that can see the interface specified in client_ip. # The default for client_ip is localhost, in which case the sshserver must # be an external IP of the controller machine. # app.sshserver = 'controller.example.com' # the url to use for registration. If set, this overrides engine-ip, # engine-transport client-ip,client-transport, and regport. # c.RegistrationFactory.url = 'tcp://*:12345' # the port to use for registration. Clients and Engines both use this # port for registration. # c.RegistrationFactory.regport = 10101 #----------------------------------------------------------------------------- # Configure the Task Scheduler #----------------------------------------------------------------------------- # The routing scheme. 'pure' will use the pure-ZMQ scheduler. Any other # value will use a Python scheduler with various routing schemes. # python schemes are: lru, weighted, random, twobin. Default is 'weighted'. # Note that the pure ZMQ scheduler does not support many features, such as # dying engines, dependencies, or engine-subset load-balancing. # c.ControllerFactory.scheme = 'pure' # The Python scheduler can limit the number of outstanding tasks per engine # by using an HWM option. This allows engines with long-running tasks # to not steal too many tasks from other engines. The default is 0, which # means agressively distribute messages, never waiting for them to finish. # c.TaskScheduler.hwm = 0 # Whether to use Threads or Processes to start the Schedulers. Threads will # use less resources, but potentially reduce throughput. Default is to # use processes. Note that the a Python scheduler will always be in a Process. # c.ControllerFactory.usethreads #----------------------------------------------------------------------------- # Configure the Hub #----------------------------------------------------------------------------- # Which class to use for the db backend. Currently supported are DictDB (the # default), and MongoDB. Uncomment this line to enable MongoDB, which will # slow-down the Hub's responsiveness, but also reduce its memory footprint. # c.HubFactory.db_class = 'IPython.parallel.controller.mongodb.MongoDB' # The heartbeat ping frequency. This is the frequency (in ms) at which the # Hub pings engines for heartbeats. This determines how quickly the Hub # will react to engines coming and going. A lower number means faster response # time, but more network activity. The default is 100ms # c.HubFactory.ping = 100 # HubFactory queue port pairs, to set by name: mux, iopub, control, task. Set # each as a tuple of length 2 of ints. The default is to find random # available ports # c.HubFactory.mux = (10102,10112) #----------------------------------------------------------------------------- # Configure the client connections #----------------------------------------------------------------------------- # Basic client connection config attributes # The network interface the controller will listen on for client connections. # This should be an IP address or interface on the controller. An asterisk # means listen on all interfaces. The transport can be any transport # supported by zeromq (tcp,epgm,pgm,ib,ipc): # c.HubFactory.client_ip = '*' # c.HubFactory.client_transport = 'tcp' # individual client ports to configure by name: query_port, notifier_port # c.HubFactory.query_port = 12345 #----------------------------------------------------------------------------- # Configure the engine connections #----------------------------------------------------------------------------- # Basic config attributes for the engine connections. # The network interface the controller will listen on for engine connections. # This should be an IP address or interface on the controller. An asterisk # means listen on all interfaces. The transport can be any transport # supported by zeromq (tcp,epgm,pgm,ib,ipc): # c.HubFactory.engine_ip = '*' # c.HubFactory.engine_transport = 'tcp' # set the engine heartbeat ports to use: # c.HubFactory.hb = (10303,10313) #----------------------------------------------------------------------------- # Configure the TaskRecord database backend #----------------------------------------------------------------------------- # For memory/persistance reasons, tasks can be stored out-of-memory in a database. # Currently, only sqlite and mongodb are supported as backends, but the interface # is fairly simple, so advanced developers could write their own backend. # ----- in-memory configuration -------- # this line restores the default behavior: in-memory storage of all results. # c.HubFactory.db_class = 'IPython.parallel.controller.dictdb.DictDB' # ----- sqlite configuration -------- # use this line to activate sqlite: # c.HubFactory.db_class = 'IPython.parallel.controller.sqlitedb.SQLiteDB' # You can specify the name of the db-file. By default, this will be located # in the active cluster_dir, e.g. ~/.ipython/clusterz_default/tasks.db # c.SQLiteDB.filename = 'tasks.db' # You can also specify the location of the db-file, if you want it to be somewhere # other than the cluster_dir. # c.SQLiteDB.location = '/scratch/' # This will specify the name of the table for the controller to use. The default # behavior is to use the session ID of the SessionFactory object (a uuid). Overriding # this will result in results persisting for multiple sessions. # c.SQLiteDB.table = 'results' # ----- mongodb configuration -------- # use this line to activate mongodb: # c.HubFactory.db_class = 'IPython.parallel.controller.mongodb.MongoDB' # You can specify the args and kwargs pymongo will use when creating the Connection. # For more information on what these options might be, see pymongo documentation. # c.MongoDB.connection_kwargs = {} # c.MongoDB.connection_args = [] # This will specify the name of the mongo database for the controller to use. The default # behavior is to use the session ID of the SessionFactory object (a uuid). Overriding # this will result in task results persisting through multiple sessions. # c.MongoDB.database = 'ipythondb'