예제 #1
0
    def get_cooked_parameters(self):
        '''return the parameters hierarchy in a format which is suitable
        for processing by all the other parts of the python code.
        
        >>> os.environ["NCPUS_FAKE"]="4"
        >>> t = Cado_NFS_toplevel(args=['-p', os.path.os.devnull, '12345', 'slaves.hostnames=foo,bar', 'tasks.workdir=/tmp/a', 'slaves.scriptpath=/tmp'])
        >>> t.setpath("lib", "/tmp")
        >>> t.setpath("data", "/tmp")
        >>> p,db = t.get_cooked_parameters()
        >>> print(re.sub('(C:)?\\\\\\\\', '/', str(p)))
        N = 12345
        slaves.basepath = /tmp/a/client
        slaves.hostnames = foo,bar
        slaves.scriptpath = /tmp
        tasks.execpath = /tmp
        tasks.threads = 4
        tasks.workdir = /tmp/a
        tasks.linalg.bwc.cpubinding = /tmp/misc/cpubinding.conf
        tasks.polyselect.threads = 2
        tasks.sieve.las.threads = 2

        >>> del os.environ["NCPUS_FAKE"]
        '''
        self.filter_out_N_paramfile_workdir()
        self.parameters = cadoparams.Parameters(self.args.verboseparam)
        self.parameters.set_simple("tasks.execpath", self.pathdict["lib"])
        # find out which parameter file to use, and read it
        self.set_N_paramfile_workdir()
        # now use our options to override what is in the parameter file
        self.parameters.readparams(self.args.options)
        self.access_or_create_workdir_and_db()
        self.set_threads_and_client_threads()
        self.set_slaves_parameters()
        # convert some more command-line args to parameters:
        if self.args.dlp:
            if not self.args.dlp_no_keep:
                os.environ["CADO_DEBUG"] = "yes, please"
            self.parameters.set_simple("dlp", self.args.dlp)
            if self.args.gfpext:
                self.parameters.set_simple("gfpext", self.args.gfpext)
        # get default hint file if necessary
        if self.parameters.get_simple(
                "dlp", False) and self.parameters.get_simple("gfpext", 1) == 1:
            if self.parameters.get_simple("target", 0):
                hintfile = self.parameters.get_simple("descent_hint", "")
                if hintfile == "":
                    hintfile = self.find_default_hint_file()
                self.parameters.set_simple("descent_hint", hintfile)
        # set cpubinding file if necessary
        self.parameters.set_if_unset(
            "tasks.linalg.bwc.cpubinding",
            os.path.abspath(
                os.path.join(self.pathdict["data"], "misc",
                             "cpubinding.conf")))
        return self.parameters, self.db
예제 #2
0
        super().__init__(rsync, *args, **kwargs)

if __name__ == '__main__':
    import cadoparams

    cadologger.init_test_logger()
    logger.setLevel(logging.NOTSET)

    ls_program = cadoprograms.Ls("/", long=True)
    c = Command(ls_program)
    (rc, out, err) = c.wait()
    if out:
        print("Stdout: " + str(out, encoding="utf-8"))
    if err:
        print("Stderr: " + str(err, encoding="utf-8"))
    del(c)

    ls_program = cadoprograms.Ls("/", stdout = "ls.out", long=True)
    ssh_parameters = cadoparams.Parameters({"verbose": False})
    c = RemoteCommand(ls_program, "localhost", ssh_parameters, [])
    (rc, out, err) = c.wait()
    print("Stdout: " + str(out, encoding="utf-8"))
    print("Stderr: " + str(err, encoding="utf-8"))
    del(c)

    c = SendFile("/users/caramel/kruppaal/ls.out", "quiche", "/tmp/foo", {})
    (rc, out, err) = c.wait()
    print("Stdout: " + str(out, encoding="utf-8"))
    print("Stderr: " + str(err, encoding="utf-8"))
    del(c)
예제 #3
0
def get_params(paramfile, options):
    parameters = cadoparams.Parameters()
    parameters.readfile(paramfile)
    parameters.readparams(options)
    return parameters