项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.BLAS(Basic Linear Algebra Subprograms)与LAPACK (Linear Algebra PACKage)

Blas是Netlib基于Fortran实现的基本向量乘法,矩阵乘法的一种科学计算函数库。

Fortran语言是为了满足数值计算的需求而发展出来的。1953年12月,IBM公司工程师约翰·巴科斯(J. Backus)因深深体会编写程序很困难,而写了一份备忘录给董事长斯伯特·赫德(Cuthbert Hurd),建议为IBM704系统设计全新的电脑语言以提升开发效率。当时IBM公司的顾问冯·诺伊曼强烈反对,因为他认为不切实际而且根本不必要。但赫德批准了这项计划。1957年,IBM公司开发出第一套FORTRAN语言,在IBM704电脑上运作。历史上第一支FORTRAN编程在马里兰州的西屋贝地斯核电厂试验。1957年4月20日星期五的下午,一位IBM软件工程师决定在电厂内编译第一支FORTRAN编程,当代码输入后,经过编译,打印机列出一行消息:“源程序错误……右侧括号后面没有逗号”,这让现场人员都感到讶异,修正这个错误后,打印机输出了正确结果。而西屋电气公司因此意外地成为FORTRAN的第一个商业用户。1958年推出FORTRAN Ⅱ,几年后又推出FORTRAN Ⅲ,1962年推出FORTRAN Ⅳ后,开始广泛被使用。

1966年,美国标准化协会制定了Fortran(x3.9-1966,也就是Fortran 66)和Fortran(x3.10-1966)标准。这时Fortran语言还不是结构化的程序设计语言。

1976年,美国标准化协会重新对Fortran(x3.9-1966)进行了评估,公布了新的Fortran标准,也就是Fortran 77。Fortran 77是具有结构化特性的编程语言。Fortran77在短时间内获取了巨大的成功,广泛地应用于科学和工程计算,几乎统治了数值计算领域。

1980年,Fortran 77被ISO接纳为国际标准。

1991年发布的Fortran 90大幅改进了旧版Fortran的型式,加入了面向对象的观念与提供指针,并同时加强数组的功能。(参考文献1)

后来,Netlib实现的这个代码库对应的接口规范被称为BLAS。

LAPACK也是Netlib用Fortan编写的代码库,实现了高级的线性运算功能,例如矩阵分解,求逆等,底层是调用的BLAS代码库。后来LAPACK也变成一套代码接口标准。

因此,BLAS与LAPACK有狭义与广义上两种含义
狭义上,其对应Netlib实现的代码库
广义上,其对应Netlib实现的代码库对应的接口规范。

2.ATLAS(Automatically Tuned Linear Algebra Software)

ATLAS与OpenBLAS是对应BLAS/LAPACK的开源版本,他们实现了BLAS的全部功能与接口,并对计算过程进行了优化,因此计算速度更快。

3.MKL

MKL是Intel对BLAS/LAPACK的实现,属于商业库。既然是Intel出品,肯定会基于Intel的CPU架构对算法实现相应的优化,因此计算速度更快。

4.EIGEN

EIGEN是基于C++实现的可以用来进行线性代数、矩阵、向量操作等运算的库,采用源码的方式提供给用户,支持多平台。

参考文献

1.https://zh.wikipedia.org/wiki/Fortran

