如何解决为什么矢量化对Matlab程序有益? NumPy和BoostuBLAS是否相同?
| 使用矢量化替换for循环可以显着提高Matlab程序的速度。是因为矢量化代码是并行运行的吗? 向量化对使用NumPy或uBLAS的程序是否也有益?解决方法
在诸如Matlab和numpy之类的解释环境中,“矢量化”代码通常更快,因为矢量化版本通常(但不总是)运行用C或FORTRAN编写的预编译和优化代码。并行执行可能会或可能不会在其中起作用。
由于这个原因,在numpy中使用向量化通常会提高性能-例程通常是用C或FORTRAN编译的,它们的运行速度比必须在解释器上运行的本机python代码快得多。同样,主要用C语言编写的numpy可以避开python全局解释器锁,这可以大大提高使用线程的python代码的响应能力。
,我认为使向量化更快的部分原因在于,它减少了与多个函数调用相关的开销。将向量传递给函数对应于一次调用,而将向量的每个元素分别传递给函数则对应于多次调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。