When writing high-performance code for numerical computation in a scripting language like MATLAB, it is crucial to have the operations in a large for-loop vectorized. If not, the code becomes too slow to use, even for a moderately large problem. However, in the process of vectorizing, the code often loses its original structure and becomes less readable. This is particularly true in the case of a finite element implementation, even though finite element methods are inherently structured. A basic remedy to this is the separation of the vectorization part from the mathematics part of the code, which is easily achieved through building the code on top of the basic linear algebra subprograms that are already vectorized codes, an idea that has been used in a series of papers over the last fifteen years, developing codes that are fast and still structured and readable. We discuss the vectorized basic linear algebra package and introduce a formalism using multi-linear algebra to explain and define formally the functions in the package, as well as MATLAB pagetime functions. We provide examples from computations of varying complexity, including the computation of normal vectors, volumes, and finite element methods. Benchmarking shows that we also get fast computations. Using the library, we can write codes that closely follow our mathematical thinking, making writing, following, reusing, and extending the code easier.


翻译:在使用像MATLAB这样的脚本语言编写数值计算高性能代码时,将大型for循环中的操作进行向量化至关重要。否则,即使是中等规模的问题,代码也会因过于缓慢而无法使用。然而,在向量化过程中,代码往往失去其原有结构,可读性降低。这在有限元实现中尤为明显,尽管有限元方法本身具有良好的结构性。一个基本的解决方法是,将代码的向量化部分与数学部分分离,这可以通过将代码构建在已向量化的基础线性代数子程序之上轻松实现——这一思想在过去十五年的系列论文中被采用,开发出既快速又保持结构化和可读性的代码。本文讨论了向量化基础线性代数包,并引入基于多重线性代数的形式化方法,对该包中的函数以及MATLAB的分页运算函数进行解释和严格定义。我们提供了不同复杂度计算的示例,包括法向量、体积的计算以及有限元方法。基准测试表明,我们同样实现了快速计算。使用该库,我们可以编写紧密遵循数学思维的代码,从而更易于编写、理解、复用和扩展代码。

0
下载
关闭预览

相关内容

Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
【ACL2020】多模态信息抽取,365页ppt
专知会员服务
151+阅读 · 2020年7月6日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
开源书:PyTorch深度学习起步
专知会员服务
51+阅读 · 2019年10月11日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
RL解决'BipedalWalkerHardcore-v2' (SOTA)
CreateAMind
31+阅读 · 2019年7月17日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
Layer Normalization原理及其TensorFlow实现
深度学习每日摘要
32+阅读 · 2017年6月17日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
69+阅读 · 2022年9月7日
Arxiv
16+阅读 · 2022年5月17日
Arxiv
18+阅读 · 2021年3月16日
A survey on deep hashing for image retrieval
Arxiv
15+阅读 · 2020年6月10日
Optimization for deep learning: theory and algorithms
Arxiv
106+阅读 · 2019年12月19日
Augmentation for small object detection
Arxiv
13+阅读 · 2019年2月19日
VIP会员
最新内容
2025年大语言模型进展报告
专知会员服务
8+阅读 · 4月25日
多智能体协作机制
专知会员服务
8+阅读 · 4月25日
非对称优势:美海军开发低成本反无人机技术
专知会员服务
9+阅读 · 4月25日
《美战争部小企业创新研究(SBIR)计划》
专知会员服务
8+阅读 · 4月25日
《军事模拟:将军事条令与目标融入AI智能体》
专知会员服务
12+阅读 · 4月25日
【NTU博士论文】3D人体动作生成
专知会员服务
9+阅读 · 4月24日
以色列军事技术对美国军力发展的持续性赋能
专知会员服务
9+阅读 · 4月24日
《深度强化学习在兵棋推演中的应用》40页报告
专知会员服务
16+阅读 · 4月24日
《多域作战面临复杂现实》
专知会员服务
13+阅读 · 4月24日
《印度的多域作战:条令与能力发展》报告
专知会员服务
6+阅读 · 4月24日
相关VIP内容
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
【ACL2020】多模态信息抽取,365页ppt
专知会员服务
151+阅读 · 2020年7月6日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
开源书:PyTorch深度学习起步
专知会员服务
51+阅读 · 2019年10月11日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
相关资讯
RL解决'BipedalWalkerHardcore-v2' (SOTA)
CreateAMind
31+阅读 · 2019年7月17日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
Layer Normalization原理及其TensorFlow实现
深度学习每日摘要
32+阅读 · 2017年6月17日
相关论文
Arxiv
69+阅读 · 2022年9月7日
Arxiv
16+阅读 · 2022年5月17日
Arxiv
18+阅读 · 2021年3月16日
A survey on deep hashing for image retrieval
Arxiv
15+阅读 · 2020年6月10日
Optimization for deep learning: theory and algorithms
Arxiv
106+阅读 · 2019年12月19日
Augmentation for small object detection
Arxiv
13+阅读 · 2019年2月19日
相关基金
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员