示例#1
0
文件: blb.py 项目: davidhoward/BLB
    def run_distributed(self,data):
        mod = asp_module.ASPModule(cache_dir = "/root/spark/examples/target/scala-2.9.1.final/classes/", use_scala=True)

        scala_estimate= ast_tools.ConvertPyAST_ScalaAST().visit(self.estimate_ast)
        scala_reduce = ast_tools.ConvertPyAST_ScalaAST().visit(self.reduce_ast)
        scala_average =  ast_tools.ConvertPyAST_ScalaAST().visit(self.average_ast)

        scala_gen = SourceGenerator(self.TYPE_DECS)
        rendered_scala_input_funcs = scala_gen.to_source(scala_estimate)+'\n' + scala_gen.to_source(scala_reduce) \
                            +'\n'+ scala_gen.to_source(scala_average)

        rendered_scala = self.prepend_scala_blb_core_funcs(rendered_scala_input_funcs)
        #should generate function signature for run here.. using codegen ?
        rendered_scala_object = avro_backend.generate_scala_object("run","",rendered_scala)
        #NOTE: must append outer to function name above to get the classname
        # because of how scala_object created by avro_backend
        mod.add_function("run_outer", rendered_scala_object, backend = "scala")

        #NOTE: must add dependencies in make_dependency_jar so that slave nodes will receive proper files
        time_stamp = str(int(round(time.time() * 1000)))
        os.system('/root/BLB/distributed/make_dependency_jar ' + '/root/BLB/distributed/dependencies/' + time_stamp)
        os.environ['DEPEND_LOC'] = '/root/BLB/distributed/dependencies/' + time_stamp +'/depend.jar'

        num_spark_tasks = self.get_num_spark_tasks()
        print 'Running Spark with', num_spark_tasks, 'tasks'
        return mod.run_outer(data, num_spark_tasks, self.dim, self.num_subsamples, self.num_bootstraps, self.subsample_len_exp)
示例#2
0
    def run_distributed(self, data):
        mod = asp_module.ASPModule(cache_dir="/root/spark/examples/target/scala-2.9.1.final/classes/", use_scala=True)

        scala_estimate = ast_tools.ConvertPyAST_ScalaAST().visit(self.estimate_ast)
        scala_reduce = ast_tools.ConvertPyAST_ScalaAST().visit(self.reduce_ast)
        scala_average = ast_tools.ConvertPyAST_ScalaAST().visit(self.average_ast)

        TYPE_DECS = (
            ["compute_estimate", ["BootstrapData"], "double"],
            ["reduce_bootstraps", [("list", "double")], "double"],
            ["average", [("array", "double")], "double"],
        )

        scala_gen = SourceGenerator(TYPE_DECS)
        rendered_scala = (
            scala_gen.to_source(scala_estimate)
            + "\n"
            + scala_gen.to_source(scala_reduce)
            + "\n"
            + scala_gen.to_source(scala_average)
        )

        rendered_scala = combine(rendered_scala)
        rendered = avro_backend.generate_scala_object("run", "", rendered_scala)
        # NOTE: must append outer to function name above to get the classname
        # because of how scala_object created by avro_backend
        mod.add_function("run_outer", rendered, backend="scala")

        # NOTE: must add dependencies in make_dependency_jar so that slave nodes will receive proper files
        time_stamp = str(int(round(time.time() * 1000)))
        os.system("/root/BLB/distr_support/make_dependency_jar " + "/root/BLB/distr_support/dependencies/" + time_stamp)
        os.environ["DEPEND_LOC"] = "/root/BLB/distr_support/dependencies/" + time_stamp + "/depend.jar"

        email_filename = data[0]
        model_filename = data[1]
        return mod.run_outer(
            email_filename, model_filename, self.dim, self.num_subsamples, self.num_bootstraps, self.subsample_len_exp
        )
示例#3
0
    def run_distributed(self, data):
        mod = asp_module.ASPModule(
            cache_dir="/root/spark/examples/target/scala-2.9.1.final/classes/",
            use_scala=True)

        scala_estimate = ast_tools.ConvertPyAST_ScalaAST().visit(
            self.estimate_ast)
        scala_reduce = ast_tools.ConvertPyAST_ScalaAST().visit(self.reduce_ast)
        scala_average = ast_tools.ConvertPyAST_ScalaAST().visit(
            self.average_ast)

        scala_gen = SourceGenerator(self.TYPE_DECS)
        rendered_scala_input_funcs = scala_gen.to_source(scala_estimate)+'\n' + scala_gen.to_source(scala_reduce) \
                            +'\n'+ scala_gen.to_source(scala_average)

        rendered_scala = self.prepend_scala_blb_core_funcs(
            rendered_scala_input_funcs)
        #should generate function signature for run here.. using codegen ?
        rendered_scala_object = avro_backend.generate_scala_object(
            "run", "", rendered_scala)
        #NOTE: must append outer to function name above to get the classname
        # because of how scala_object created by avro_backend
        mod.add_function("run_outer", rendered_scala_object, backend="scala")

        #NOTE: must add dependencies in make_dependency_jar so that slave nodes will receive proper files
        time_stamp = str(int(round(time.time() * 1000)))
        os.system('/root/BLB/distributed/make_dependency_jar ' +
                  '/root/BLB/distributed/dependencies/' + time_stamp)
        os.environ[
            'DEPEND_LOC'] = '/root/BLB/distributed/dependencies/' + time_stamp + '/depend.jar'

        num_spark_tasks = self.get_num_spark_tasks()
        print 'Running Spark with', num_spark_tasks, 'tasks'
        return mod.run_outer(data, num_spark_tasks, self.dim,
                             self.num_subsamples, self.num_bootstraps,
                             self.subsample_len_exp)