Docker镜像与架构优化?

时间:2015-01-13 10:24:25

标签: optimization docker lapack blas

某些库(如BLAS / LAPACK或某些优化库)在编译时针对本地计算机体系结构进行了优化。让我们以OpenBlas为例。有两种方法可以使用OpenBlas创建Docker容器:

  1. 使用Dockerfile,在其中指定OpenBlas库的git clone以及所有必需的编译标志和构建命令。

  2. 从Docker Hub中拉出并运行其他人的Ubuntu + OpenBlas图像。

  3. 选项(1)保证为您的机器构建和优化OpenBlas。选项(2)怎么样?作为一个Docker新手,我认为图像是固定的和静态的,所以运行这个图像不会优化到我的机器(可能是基于AMD而不是维护者的英特尔CPU)。令我感到困惑的是,图像ipython/scipyserver确实在构建期间从Github克隆了最新的OpenBlas master。

    我似乎误解了Docker镜像和/或自动构建的概念,我非常感谢澄清。

1 个答案:

答案 0 :(得分:2)

不,我认为你非常正确。

您链接的图像是自动构建,因此OpenBlas将使用Docker构建服务器的内核和体系结构进行编译。我确实注意到build script在构建OpenBlas时设置了以下标志:

DYNAMIC_ARCH=1 NO_AFFINITY=1 NUM_THREADS=32

这可能会使安装便携性能成本降低。另一种方法是为各种构建配置提供单独的图像。