CN105700854B - 运行应用任务的方法及装置 - Google Patents

运行应用任务的方法及装置 Download PDF

Info

Publication number
CN105700854B
CN105700854B CN201410686611.6A CN201410686611A CN105700854B CN 105700854 B CN105700854 B CN 105700854B CN 201410686611 A CN201410686611 A CN 201410686611A CN 105700854 B CN105700854 B CN 105700854B
Authority
CN
China
Prior art keywords
code
program
arm
machine
instruction set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410686611.6A
Other languages
English (en)
Other versions
CN105700854A (zh
Inventor
周明耀
浦世亮
戚红命
冯仁光
王道荣
郭斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201410686611.6A priority Critical patent/CN105700854B/zh
Publication of CN105700854A publication Critical patent/CN105700854A/zh
Application granted granted Critical
Publication of CN105700854B publication Critical patent/CN105700854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了运行应用任务的方法及装置,其中,该方法包括:读取x86机器上的高速并行计算mapreduce程序;从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码;从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。本发明方案能够实现在ARM平台上基于mapreduce程序运行应用任务。

Description

运行应用任务的方法及装置
技术领域
本发明涉及信息处理技术,尤其涉及运行应用任务的方法及装置。
背景技术
高速并行计算(MapReduce)程序,是一种编程模型,用于大规模数据集的并行计算。这个模型非常方便使用,它具有并行计算、错误容灾、本地优化以及负载均衡等优点;该模型允许开发人员使用自己熟悉的语言进行调用,如Java、C#、C++等。例如,Goole使用MapReduce程序提供网页搜索服务、排序、数据挖掘、机器学习等应用任务。
MapReduce程序例如Phoenix程序等,斯坦福大学开发的Phoenix程序是一种轻量级的MapReduce程序,使用C/C++语言开发,它的内核只有不到500K。
通常地,在x86机器上基于MapReduce程序运行应用任务,以实现多个应用任务并行运行。
发明人在实践中发现,对于ARM平台,目前还没有在ARM平台上运行MapReduce程序的技术,只能对应用任务单行执行,效率较低。ARM处理器,是面向低端市场的基于精简指令集计算机(RISC,Reduced Instruction Set Computer)的微处理器,它具有体积小、低功耗、低成本、高性能等优点。基于ARM平台的设备例如机、平板电脑等等手持设备,其使用越来越广泛。如果能够实现在ARM平台上基于mapreduce程序运行应用任务,将进一步满足需求。
发明内容
本发明提供了一种运行应用任务的方法,该方法能够实现在ARM平台上基于mapreduce程序运行应用任务。
本发明提供了一种运行应用任务的装置,该装置能够实现在ARM平台上基于mapreduce程序运行应用任务。
一种运行应用任务的方法,该方法包括:
读取x86机器上的高速并行计算mapreduce程序;
从mapreduce程序中提取x86指令集的机器代码;
将提取的x86指令集的机器代码转换为ARM指令集的机器代码;
从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;
将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。
一种运行应用任务的装置,该装置包括程序获取模块、转换模块和移植模块;
所述程序获取模块,读取x86机器上的高速并行计算mapreduce程序,发送给所述转换模块;
所述转换模块,从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码;从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;得到修改后的mapreduce程序,发送给所述移植模块;
所述移植模块,将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。
从上述方案可以看出,本发明中,读取x86机器上的mapreduce程序;从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码;从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。采用本发明方案,使mapreduce程序在ARM平台上能够正常运行,实现在ARM平台上基于mapreduce程序运行应用任务,从而,在ARM平台上并行运行应用任务,提高了性能和效率,进一步满足了需求。
附图说明
图1为本发明运行应用任务的方法示意性流程图;
图2为本发明运行应用任务的方法流程图实例;
图3为本发明运行应用任务的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
现有方案中,只能在x86机器上基于MapReduce程序运行应用任务,而对于ARM平台,还没有运行MapReduce程序的技术。采用MapReduce框架运行应用任务可以有利于并行计算、任务的容错等,同时,越来越多的应用场景需要在手持设备(如手机、平板电脑等)等ARM平台上运行应用任务,而ARM平台无法运行需要大量资源调度的程序,急需一种基于MapReduce模型的消耗资源较小的框架用来在ARM平台上运行应用任务,所述应用任务例如智能分析任务,包括人脸检测、车牌检测等。
针对该情形,对x86机器上的MapReduce程序和ARM平台进行分析后,本发明提出图1所示的运行应用任务的方法,以使mapreduce程序在ARM平台上能够正常运行,实现在ARM平台上基于mapreduce程序运行应用任务。
图1的流程包括以下步骤:
步骤101,读取x86机器上的mapreduce程序。
通过分析发现,x86机器上的mapreduce程序包含x86指令集的机器代码和x86汇编代码,针对这两部分,分别进行转换。
步骤102,从mapreduce程序中提取x86指令集的机器代码。
x86指令集的机器代码例如C语言实现的代码。
步骤103,将提取的x86指令集的机器代码转换为ARM指令集的机器代码。
x86指令集的机器代码运行在x86平台上,若需正常运行在ARM平台,则需进行转换。
本步骤可采用多种方式实例,例如,将x86指令集的每一条机器代码逐条改写为ARM指令集的机器代码;或者,采用编译器对所有机器代码进行一次性转换,具体地:
设置生成ARM架构机器代码的编译器,将提取的x86指令集的机器代码输入该编译器,进行交叉编译,转换得到ARM指令集的机器代码。生成ARM构架机器代码的编译器,具有将x86指令集的机器代码转换为ARM指令集的机器代码的功能。
步骤104,从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码。
本步骤可采用多种方式实现,可直接将x86汇编代码改写为对应的ARM汇编代码;还可以,采用如下方式:
将提取的x86汇编代码修改为对应ARM平台的机器代码;
将改写得到的ARM平台机器代码修改为ARM汇编代码。
步骤102和104可同时执行。
步骤105,将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。
将修改得到的mapreduce程序移植到ARM机器上,便可基于MapReduce程序运行应用任务,以实现多个应用任务并行运行。
所述mapreduce程序具体如Phoenix程序等,斯坦福大学开发的Phoenix程序是一种轻量级的MapReduce程序,使用C/C++语言开发,它的内核只有不到500K。在x86机器上的实验效果中,显示运行时对内存、CPU的消耗量很小,能够支持大于500个线程并行计算,整体运算时间也较少。将MapReduce程序移植到ARM平台后,将大大提高性能和效率。
进一步地,为了对移植到ARM平台上的MapReduce程序进行测试,提高其准确度,本发明还包括以下测试方案:
将x86机器上的mapreduce程序表示为第一版程序,基于第一版程序运行应用任务集,得到输出结果,表示为第一输出结果;
将移植到ARM机器上的mapreduce程序表示为第二版程序;所述将修改得到的mapreduce程序移植到ARM机器上之后,在ARM平台上运行测试用例,基于第二版程序运行应用任务集,得到输出结果,表示为第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则对第二版程序进行修改,直至结果一致为止。
上述应用任务集用于对第一版程序和第二版程序进行调测比较,包含至少两个应用任务;该应用任务集例如为同时在20遍文章中搜索指定文字。上述测试用例用于执行测试,启动第二版程序运行应用任务集,得到第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则提示对第二版程序进行修改,而后继续下一次测试,直至结果一致为止。如果结果不一致,表明第二版程序运行过程出现错误,调用运行记录,可获知其中的某一条代码出错,与第一版程序的相应代码进行比较,对其进行修改;而后,继续调试,对后续各条出错的代码逐一进行修改,直至结果一致为止。
采用本发明方案,使mapreduce程序在ARM平台上能够正常运行,实现在ARM平台上基于mapreduce程序运行应用任务,从而,实现在ARM平台上并行运行应用任务,提高了性能和效率,进一步满足了需求。
下面通过图2的流程,对本发明运行应用任务的方法进行实例说明,其包括以下步骤:
步骤201,读取x86机器上的高速并行计算mapreduce程序,将x86机器上的mapreduce程序表示为第一版程序,基于第一版程序运行应用任务集,得到输出结果,表示为第一输出结果。
本实例是基于Linux系统进行开发和测试的,mapreduce程序具体为Phoenix程序,先在x86机器的Linux环境上运行Phoenix程序的完整源码,运行应用任务集,完全成功并保存输出结果,标注该版本为v1.0版本。
步骤202,从mapreduce程序中提取x86指令集的机器代码。
步骤203,设置生成ARM架构机器代码的编译器,将提取的x86指令集的机器代码输入该编译器,进行交叉编译,转换得到ARM指令集的机器代码。
步骤204,从mapreduce程序中提取x86汇编代码。
步骤205,将提取的x86汇编代码修改为对应ARM平台的机器代码。
具体地,将提取的x86汇编代码用C语言改写为ARM平台上对应的代码,例如将atomic.h源码文件中的test_and_set函数,使用C语言实现。首先分析X86每一条汇编指令实现的具体功能,然后将每一个函数采用C语言实现。
下面是对X86汇编代码的举例:
对该函数进行分析,发现该操作是原子交换操作,采用C语言实现原子交换的功能,修改后的函数如下:
以上是对原子交换操作的相应代码进行修改的实例,其他汇编代码也类似逐一改写为C语言。
所要改写的汇编代码主要集中在源码文件atomic.h,该文件针对X86和CPU_V9定义编写了针对内存和寄存器的一些操作,实际应用时,源文件msc.c和tpool.c引用该文件相关操作。下面再例举一些需要修改的汇编函数:
Static inline uintptr_t atomic_xchg(uintptr_t n,uintptr_t*v)
//该汇编函数的功能是:数据交换原子操作。
Static inline void flush(void*addr)
//该汇编函数的功能是:缓冲区刷新。
Static inline uintptr_t atomic_read(void*addr)
//该汇编函数的功能是:数据读取原子操作。
Static inline int test_and_set(uintptr_t*n)
//该汇编函数的功能是:首先判断输入值是否为1,如果是1,则返回0,否则返回1。
Static inline unsigned int fetch_and_inc(unsigned int*n)
//该汇编函数的功能是:先获取某内存地址值并在该内存地址值上加1操作。
Static inline int cmp_and_swp(uintptr_t v,uintptr_t*cmper,uintptr_tmatcher))
//该汇编函数的功能是:数据比较和交换操作。
步骤206,将改写得到的ARM平台机器代码修改为ARM汇编代码。
步骤207,将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。
步骤208,将移植到ARM机器上的mapreduce程序表示为第二版程序;所述将修改得到的mapreduce程序移植到ARM机器上之后,在ARM平台上运行测试用例,基于第二版程序运行应用任务集,得到输出结果,表示为第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则对第二版程序进行修改,直至结果一致为止。
将移植到ARM平台的mapreduce程序命名为V2.0版本。对x86机器上运行v1.0和ARM平台上运行v2.0进行对比测试。具体实现时,可建立大量测试用例,在x86机器上和ARM平台上分别反复对应各版本进行应用任务的执行,将x86机器上运行v1.0和ARM平台上运行v2.0的输出结果进行对比,保证这两个版本输出结果是一致。根据对比测试结果反馈修改ARM移植过程中的bug,并生成一个最终版本V3.0,保证可以在ARM平台上有效使用。
智能分析任务传统上都是在基于x86的集群服务器内进行,采用MapReduce框架运行可以有利于并行计算、任务的容错等,同时,越来越多的应用场景需要在手持设备(如手机、平板电脑等)上运行智能分析任务,手持设备基于ARM的较多,无法运行需要大量资源调度的程序,急需一种基于MapReduce模型的消耗资源较小的框架用来在ARM平台上运行智能分析任务,如人脸检测、车牌检测等。斯坦福大学开发的Phoenix程序的内核只有不到500K,在x86机器上的实验效果显示运行时对内存、CPU的消耗量很小,整体运算时间也较少。但是Phoenix程序不支持ARM指令集,本实施例针对Phoenix作相应处理,而后移植到ARM平台。通过本实施例,有助于实现在基于ARM处理器的手持设备上使用Phoenix技术进行高速并发计算。
参见图3,为本发明运行应用任务的装置结构示意图,该装置包括程序获取模块、转换模块和移植模块;
所述程序获取模块,读取x86机器上的高速并行计算mapreduce程序,发送给所述转换模块;
所述转换模块,从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码;从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;得到修改后的mapreduce程序,发送给所述移植模块;
所述移植模块,将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务。
较佳地,所述转换模块包括机器代码转换子模块和汇编代码转换子模块;
所述机器代码转换子模块,从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码;
所述汇编代码转换子模块,从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码。
较佳地,所述机器代码转换子模块,从mapreduce程序中提取x86指令集的机器代码,设置生成ARM架构机器代码的编译器,将提取的x86指令集的机器代码输入该编译器,进行交叉编译,转换得到ARM指令集的机器代码。
较佳地,所述汇编代码转换子模块,从mapreduce程序中提取x86汇编代码,将提取的x86汇编代码修改为对应ARM平台的机器代码;将改写得到的ARM平台机器代码修改为ARM汇编代码。
进一步地,为了对移植到ARM平台上的mapReduce程序进行测试,提高其准确度,该装置还包括调试模块,将x86机器上的mapreduce程序表示为第一版程序,将移植到ARM机器上的mapreduce程序表示为第二版程序;所述程序获取模块,还基于第一版程序运行应用任务集,得到输出结果,表示为第一输出结果,将第一输出结果发送给所述调试模块;
所述调试模块,在ARM平台上运行测试用例,基于第二版程序运行应用任务集,得到输出结果,表示为第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则对第二版程序进行修改,直至结果一致为止。
上述应用任务集用于对第一版程序和第二版程序进行调测比较,包含至少两个应用任务;该应用任务集例如为同时在20遍文章中搜索指定文字。上述测试用例用于执行测试,启动第二版程序运行应用任务集,得到第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则提示对第二版程序进行修改,而后继续下一次测试,直至结果一致为止。如果结果不一致,表明第二版程序运行过程出现错误,调用运行记录,可获知其中的某一条代码出错,比较第一版程序的相应代码,对其进行修改;而后,继续调试,已对后续的各条代码进行修改,直至结果一致为止。
具体实现时,本发明提供的该装置可与x86机器和ARM平台机器都建立连接,以根据需要对两者进行访问,完成mapreduce程序的移植。例如,该装置通过互联网对两者建立连接访问。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (6)

