为什么矢量化对Matlab程序有益? NumPy和Boost(uBLAS)是否相同?

| 使用矢量化替换for循环可以显着提高Matlab程序的速度。是因为矢量化代码是并行运行的吗? 向量化对使用NumPy或uBLAS的程序是否也有益?     
已邀请:
在诸如Matlab和numpy之类的解释环境中,“矢量化”代码通常更快,因为矢量化版本通常(但不总是)运行用C或FORTRAN编写的预编译和优化代码。并行执行可能会或可能不会在其中起作用。 由于这个原因,在numpy中使用向量化通常会提高性能-例程通常是用C或FORTRAN编译的,它们的运行速度比必须在解释器上运行的本机python代码快得多。同样,主要用C语言编写的numpy可以避开python全局解释器锁,这可以大大提高使用线程的python代码的响应能力。     
我认为使向量化更快的部分原因在于,它减少了与多个函数调用相关的开销。将向量传递给函数对应于一次调用,而将向量的每个元素分别传递给函数则对应于多次调用。     

要回复问题请先登录注册