相关疑难解决方法(0)

在Mavericks的GCC版本(4.2.1)中找不到<omp.h>库

我遇到了GCC的问题.我想将它更新到一个新版本,从4.2.1到用并行编程编程.但是,在这个版本中没有库.我该如何下载更新版本?

终端给我的错误是:

omp_hello.c:11:10: fatal error: 'omp.h' file not found
#include <omp.h>
         ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

gcc openmp osx-mavericks

22
推荐指数
2
解决办法
4万
查看次数

在Mac OS上使用OpenMP和C++ 11

我试图在我的C++ 11代码中使用一些OpenMP多线程功能,如:

#pragma omp parallel for
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时使用:

clang++ -std=c++11 -stdlib=libc++ -fopenmp main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:

clang: error: unsupported option '-fopenmp'
Run Code Online (Sandbox Code Playgroud)

我或者尝试使用以下编译:

g++ -fopenmp main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)

但这给出了完全相同的错误.

非常感谢,如果您可以建议如何在Mac OS 10.12上编译具有OpenMP功能的C++ 11代码.关于这里和其他地方的帖子的其他问题解释了为OpenMP编译C代码,但是,我找不到C++ 11的任何内容.

我尝试安装libiomp时遇到错误,我收到错误:

$ brew install libiomp
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
ansible-cmdb        djview4             khard               oysttyer            shyaml              yazpp             
asciinema2gif       doctl               macvim              pazpar2             vala                you-get           
avro-c              elixir              mailhog             python              vdirsyncer          youtube-dl        
bash-git-prompt     file-roller         meson               python3             vim               
commandbox          glib                metaproxy           rtv                 x265              
consul-backinator   gtkextra            offlineimap         s-search            xonsh …
Run Code Online (Sandbox Code Playgroud)

c++ openmp c++11 macos-sierra

15
推荐指数
1
解决办法
9454
查看次数

OS X:已安装 gcc 链接到 clang

我已经拥有gccg++安装:

$ which gcc
/usr/bin/gcc

$ which g++
/usr/bin/g++

$ brew install gcc
Warning: gcc-6.2.0 already installed
Run Code Online (Sandbox Code Playgroud)

我按照在 OS X Yosemite 上使用 gcc 编译器编译 OpenMP 程序gcc通过 HomeBrew 重新安装:

$ brew reinstall gcc --without-multilib
Run Code Online (Sandbox Code Playgroud)

然后

$ /usr/bin/g++ openmp.cpp
openmp.cpp:12:10: fatal error: 'omp.h' file not found
#include <omp.h>
         ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

-fopenmp

$ /usr/bin/g++ openmp.cpp -fopenmp
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
Run Code Online (Sandbox Code Playgroud)

这个重定向发生了什么?我该如何使用gcc/ g++


虽然涉及,但并不是关于 …

macos homebrew gcc g++

3
推荐指数
1
解决办法
3723
查看次数

C OpenMP 并行 for 循环不在多个线程上运行

我正在尝试一个简单的 Open MP 示例来并行化 for 循环,但我看不到 for 循环正在多个内核上执行。

这是C程序:

#include </usr/local/Cellar/gcc/5.1.0/lib/gcc/5/gcc/x86_64-apple-darwin14.5.0/5.1.0/include/omp.h>
#include <stdio.h>
#include <unistd.h>
int main() {
    int n;
    #pragma omp parallel
    {
        #pragma omp for
        for(n = 0; n < 10; n++)
            printf(" Thread %d: %d\n", omp_get_thread_num(), n);

        printf("Number of threads: %d\n", omp_get_num_threads());
    }
    printf("Total number of cores in the CPU: %ld\n", sysconf(_SC_NPROCESSORS_ONLN));
}
Run Code Online (Sandbox Code Playgroud)

上面的代码与这个例子非常相似。

当我执行这个程序并打印出它正在使用的线程总数(默认情况下它应该是 CPU 内核总数)时,我找到了结果1。这是输出:

10:pavithran$ gcc -fopenmp openMPExample.c -o openMPExample.o
10:pavithran$ ./openMPExample.o 
 Thread 0: 0
 Thread 0: 1
 Thread 0: …
Run Code Online (Sandbox Code Playgroud)

c multithreading openmp multiprocessing

2
推荐指数
1
解决办法
5703
查看次数