NKcqx / CLIC

旨在提供一个跨平台计算框架来统一异构软件系统
5 stars 1 forks source link

平台的Java core实现 #178

Closed isEdwardTang closed 3 years ago

isEdwardTang commented 3 years ago

新平台引入思想

每个语言(java / python)维护一个和平台无关的core(由我们自己实现),其中包含以下逻辑:

为了引入平台方便,对外仅暴露一个DagExecutor的接口,平台传入以下参数:

引入新的java语言平台的规范

在java core的基础上,任何人基于以下规范都可以实现引入一个新的平台(source code,不包含对应的xml文件):

1.实现所有的operator,实现逻辑是:继承OperatorBase<InputType, OutputType>,然后实现其中的execute方法,其中

2.指定operator的name和实现的映射关系,实现逻辑是:继承OperatorFactory,在构造器中覆盖operatorMap,其中

3.实现一个main函数,使用DagExecutor并传入参数即可:

    DagExecutor executor = new DagExecutor(args, new XxxOperatorFactory());
    executor.execute();

4.可选:在平台执行前后,可能会有一些特殊的处理逻辑,可实现DagHook方法,并覆盖其中的preHandler和postHandler方法即可, 然后传入到DagExecutor中