科学计算库BLAS LAPACK ATLAS OpenBLAS MKL EIGEN等之间的关系相关推荐

  1. NumSharp v0.6 科学计算库发布,新增 LAPACK 的线性库支持

    NumSharp(Numerical .NET)可以说是C#中的科学计算库. 它是用C#编写的,符合.netstandard 2.0库标准. 它的目标是让.NET开发人员使用NumPy的语法编写机器学 ...

  2. python科学计算库-数值计算库与科学计算库

    BLAS 接口 BLAS , LAPACK , ATLAS 这些数值计算库的名字很类似,他们之间有什么关系呢?BLAS是一组线性代数运算接口,目前是事实上的标准,很多数值计算/科学计算都实现了这套接口 ...

  3. NumSharp v0.6.1 科学计算库发布,支持标量和隐式转换

    NumSharp(Numerical .NET)可以说是C#中的科学计算库. 它是用C#编写的,符合.netstandard 2.0库标准. 它的目标是让.NET开发人员使用NumPy的语法编写机器学 ...

  4. 【Python基础】科学计算库Scipy简易入门

    0.导语 Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工 ...

  5. numpy不用科学记数发 python_Python科学计算库Numpy常用的函数使用

    林小森博客: Python科学计算库Numpy常用的函数使用 - 林小森​www.linxiaosen.com Numpy具有强大的计算功能,本文介绍Numpy常用的函数,可以有效的提高工作效率. 首 ...

  6. Python 科学计算库 Numpy 准备放弃 Python 2 了

    Numpy 是 Python 的一个科学计算库,提供了矩阵运算的功能,一般与 Scipy.matplotlib 一起使用. 今天 Numpy 的 GitHub 主页上发文称,Numpy 库准备从 20 ...

  7. AI常用框架和工具丨1. 科学计算库NumPy

    科学计算库NumPy,AI常用框架和工具之一.理论知识结合代码实例,希望对您有所帮助. 文章目录 环境说明 一.NumPy简介 二.数组 2.1 NumPy数组的优势 2.2 ndarray对象 2. ...

  8. GSL科学计算库——计算高斯-勒让德积分

    相关文章: Windows系统Qt5配置GSL科学计算库 Windows系统下Cygwin+Dev C ++ 配置GSL科学计算库 假设计算下列积分: ∫0πexcos(x)dx\int_0^\pi ...

  9. python科学计算主要学什么_以下哪些是python常用的科学计算库?_学小易找答案

    [单选题]17-51. 在 Windows 中,若要终止未响应的应用程序,可使用( ) [单选题]19-55.在 Windows控制面板中,下列无法实现的操作是 [单选题]witness的元素属性(比 ...

  10. Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例

    Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例 文章目录 Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例 Seaborn 学习目标 6.1 Se ...

最新文章

  1. 2018-3-11 HDFS2.X
  2. Linux系统 proc self,Linux内核源代码情形分析-特殊文件系统/proc-对/proc/self/cwd的访问...
  3. Report framework entry point CRM_BSP_OIC_1O_SEARCH_FROM_RF
  4. 计生专干招聘计算机,城北村招聘计生专干试题
  5. Python3 基础学习笔记 C07【函数】
  6. Python 第三方模块之 imgaug (图像增强)
  7. html5 自适应手机布局,科技常识:html5移动端自适应布局的实现
  8. Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine
  9. 四步奠定SDN部署基石
  10. python打造个性化ai_人工智能GIS技术篇——打造GeoAI个性化应用,你需要人工智能GIS流程工具...
  11. linux版英特尔酷睿i7,[图]英特尔酷睿i7 1165G7和AMD Ryzen 7 Pro 4750U Linux性能对比
  12. 循环神经网络_小孩都看得懂的循环神经网络
  13. ActionScript 3.0基础之事件机制
  14. 单主机多git账户多rsa密钥+根据私钥生成公钥+knownhosts+.git/config相关配置
  15. 中国省份/城市OSM地图数据
  16. 结构化、半结构化和非结构化数据
  17. 浏览器有新消息之后,图标在电脑任务栏闪烁提示
  18. grep 同时查找多个文件
  19. Android 调用系统中的相机应用及静默拍照
  20. Vue3百度网盘下载链接

热门文章

  1. DotNetTextBoxV3.0在线编辑器控件Ver3.4.6 Open Source免费开源版
  2. 学习React之前你需要知道的的JavaScript基础知识
  3. iOS10 Xcode 8 中provisioning file 相关bug
  4. IDC:“互联网+流通”将进一步释放活力
  5. 安防的未来五年 如何把握机遇深耕市场?
  6. 项目管理(二)责任划分
  7. centos-5.5安装vmvare tools
  8. idea显示左边project栏和隐藏project栏的快捷键
  9. Linux系统grep查日志用法
  10. 034 Maven中的dependencyManagement和dependencies区别