Beispiel #1
0
def start_server(create_system,
                 dbname,
                 server_name=None,
                 host=None,
                 port=None):
    print("setting up system class with database", dbname)
    system = create_system()
    db = system.create_database(dbname)

    connect_manager = ConnectServer(system,
                                    db,
                                    server_name=server_name,
                                    host=host,
                                    port=port)

    if db.number_of_minima() == 0:
        print(
            "there are no minima in the database.  Start a basinhopping run to generate minima"
        )
    else:
        print("Working on %d minima" % db.number_of_minima())

    print("to start searching for minima:")
    print("    python start_basinhopping_worker.py")
    print("to start connecting minima:")
    print("    python start_connect_worker.py")

    connect_manager.run()
Beispiel #2
0
def main():
    parser = argparse.ArgumentParser(description="dispatcher queue")
    parser.add_argument("p", type=int, help="p-spin")
    parser.add_argument("nspins", type=int, help="number of spins")
    parser.add_argument("--server-name", type=str, help="name of the dispatcher",default=None)
    parser.add_argument("--host", type=str, help="address of the host (node on which the worker is started)",default=None)
    parser.add_argument("--port", type=int, help="port number on which the worker is started)",default=0)
    args = parser.parse_args()

    # set-up database
    nspins = args.nspins
    p = args.p
    dbname = "pspin_spherical_p{}_N{}.sqlite".format(p,nspins)
    print "setting up p={} N={} with database {}".format(p, nspins, dbname)

    # deal with existing database (if calculations has to be restarted)
    try:
        db, interactions = get_database_params_server(nspins, p)
        print "Warning: database {} already exists, using the already existing database".format(dbname)
    except IOError:
        db = None
        interactions = None

    system = create_system(nspins, p, interactions)
    if db is None:
        db = system.create_database(dbname)

    # start connect manager
    server_name = args.server_name
    if args.host is None:
        hostname = socket.gethostname()
        host = Pyro4.socketutil.getIpAddress(hostname, workaround127=True)
    else:
        host = args.host
    if args.port == 0:
        port = pick_unused_port()
    else:
        port = args.port

    connect_manager = ConnectServer(system, db, server_name=server_name,
                                    host=host, port=port)

    print "printing server uri..."
    uri = write_server_uri(server_name, host, port, nspins, p)
    print "done"

    if db.number_of_minima() == 0:
        print "there are no minima in the database.  Start a basinhopping run to generate minima"
    else:
        print "Working on %d minima" % db.number_of_minima()

    print "to start searching for minima:"
    print "    python start_basinhopping_worker.py"
    print "to start connecting minima:"
    print "    python start_connect_worker.py"

    connect_manager.run()
Beispiel #3
0
def main():
    print "setting up LJ38 with database lj38.sqlite"
    system = create_system()
    db = system.create_database("lj38.sqlite")

    connect_manager = ConnectServer(system, db, server_name=server_name,
                                    host=hostname, port=port)

    if db.number_of_minima() == 0:
        print "there are no minima in the database.  Start a basinhopping run to generate minima"
    else:
        print "Working on %d minima" % db.number_of_minima()

    print "to start searching for minima:"
    print "    python start_basinhopping_worker.py"
    print "to start connecting minima:"
    print "    python start_connect_worker.py"

    connect_manager.run()
Beispiel #4
0
def start_server(create_system, dbname, server_name=None, host=None, port=None):
    print "setting up system class with database", dbname
    system = create_system()
    db = system.create_database(dbname)
    
    connect_manager=ConnectServer(system, db, server_name=server_name,
                                         host=host, port=port)

    if db.number_of_minima() == 0:
        print "there are no minima in the database.  Start a basinhopping run to generate minima"
    else:
        print "Working on %d minima" % db.number_of_minima()
    
    print "to start searching for minima:"
    print "    python start_basinhopping_worker.py"
    print "to start connecting minima:"
    print "    python start_connect_worker.py"
            
    
    connect_manager.run()
Beispiel #5
0
def main():
    print "setting up LJ38 with database lj38.sqlite"
    system = create_system()
    db = system.create_database("lj38.sqlite")

    connect_manager = ConnectServer(system,
                                    db,
                                    server_name=server_name,
                                    host=hostname,
                                    port=port)

    if db.number_of_minima() == 0:
        print "there are no minima in the database.  Start a basinhopping run to generate minima"
    else:
        print "Working on %d minima" % db.number_of_minima()

    print "to start searching for minima:"
    print "    python start_basinhopping_worker.py"
    print "to start connecting minima:"
    print "    python start_connect_worker.py"

    connect_manager.run()
Beispiel #6
0
def main():
    parser = argparse.ArgumentParser(description="dispatcher queue")
    parser.add_argument("p", type=int, help="p-spin")
    parser.add_argument("nspins", type=int, help="number of spins")
    parser.add_argument("--server-name",
                        type=str,
                        help="name of the dispatcher",
                        default=None)
    parser.add_argument(
        "--host",
        type=str,
        help="address of the host (node on which the worker is started)",
        default=None)
    parser.add_argument("--port",
                        type=int,
                        help="port number on which the worker is started)",
                        default=0)
    args = parser.parse_args()

    #set-up database
    nspins = args.nspins
    p = args.p
    dbname = "pspin_spherical_p{}_N{}.sqlite".format(p, nspins)
    print "setting up p={} N={} with database {}".format(p, nspins, dbname)

    #deal with existing database (if calculations has to be restarted)
    try:
        db, interactions = get_database_params_server(dbname, nspins, p)
        print "Warning: database {} already exists, using the already existing database".format(
            dbname)
    except IOError:
        db = None
        interactions = None

    system = create_system(nspins, p, interactions)
    if db is None:
        db = system.create_database(dbname)

    #start connect manager
    server_name = args.server_name
    if args.host is None:
        hostname = socket.gethostname()
        host = Pyro4.socketutil.getIpAddress(hostname, workaround127=True)
    else:
        host = args.host
    if args.port == 0:
        port = pick_unused_port()
    else:
        port = args.port

    connect_manager = ConnectServer(system,
                                    db,
                                    server_name=server_name,
                                    host=host,
                                    port=port)

    print "printing server uri..."
    fname = 'server_uri_pspin_spherical_p{}_N{}.uri'.format(p, nspins)
    uri = write_server_uri(fname, server_name, host, port, nspins, p)
    print "done"

    if db.number_of_minima() == 0:
        print "there are no minima in the database.  Start a basinhopping run to generate minima"
    else:
        print "Working on %d minima" % db.number_of_minima()

    print "to start searching for minima:"
    print "    python start_basinhopping_worker.py"
    print "to start connecting minima:"
    print "    python start_connect_worker.py"

    connect_manager.run()