如何用MATLAB启用ompi?

时间:2016-02-07 14:10:57

标签: matlab openmp mex

我使用OpenMP的C代码我希望将其作为mex函数包含在MATLAB中。我已经完成了它并在Linux下的MATLAB R2013b中完美运行。但是,我最近阅读了OMPi,根据this article,它击败了大多数商业编译器,主要是我目前使用的gcc。因此,我想利用它。它适用于C代码,但我无法使用mex函数。我尝试了四种方式:

  1. 编辑CC =' gcc'在 mexopts.sh 文件中输入CC =' ompicc'并调用mex
  2. 直接将ompi称为ompicc -k -I/opt/MATLAB/R2013b/extern/include mex_sum_openmp.c
  3. mex设置详细标记,我获取了有关mex正在做什么的信息,因此我尝试模仿它:ompicc -k -I/opt/MATLAB/R2013b/extern/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-omit-frame-pointer -pthread -DMX_COMPAT_32 -O -DNDEBUG mex_sum_openmp.c
  4. 由于ompi是源到源编译器,我将 mex_sum_openmp.c 文件与ompicc -k mex_sum_openmp.c编译为 mex_sum_openmp_ompi.c ,然后调用gcc在它上面:gcc -I/opt/MATLAB/R2013b/extern/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-omit-frame-pointer -pthread -DMX_COMPAT_32 -O -DNDEBUG mex_sum_openmp_ompi.c(这是没有-k标志的ompi:首先创建源编译文件然后调用它上面的常规编译器)
  5. 无论哪种方式,结果都是一样的,一堆警告然后是错误消息。 这是原始的C文件:http://s000.tinyupload.com/?file_id=70221693843831744745,这里是源编译文件:http://s000.tinyupload.com/?file_id=02497191022856307556,这里是警告和错误:http://s000.tinyupload.com/?file_id=93602974698898858427

    由于

0 个答案:

没有答案