1.一种运行应用任务的方法,其特征在于,该方法包括:
读取x86机器上的高速并行计算mapreduce程序;
从mapreduce程序中提取x86指令集的机器代码;
将提取的x86指令集的机器代码转换为ARM指令集的机器代码;
从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;所述将其修改为ARM汇编代码的方式包括:将提取的x86汇编代码修改为对应ARM平台的机器代码;将改写得到的ARM平台机器代码修改为ARM汇编代码;其中,所述将提取的x86汇编代码修改为对应ARM平台的机器代码包括:分析x86每一条汇编指令实现的具体功能,并将所述x86汇编代码中每一个函数采用C语言实现;
将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务;
将x86机器上的mapreduce程序表示为第一版程序,基于第一版程序运行应用任务集,得到输出结果,表示为第一输出结果;
将移植到ARM机器上的mapreduce程序表示为第二版程序;所述将修改得到的mapreduce程序移植到ARM机器上之后,在ARM平台上运行测试用例,基于第二版程序运行应用任务集,得到输出结果,表示为第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则对第二版程序进行修改,直至结果一致为止;其中,所述对第二版程序进行修改的方法包括:调用运行记录,以获知其中出错的代码,将该出错的代码与所述第一版程序的相应代码进行比较,以便对出错的代码进行修改。
2.如权利要求1所述的方法,其特征在于,所述将提取的x86指令集的机器代码转换为ARM指令集的机器代码包括:
设置生成ARM架构机器代码的编译器,将提取的x86指令集的机器代码输入该编译器,进行交叉编译,转换得到ARM指令集的机器代码。
3.如权利要求1所述的方法,其特征在于,所述x86指令集的机器代码使用高级语言编写,所述mapreduce程序包含Phoenix程序。
4.一种运行应用任务的装置,其特征在于,该装置包括程序获取模块、转换模块、移植模块和调试模块;
所述程序获取模块,读取x86机器上的高速并行计算mapreduce程序,发送给所述转换模块;
所述转换模块,从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码;从mapreduce程序中提取x86汇编代码,将其修改为ARM汇编代码;得到修改后的mapreduce程序,发送给所述移植模块;其中,所述转换模块包括汇编代码转换子模块,用于从mapreduce程序中提取x86汇编代码,分析x86每一条汇编指令实现的具体功能,并将所述x86汇编代码中每一个函数采用C语言实现以得到ARM平台机器代码;将得到的ARM平台机器代码修改为ARM汇编代码;
所述移植模块,将修改得到的mapreduce程序移植到ARM机器上,用以在ARM平台上基于mapreduce程序运行应用任务;
所述调试模块,将x86机器上的mapreduce程序表示为第一版程序,将移植到ARM机器上的mapreduce程序表示为第二版程序;所述程序获取模块,还基于第一版程序运行应用任务集,得到输出结果,表示为第一输出结果,将第一输出结果发送给所述调试模块;
其中,所述调试模块,在ARM平台上运行测试用例,基于第二版程序运行应用任务集,得到输出结果,表示为第二输出结果,比较第一输出结果和第二输出结果是否一致,如果不是,则对第二版程序进行修改,直至结果一致为止;其中,所述调试模块根据下述方式对第二版程序进行修改:调用运行记录,以获知其中出错的代码,将该出错的代码与所述第一版程序的相应代码进行比较,以便对出错的代码进行修改。
5.如权利要求4所述的装置,其特征在于,所述转换模块包括机器代码转换子模块;
所述机器代码转换子模块,从mapreduce程序中提取x86指令集的机器代码;将提取的x86指令集的机器代码转换为ARM指令集的机器代码。
6.如权利要求5所述的装置,其特征在于,所述机器代码转换子模块,从mapreduce程序中提取x86指令集的机器代码,设置生成ARM架构机器代码的编译器,将提取的x86指令集的机器代码输入该编译器,进行交叉编译,转换得到ARM指令集的机器代码。
CN201410686611.6A 2014-11-25 2014-11-25 运行应用任务的方法及装置 Active CN105700854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410686611.6A CN105700854B (zh) 2014-11-25 2014-11-25 运行应用任务的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410686611.6A CN105700854B (zh) 2014-11-25 2014-11-25 运行应用任务的方法及装置

