项目目标截止日期:3月中旬.
任务很赶,但是也相对比较简单,大家加把劲!
项目总流程图
工作安排
- 论文
- 4.4 Parallel Control Flow Graph Integration 算法实现.
- Algorithm 1.
- Algorithm 2.
- Algorithm 1.
- CASE STUDY.
- bots.
- task之间的拓扑关系【1】.
- 4.4 Parallel Control Flow Graph Integration 算法实现.
-
生成task的拓扑图
-
方法:修改WCET_Generator,调用SWEET得出每一个Task的拓扑图.
-
需要考虑的因素:
-
If-else.
-
Loop 循环.
-
函数调用以及递归问题.
-
-
-
得出task之间的拓扑关系【1】
- 方法:分析 taskFunc 内部的函数调用,即可得出task之间的父子关系.
- 返回 task1 bb0 task2 bb4
- 如果递归,返回 task2 bb4 R R
- 方法:分析 taskFunc 内部的函数调用,即可得出task之间的父子关系.
- 添加信息(Flow Fact , WCET)入图
- 方法:修改dot code.
- 先进行WCET信息的添加.
- 方法:修改dot code.
-
Flow Fact信息生成
-
方法:在task前加入一个函数(比如value),将要分析的值传进来,再指定value函数为入口点,即可分析出值的取值
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14
void value(int a,int b) { int tmpa=a; int tmpb=b; } int main { value(a,b); #task firstprivate(int a,int b) { ... } }
-
-
目前遇到的问题
- 得出的部分 Flow Fact 值不是精确的. 比如测试中,while循环9次不是准确的,但是循环10次却又是精确的. (Warning)
- 继续进行测试
- 得出的部分 Flow Fact 值不是精确的. 比如测试中,while循环9次不是准确的,但是循环10次却又是精确的. (Warning)
-
命令参考
-
C 转 _ompi.c
-
1
ompicc -k file.c #不用管报错问题
-
-
_ompi.c 转 ALF,MAP文件
- c_to_alf_map xxx (没有.c后缀)
-
生成.dot文件
-
sweet -i=xxx.alf,std_hll.alf -c extref=off --dot-print file=xxx(生成的文件名) g=xxx(生成图的类型)
-
g=xxx中,xxx可以为
1 2 3 4 5 6 7 8 9 10
cfg - (默认为CFG) Control flow graph cfgd - Control flow graph with debug info pa - Pointer analysis cg - Call graph sg - Scope graph sym - Symbol table ast - Abstract syntax tree of the program astl - Abstract syntax tree of the program after linkage expl - Exported symbols after linkage. impl - Imported symbols after linkage.
-
-
-
.dot 文件转换为 .pdf 图
1
dot -Tpdf xxx.dot -o xxx.pdf
-
生成 WCET (使用WCET_Generator)
- wctpy xxx.alf
- 会生成 Generate_file 文件夹和 wcet 文件
- wctpy xxx.alf