Esempio n. 1
0
    def get_mpirun_cmd(self, job="case.run"):
        env_mach_specific = self.get_env('mach_specific')
        run_exe = env_mach_specific.get_value("run_exe")
        run_misc_suffix = env_mach_specific.get_value("run_misc_suffix")
        run_misc_suffix = "" if run_misc_suffix is None else run_misc_suffix
        run_suffix = run_exe + run_misc_suffix

        # Things that will have to be matched against mpirun element attributes
        mpi_attribs = {
            "compiler": self.get_value("COMPILER"),
            "mpilib": self.get_value("MPILIB"),
            "threaded": get_build_threaded(self)
        }

        executable, args = env_mach_specific.get_mpirun(self,
                                                        mpi_attribs,
                                                        job=job)
        # special case for aprun if using < 1 full node
        if executable == "aprun":
            totalpes = self.get_value("TOTALPES")
            pes_per_node = self.get_value("PES_PER_NODE")
            if totalpes < pes_per_node:
                args["tasks_per_node"] = "-N " + str(totalpes)

        mpi_arg_string = " ".join(args.values())

        if self.get_value("BATCH_SYSTEM") == "cobalt":
            mpi_arg_string += " : "

        return "%s %s %s" % (executable if executable is not None else "",
                             mpi_arg_string, run_suffix)
Esempio n. 2
0
    def get_mpirun_cmd(self, job="case.run"):
        env_mach_specific = self.get_env('mach_specific')
        run_exe = env_mach_specific.get_value("run_exe")
        run_misc_suffix = env_mach_specific.get_value("run_misc_suffix")
        run_misc_suffix = "" if run_misc_suffix is None else run_misc_suffix
        run_suffix = run_exe + run_misc_suffix

        # Things that will have to be matched against mpirun element attributes
        mpi_attribs = {
            "compiler" : self.get_value("COMPILER"),
            "mpilib"   : self.get_value("MPILIB"),
            "threaded" : get_build_threaded(self)
            }

        executable, args = env_mach_specific.get_mpirun(self, mpi_attribs, job=job)
        # special case for aprun if using < 1 full node
        if executable == "aprun":
            totalpes = self.get_value("TOTALPES")
            pes_per_node = self.get_value("PES_PER_NODE")
            if totalpes < pes_per_node:
                args["tasks_per_node"] = "-N "+str(totalpes)

        mpi_arg_string = " ".join(args.values())


        if self.get_value("BATCH_SYSTEM") == "cobalt":
            mpi_arg_string += " : "

        return "%s %s %s" % (executable if executable is not None else "", mpi_arg_string, run_suffix)
Esempio n. 3
0
    def get_full_mpirun(self, check_members, case, job):
        default_run_exe = self.get_suffix("default_run_exe")
        expect(default_run_exe is not None, "no default run exe defined!")
        default_run_misc_suffix = self.get_suffix("default_run_misc_suffix")
        default_run_misc_suffix = "" if default_run_misc_suffix is None else default_run_misc_suffix
        default_run_suffix = default_run_exe + default_run_misc_suffix

        # Things that will have to be matched against mpirun element attributes
        mpi_attribs = {
            "compiler" : case.get_value("COMPILER"),
            "mpilib"   : case.get_value("MPILIB"),
            "threaded" : get_build_threaded(case)
            }

        executable, args = self.get_mpirun(mpi_attribs, check_members, case, job)

        mpi_arg_string = " ".join(args.values())
        batch_system = self.get_value("BATCH_SYSTEM")
        if batch_system == "cobalt":
            mpi_arg_string += " : "

        return "%s %s %s" % (executable if executable is not None else "", mpi_arg_string, default_run_suffix)
Esempio n. 4
0
    def get_mpirun_cmd(self, job="case.run"):
        env_mach_specific = self.get_env('mach_specific')
        run_exe = env_mach_specific.get_value("run_exe")
        run_misc_suffix = env_mach_specific.get_value("run_misc_suffix")
        run_misc_suffix = "" if run_misc_suffix is None else run_misc_suffix
        run_suffix = run_exe + run_misc_suffix

        # Things that will have to be matched against mpirun element attributes
        mpi_attribs = {
            "compiler" : self.get_value("COMPILER"),
            "mpilib"   : self.get_value("MPILIB"),
            "threaded" : get_build_threaded(self)
            }

        executable, args = env_mach_specific.get_mpirun(self, mpi_attribs, job=job)

        mpi_arg_string = " ".join(args.values())


        if self.get_value("BATCH_SYSTEM") == "cobalt":
            mpi_arg_string += " : "

        return "%s %s %s" % (executable if executable is not None else "", mpi_arg_string, run_suffix)
Esempio n. 5
0
File: case.py Progetto: erika72/cime
    def get_mpirun_cmd(self, job="case.run"):
        env_mach_specific = self.get_env('mach_specific')
        run_exe = env_mach_specific.get_value("run_exe")
        run_misc_suffix = env_mach_specific.get_value("run_misc_suffix")
        run_misc_suffix = "" if run_misc_suffix is None else run_misc_suffix
        run_suffix = run_exe + run_misc_suffix

        # Things that will have to be matched against mpirun element attributes
        mpi_attribs = {
            "compiler" : self.get_value("COMPILER"),
            "mpilib"   : self.get_value("MPILIB"),
            "threaded" : get_build_threaded(self)
            }

        executable, args = env_mach_specific.get_mpirun(self, mpi_attribs, job=job)

        mpi_arg_string = " ".join(args.values())


        if self.get_value("BATCH_SYSTEM") == "cobalt":
            mpi_arg_string += " : "

        return "%s %s %s" % (executable if executable is not None else "", mpi_arg_string, run_suffix)