Publications (2)

Publication Number Publication Date
CN105700854A CN105700854A (zh) 2016-06-22
CN105700854B true CN105700854B (zh) 2019-05-28

Family

ID=56941644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410686611.6A Active CN105700854B (zh) 2014-11-25 2014-11-25 运行应用任务的方法及装置

Country Status (1)

Country Link
CN (1) CN105700854B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240987B (zh) * 2020-01-16 2024-03-08 北京奇艺世纪科技有限公司 移植程序检测方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364442A (zh) * 2011-06-24 2012-02-29 浙大网新科技股份有限公司 将Wine从x86移植到ARM平台的方法
CN103838614A (zh) * 2014-02-19 2014-06-04 华为技术有限公司 一种数据处理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250231A1 (en) * 2007-04-03 2008-10-09 Kabushiki Kaisha Toshiba Program code conversion apparatus, program code conversion method and recording medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364442A (zh) * 2011-06-24 2012-02-29 浙大网新科技股份有限公司 将Wine从x86移植到ARM平台的方法
CN103838614A (zh) * 2014-02-19 2014-06-04 华为技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN105700854A (zh) 2016-06-22

Similar Documents

Publication Publication Date Title
Ben-Nun et al. A modular benchmarking infrastructure for high-performance and reproducible deep learning
EP2368189B1 (en) Debugging pipeline
JP2017520842A (ja) ソフトウェア分析のためのシステムおよび方法
Viñas et al. Exploiting heterogeneous parallelism with the Heterogeneous Programming Library
US11789913B2 (en) Integration of model execution engine containers with a model development environment
CN104115120A (zh) 将程序执行从编译代码变换到解释代码
US11327722B1 (en) Programming language corpus generation
Langhammer et al. Automated extraction of rich software models from limited system information
US20160371175A1 (en) Computing platform and method thereof for searching, executing, and evaluating computational algorithms
Häfner et al. Veros v0. 1–A fast and versatile ocean simulator in pure Python
Larsen et al. Tensorflow graph optimizations
CN105700854B (zh) 运行应用任务的方法及装置
US11740875B2 (en) Type inference in dynamic languages
Acosta et al. Performance analysis of paralldroid generated programs
Chen et al. Instant bug testing service for linux kernel
Song et al. Reusing metadata across components, applications, and languages
Aumüller et al. Running experiments with confidence and sanity
Singh An Empirical Study of Programming Languages from the Point of View of Scientific Computing
Sim et al. Cslim: automated extraction of iot functionalities from legacy c codebases
CN117075907B (zh) 应用程序编译方法、系统、编译器及存储介质
Gibson Deep learning on a low power gpu
Zhao et al. A review on refactoring sequential program to parallel code in multicore era
Ko et al. Hardware-in-the-loop simulation of Android GPGPU applications
Shaw Towards evaluating Python as a suitable data science programming language for modern computing architecture
Skantz Performance Evaluation of Kotlin Multiplatform Mobile and Native iOS Development in Swift

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant