it-swarm.com.de

Installieren von OpenMP unter Mac OS X 10.11

Wie kann ich OpenMP unter Mac OSX 10.11 ausführen lassen, damit ich Skripts über das Terminal ausführen kann?

Ich habe OpenMP installiert: brew install clang-omp.

Bei der Ausführung beispielsweise: gcc -fopenmp -o Parallel.b Parallel.c wird der folgende Ausdruck zurückgegeben: fatal error: 'omp.h' file not found

Ich habe es auch ausprobiert: brew install gcc --without-multilib, aber leider wurde (nach der ersten Installation einiger Abhängigkeiten) Folgendes ausgegeben: 

The requested URL returned error: 404 Not Found
Error: Failed to download resource "mpfr--patch"

Irgendwelche empfohlenen Workarounds?

18
WΔ_

Auf einem Mac ist der Befehl gcc ein Symlink zu Clang. Wenn Sie also gcc -fopenmp -o your_program your_program.c aufrufen, verwenden Sie tatsächlich Clang, das bisher keine integrierte Unterstützung für OpenMP hatte.

Die neueren Versionen von Clang unterstützen OpenMP gemäß this post (wo Sie auch Anweisungen zum Einrichten finden).

Wenn Sie jedoch weiterhin gcc verwenden möchten, kann ich Sie durch die Schritte führen, die für mich funktioniert haben.

  1. Installieren Sie gcc mit Brew. Der Befehl, den Sie verwendet haben, sollte funktionieren: brew install gcc --without-multilib

    Alternativ, wenn brew sagt, dass Sie bereits gcc installiert haben, können Sie brew reinstall gcc --without-multilib versuchen.

    Wie Sie vielleicht bereits bemerkt haben, warnt Sie, wenn Sie nicht --without-multilib brew angeben, dass OpenMP möglicherweise nicht funktioniert. 

  2. Suchen Sie den Speicherort des neu installierten gcc. Brew hängt die Versionsnummer an gcc an, so dass kein Konflikt mit der von Command Line Tools installierten besteht. Sie finden den Symlink in usr/local/bin. In meinem Fall ist es usr/local/bin/gcc-5. Wenn Sie mit der rechten Maustaste klicken und "Original anzeigen" wählen, sollte die ausführbare Datei von gcc-5 in /usr/local/Cellar/gcc/5.3.0/bin/gcc-5 angezeigt werden (Versionsnummern können abweichen).

  3. Jetzt müssen Sie Ihr System darüber informieren. Wenn Sie einen Compiler aufrufen, wird Ihre Basis standardmäßig in /usr/bin und nicht in /usr/local/bin angezeigt. Sie müssen dieses Verzeichnis zu Ihrem $ PATH hinzufügen. Dies kann leicht mit dem Befehl erledigt werden:

    PATH=/usr/local/bin:$PATH

  4. Jetzt sollte es möglich sein, mit aktiviertem OpenMP zu kompilieren.

    gcc-5 -fopenmp -o your_program your_program.c

    Anmerkung: gcc-5 ist die Version, die ich installiert habe. Ihre Version kann davon abweichen.

36
  • installieren Sie Clang-omp

    brew install clang-omp
    
  • stellen Sie sicher, dass Sie das Xcode-Befehlszeilentool verwenden

    xcode-select --install
    
  • Ich hatte tatsächlich einen Fehler beim Ausführen eines Beispiel-Openmp-Codes

    /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);
    
  • Entfernen Sie einfach ein Leerzeichen zwischen __ und KAI aus der Datei

  • Verwenden Sie jetzt den Befehl

    clang-omp -fopenmp helloopenmp.c
    

    und führen Sie den folgenden Code aus

    #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());
    }
    
  • Sie sollten eine ähnliche Ausgabe erhalten

    Hello from thread 3, nthreads 4
    Hello from thread 2, nthreads 4
    Hello from thread 0, nthreads 4
    Hello from thread 1, nthreads 4
    
  • Arbeitete mit OS X 10.11.3 und mit Brew-Update vom 18. Februar 2016

13
prakharjain

macOS High Sierra Version 10.13.6 (17G65)

1. Installieren Sie gcc

brew reinstall gcc --without-multilib

2. Kompilieren

gcc-8 -Wall -fopenmp your-parallel-program.c

Beachten Sie die gcc-8 Beobachten Sie die version -Installation. Ihre kann gcc-7 oder gcc-9 sein. 

==> Pouring gcc-8.2.0.high_sierra.bottle.1.tar.gz ???? /usr/local/Cellar/gcc/8.2.0: 1,495 files, 344.8MB

Das ist es!

  1. Installieren Sie gcc mit Brühen.

    brew install gcc
    
  2. Prüfen Sie, ob gcc installiert ist.

    $which g++-7
    /usr/local/bin/g++-7
    
  3. Ändern Sie den cmake cxx-Compiler.

    cmake -DCMAKE_CXX_COMPILER=g++-7
    make
    

Vielleicht hilft dir das.

1
Javan You
brew install cmake
brew install gcc --without-multilib
cmake -DCMAKE_CXX_COMPILER=g++-6 .. 
make -j 
0
Adrian Leo

Nach der Installation von gcc:

brew install gcc --without-multilib

und PATH exportieren:

export PATH=/usr/local/bin:$PATH

Möglicherweise müssen Sie CC exportieren, was für mich funktioniert:

export CC=/usr/local/bin/gcc

Dies vielleicht GCC-7 oder was auch immer.

0
navins