コード例 #1
0
ファイル: tasks.py プロジェクト: zhusui/ihme-modeling
    def execute(self):

        # compile submission arguments
        kwargs = self.build_args[1]
        source_me_id = kwargs.pop("source_me_id")
        target_me_id = kwargs.pop("target_me_id")

        # make server directory
        directory = "{root}/{proc}".format(root=root, proc=self.identity)
        if not os.path.exists(directory):
            os.makedirs(directory)
        else:
            shutil.rmtree(directory)
            os.makedirs(directory)

        west_params = [
            "--source_me_id", source_me_id, "--target_me_id", target_me_id
        ]

        q = qmaster.MonitoredQ(directory, request_timeout=30000)  # monitor
        try:
            q.qsub(runfile="{root}/infertility/westrom.py".format(root=root),
                   jobname=self.identity,
                   parameters=west_params,
                   slots=10,
                   memory=20,
                   project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all jobs finished")
        finally:
            q.stop_monitor()  # stop monitor
コード例 #2
0
def launch_squeeze(log_dir='FILEPATH', squeeze=True, save=True):
    try:
        jm = CentralJobMonitor(log_dir, persistent=False)
        time.sleep(5)
    except MonitorAlreadyRunning:
        pass
    else:
        err = glob('/FILEPATH')
        out = glob('/FILEPATH')
        ps = glob('/FILEPATH')
        for log in err + out + ps:
            os.remove(log)
        conda_dir = '/FILEPATH'
        execute = sge_exec.SGEExecutor(jm.out_dir, 3, 30000, conda_dir, 'epic')
        q = qmaster.MonitoredQ(execute)
        if squeeze:
            squeezer(q, log_dir)
        dirs = glob("/FILEPATH")
        save_func = "save_custom_results"
        if save:
            saver(q, dirs, save_func, log_dir)
    finally:
        jm.generate_report()
        jm.stop_responder()
コード例 #3
0
 def get_qmaster(self):
     execute = sge_exec.SGEExecutor(
         log_dir, 3, 30000, conda_bin_dir, conda_env)
     return qmaster.MonitoredQ(execute)
コード例 #4
0
ファイル: tasks.py プロジェクト: zhusui/ihme-modeling
    def execute(self):

        # compile submission arguments
        kwargs = self.build_args[1]
        male_prop_id = kwargs.pop("male_prop_id")
        female_prop_id = kwargs.pop("female_prop_id")
        exp_id = kwargs.pop("exp_id")
        env_id = kwargs.pop("env_id")
        male_env_id = kwargs.pop("male_env_id")
        female_env_id = kwargs.pop("female_env_id")

        # make server directory
        directory = "{root}/{proc}".format(root=root, proc=self.identity)
        if not os.path.exists(directory):
            os.makedirs(directory)
        else:
            shutil.rmtree(directory)
            os.makedirs(directory)

        # make output directories
        for _id in [male_env_id, female_env_id]:
            sub_dir = os.path.join(directory, str(_id))
            if not os.path.exists(sub_dir):
                os.makedirs(sub_dir)
            else:
                shutil.rmtree(sub_dir)
                os.makedirs(sub_dir)

        env_params = [
            "--male_prop_id", male_prop_id, "--female_prop_id", female_prop_id,
            "--exp_id", exp_id, "--env_id", env_id, "--male_env_id",
            male_env_id, "--female_env_id", female_env_id, "--out_dir",
            directory, "--year_id"
        ]

        q = qmaster.MonitoredQ(directory, request_timeout=30000)  # monitor
        try:

            # parallelize by location
            for i in [i for i in range(1990, 2016, 5)]:
                q.qsub(
                    runfile="{root}/infertility/calc_env.py".format(root=root),
                    jobname="{proc}_{loc}".format(proc=self.identity, loc=i),
                    parameters=env_params + [i],
                    slots=7,
                    memory=14,
                    project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all jobs finished")

            # save the results
            for save_id in [male_env_id, female_env_id]:

                save_params = [
                    save_id, env_description,
                    os.path.join(directory, str(save_id)), "--best",
                    "--file_pattern", "{year_id}.h5", "--h5_tablename", "data"
                ]
                q.qsub(runfile=("/home/j/WORK/10_gbd/00_library/adding_machine"
                                "/bin/save_custom_results"),
                       jobname="save_" + str(save_id),
                       parameters=save_params,
                       slots=20,
                       memory=40,
                       project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all jobs finished")
        finally:
            q.stop_monitor()  # stop monitor
コード例 #5
0
ファイル: tasks.py プロジェクト: zhusui/ihme-modeling
    def execute(self):

        kwargs = self.build_args[1]
        excess_id = kwargs.pop("excess")
        redist_map = kwargs.pop("redist")

        # make server directory
        directory = "{root}/{proc}".format(root=root, proc=self.identity)
        if not os.path.exists(directory):
            os.makedirs(directory)
        else:
            shutil.rmtree(directory)
            os.makedirs(directory)

        # make output directories
        for me_id in redist_map.values():
            sub_dir = os.path.join(directory, str(me_id))
            if not os.path.exists(sub_dir):
                os.makedirs(sub_dir)
            else:
                shutil.rmtree(sub_dir)
                os.makedirs(sub_dir)

        exs_params = [
            "--excess_id", excess_id, "--redist_map",
            json.dumps(redist_map), "--out_dir", directory, "--year_id"
        ]

        q = qmaster.MonitoredQ(directory, request_timeout=120000)  # monitor
        try:

            # attribution jobs by location_id
            for i in [i for i in range(1990, 2016, 5)]:
                q.qsub(
                    runfile="{root}/infertility/excess.py".format(root=root),
                    jobname="{proc}_{loc}".format(proc=self.identity, loc=i),
                    parameters=exs_params + [i],
                    slots=5,
                    memory=10,
                    project="proj_custom_models")
                time.sleep(1.5)
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all attr jobs finished")

            # save the results
            for save_id in redist_map.values():

                save_params = [
                    save_id, excess_description,
                    os.path.join(directory,
                                 str(save_id)), "--best", "--sexes", "2",
                    "--file_pattern", "{year_id}.h5", "--h5_tablename", "data"
                ]
                q.qsub(runfile=("/home/j/WORK/10_gbd/00_library/adding_machine"
                                "/bin/save_custom_results"),
                       jobname="save_" + str(save_id),
                       parameters=save_params,
                       slots=20,
                       memory=40,
                       project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all save jobs finished")
        finally:
            q.stop_monitor()  # stop monitor
コード例 #6
0
ファイル: tasks.py プロジェクト: zhusui/ihme-modeling
    def execute(self):

        # compile submission arguments
        me_map = self.build_args[0][0]

        # make server directory
        directory = "{root}/{proc}".format(root=root, proc=self.identity)
        if not os.path.exists(directory):
            os.makedirs(directory)
        else:
            shutil.rmtree(directory)
            os.makedirs(directory)

        # make output directories
        save_ids = []
        for mapper in me_map.values():
            outputs = mapper.get("trgs", {})
            for me_id in outputs.values():
                os.makedirs(os.path.join(directory, str(me_id)))
                save_ids.append(me_id)

        attr_params = [
            "--me_map",
            json.dumps(me_map), "--out_dir", directory, "--year_id"
        ]

        q = qmaster.MonitoredQ(directory, request_timeout=30000)  # monitor
        try:

            # attribution jobs by year_id
            for i in [i for i in range(1990, 2016, 5)]:
                q.qsub(runfile="{root}/infertility/male_attr.py".format(
                    root=root),
                       jobname="{proc}_{year}".format(proc=self.identity,
                                                      year=i),
                       parameters=attr_params + [i],
                       slots=3,
                       memory=6,
                       project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all attr jobs finished")

            # save the results
            for save_id in save_ids:

                save_params = [
                    save_id, male_attr_description,
                    os.path.join(directory,
                                 str(save_id)), "--best", "--sexes", "1",
                    "--file_pattern", "{year_id}.h5", "--h5_tablename", "data"
                ]
                q.qsub(runfile=("/home/j/WORK/10_gbd/00_library/adding_machine"
                                "/bin/save_custom_results"),
                       jobname="save_" + str(save_id),
                       parameters=save_params,
                       slots=20,
                       memory=40,
                       project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all save jobs finished")
        finally:
            q.stop_monitor()  # stop monitor
コード例 #7
0
ファイル: tasks.py プロジェクト: zhusui/ihme-modeling
    def execute(self):

        # compile submission arguments
        kwargs = self.build_args[1]
        pid_env_id = kwargs.pop("pid_env_id")
        chlam_prop_id = kwargs.pop("chlam_prop_id")
        gono_prop_id = kwargs.pop("gono_prop_id")
        other_prop_id = kwargs.pop("other_prop_id")
        chlam_id = kwargs.pop("chlam_id")
        gono_id = kwargs.pop("gono_id")
        other_id = kwargs.pop("other_id")

        # make server directory
        directory = "{root}/{proc}".format(root=root, proc=self.identity)
        if not os.path.exists(directory):
            os.makedirs(directory)
        else:
            shutil.rmtree(directory)
            os.makedirs(directory)

        split_params = [
            pid_env_id, "--target_meids", chlam_id, gono_id, other_id,
            "--prop_meids", chlam_prop_id, gono_prop_id, other_prop_id,
            "--split_meas_ids", 5, 6, "--prop_meas_id", 18, "--output_dir",
            directory
        ]

        q = qmaster.MonitoredQ(directory, request_timeout=30000)  # monitor
        try:
            q.qsub(runfile=("/home/j/WORK/10_gbd/00_library/transmogrifier"
                            "/transmogrifier/epi.py"),
                   jobname=self.identity,
                   parameters=split_params,
                   slots=40,
                   memory=60,
                   project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all jobs finished")

            # save the results
            for save_id in [chlam_id, gono_id, other_id]:

                save_params = [
                    save_id, pid_split_description,
                    os.path.join(directory, str(save_id)), "--best", "--sexes",
                    "2", "--file_pattern", "{location_id}.h5",
                    "--h5_tablename", "draws"
                ]
                q.qsub(runfile=("/home/j/WORK/10_gbd/00_library/adding_machine"
                                "/bin/save_custom_results"),
                       jobname="save_" + str(save_id),
                       parameters=save_params,
                       slots=20,
                       memory=40,
                       project="proj_custom_models")
            q.qblock(poll_interval=60)  # monitor them
            fail = q.manager.query(
                "select count(*) as num from job where current_status != 5;"
            )[1]["num"].item()
            if fail > 0:
                raise Exception("Not all jobs finished")
        finally:
            q.stop_monitor()  # stop monitor