电子说
本次技术沙龙邀请到了爱丁堡大学信息学院的教授 Bjoern Franke为大家带来分享。他的主要研究领域为嵌入式系统的软件工具,特别是优化及并行化编译器、指令集模拟器等,以及设计空间探索与性能评估工具。
Franke 教授首先简单介绍了研究背景,数据集合在编程中非常重要,但在给定问题域和目标平台上,选择正确的集合并实现并不容易。以层级的结构组织起来的集合框架虽然方便,但会因使用者过度指定集合数据类型,从而限制了实现的灵活性,最终影响应用的性能。
在本次分享中,Franke 教授为大家介绍了他们团队开发的 Collection Skeletons,这个框架为数据集合提供了一种新颖的声明式方式,属性可以被显示地进行选择。Collection Skeletons 中已经定义了一系列语义、接口属性,未来还将定义运行时、空间等属性。
Franke 教授团队基于 Collection Skeletons 实现了一个 C++ 库,集合的声明类似下图,基于程序接口开发了对应接口属性的成员函数和集合的默认方法。
教授还介绍了并行化来进一步提高性能,其中 Algorithmic Skeletons 的工作非常有趣,教授也提出了一些后续待解决的问题,比如有哪些属性可以从源代码中自动推断出来,现有的属性集是否完整等。
使用这个 C++ 库,Franke 教授团队重写了 benchmarks,并在三个不同的硬件平台 (Intel Desktop、Intel Server、Arm Server) 上进行了实验。结果证明,部分 benchmarks 有性能提升,平均在 2.57 至 2.93 间。
Algorithmic Skel
未来,Franke 教授团队会支持更多的平台,进行更多 Parallel Algorithmic Skeletons 的相关研究,并探索其他的问题域(如图、矩阵等),欢迎感兴趣的小伙伴持续关注!
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !