在Mac OS X 10.11上安装OpenMP
如何让OpenMP在Mac OSX 10.11上运行,以便通过终端执行脚本 我已安装OpenMP:在Mac OS X 10.11上安装OpenMP,c,gcc,openmp,C,Gcc,Openmp,如何让OpenMP在Mac OSX 10.11上运行,以便通过终端执行脚本 我已安装OpenMP:brew安装clang omp 例如,当我运行时:gcc-fopenmp-o Parallel.b Parallel.c以下表达式返回:致命错误:“找不到omp.h”文件 我也尝试过:brew安装gcc——没有multilib,但不幸的是,这最终返回了以下结果(在首次安装一些依赖项之后): 有什么推荐的解决方法吗?在mac上,gcc命令是指向Clang的符号链接。因此,通过调用gcc-fopenmp
brew安装clang omp
例如,当我运行时:gcc-fopenmp-o Parallel.b Parallel.c
以下表达式返回:致命错误:“找不到omp.h”文件
我也尝试过:brew安装gcc——没有multilib
,但不幸的是,这最终返回了以下结果(在首次安装一些依赖项之后):
有什么推荐的解决方法吗?在mac上,gcc命令是指向Clang的符号链接。因此,通过调用
gcc-fopenmp-o your_program your_program.c
,实际上您正在使用Clang,到目前为止,它还没有内置对OpenMP的支持
根据post(您也可以在那里找到关于如何设置OpenMP的说明),较新版本的Clang确实支持OpenMP
另一方面,如果您仍然想使用gcc,我可以指导您完成对我有用的步骤
brew install gcc--without multilib
或者,如果brew说您已经安装了gcc,您可以尝试brew重新安装gcc——而不使用multilib
正如您可能已经注意到的,如果未指定——而不指定multilib,brew将警告您OpenMP可能无法工作
usr/local/bin
中找到符号链接。在我的例子中,它是usr/local/bin/gcc-5
。如果右键单击并选择“Show original”,则应在/usr/local/ceral/gcc/5.3.0/bin/gcc-5
中显示gcc-5可执行文件(版本号可能不同)/usr/bin
,而不是/usr/local/bin
。您需要将此目录添加到$PATH。这可以通过以下命令轻松完成:
PATH=/usr/local/bin:$PATH
gcc-5-fopenmp-o your_program your_program.c
备注:gcc-5是我安装的版本,您的可能会有所不同- 安装叮当作响的omp
brew install clang-omp
- 确保使用xcode命令行工具
xcode-select --install
- 实际上,我在运行示例openmp代码时出现了一个错误
/usr/local/opt/libiomp/include/libiomp/omp.h:139:21: error: expected ';' after top level declarator extern void __ KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t);
- 只需从文件中删除_uu和KAI之间的一个空格
- 现在使用命令
并运行以下代码clang-omp -fopenmp helloopenmp.c
#include <omp.h> #include <stdio.h> int main() { #pragma omp parallel printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads()); }
- 在OS X 10.11.3上工作,brew更新日期为2016年2月18日
brew install gcc --without-multilib
和导出路径:
export PATH=/usr/local/bin:$PATH
您可能需要导出CC,它适用于我:
export CC=/usr/local/bin/gcc
这可能是gcc-7,或者别的什么
brew install gcc
$which g++-7
/usr/local/bin/g++-7
cmake -DCMAKE_CXX_COMPILER=g++-7
make
brew重新安装gcc——不带multilib
2.编撰
gcc-8-Wall-fopenmp您的并行程序.c
请注意,gcc-8观看brew安装的版本,您的可能是gcc-7或gcc-9
==>浇注gcc-8.2.0.high_sierra.瓶子1.tar.gz
默认情况下,GCC使用的是clangdistribution使用自制软件安装GCC。安装后,您可以编译代码,指定自制安装的GCC版本,并添加OpenMP标志。hello_world示例如下所示:
brew安装gcc
brew安装libomp
brew信息gcc
gcc:稳定10.2.0(瓶装),头
GNU编译器集合
导出OMP_NUM_线程=8
创建hello.c
#包括
#包括
内部主(空){
#pragma-omp并行
{
printf(“你好,世界!\n”);
}
返回0;
}
gcc-10-fopenmp你好,c-o你好
执行:/你好
你好,世界!
你好,世界!
你好,世界!
你好,世界!
你好,世界!
你好,世界!
你好,世界!
你好,世界!
我最近遇到了这个问题,并通过重新安装clang-omp修复了它。嗯,如果你想要clang-omp,你需要调用它,而不是GCCI。我现在正在尝试:下面是如何强制苹果的clang支持OpenMP:Works for me,当前版本是gcc-6
。虽然如果您是第一次安装自制软件,那么$PATH修改是否应该写入您的.bashrc?文件在哪里?我收到一个错误,说没有输入文件。您指的是@sumneun哪些文件?如果您是指我给出的最后一行代码中的代码,那么第一个“Parallel”是输出可执行文件的名称,“Parallel.c”是要编译的源代码。您的终端必须与“Parallel.c”文件位于同一目录中,否则它就找不到了。@AlejandroDanielNoel我的问题是这些文件是从哪里来的,因为似乎没有安装gcc或LLVM只是尝试了这些步骤并收到了来自自制软件的以下通知:警告:gcc:此公式没有--without multilib选项,因此将被忽略代码>clang omp已在commit c57e307中从homebrew/core中删除:clang omp:迁移到boneyard功能现在作为homebrew中LLVM的一部分提供。2019年不再需要添加<代码>--没有multilib
。无效选项:---没有multilib此选项不会向现有答案和向上投票的答案添加任何值。答案已编辑
brew install gcc
$which g++-7
/usr/local/bin/g++-7
cmake -DCMAKE_CXX_COMPILER=g++-7
make