openMP



  • Hi Leute,
    ich pflege einen Service (gnu c++) auf ner Unix Kiste welcher bereits openmp directive erfolgreich nutzt. Nur einmal am Tag startet eine Art "Aktualisierung" mit 4 Threads. Diese werden leider immer nur auf 1 (parallel) der 12 Kerne ausgeführt. Ich suche eine Möglichkeit mit openmp einen Thread einem Prozessor zu zuteilen.

    Kann mir einer Kurz erklären wie ich das mache?
    Gibt es gute Docu darüber -> google suche zu openmp = directive 😞

    Gruss
    *fureda


  • Mod

    Die Frage ist zu ungenau, um sie beantworten zu können. Es ist absolut unklar, wo überhaupt deine Schwierigkeiten liegen.

    "Mit OpenMP kann man parallelisierte Programme schreiben" wäre derzeit meine zur Frage passende Antwort. Ich vermute aber mal, dass dir das nicht wirklich hilft. Vielleicht magst du eine bessere Frage stellen?



  • Okay, um es kurz zu machen. Ich möchte nicht nur die directive von OpenMP nutzen sondern direkt mit der Laufzeitumgebung arbeiten um bestimmter einzugreifen.

    Unterschied ist:

    Beispiel direktive:

    int main
    (void)
    {
    #pragma omp parallel
    printf(“Hello World\n“);
    }
    

    und jetzt die bedingte Übersetzung als Beispiel:

    #ifdef _OPENMP
    iam = omp_get_thread_num();
    #endif
    

    Ich suche halt einfach nur die Möglichkeit Threads einem Prozessor zuzuteilen. Und diese nicht halt nicht willkürlich sondern direkt.


  • Mod

    Wie du merkst, bekommst du nicht viel Resonanz mit deiner Frage. Ich vermute, anderen Leuten geht es wie mir: Dein zweiter Beitrag war nicht erhellender als dein erster, bezüglich was du überhaupt möchtest und was das Problem ist. Ich bin mir nicht einmal sicher, in welche Kategorie deine Frage gehört:
    -Du programmierst etwas, aber es passiert etwas anderes als erwartet
    -Du benutzt ein fertiges Programm, aber es verhält sich anders als erwartet
    -Du willst etwas programmieren, aber weißt nicht wie
    -Du willst etwas fertiges benutzen, aber du weißt nicht wie
    -Eine Kombination davon
    -Ganz was anderes

    Wenn nicht einmal so etwas klar ist, dann ist auch schwer zu raten, was deine eigentliche Frage ist.

    Stell deine Frage nochmal in Ruhe und nimm dabei an, dass wir keine Ahnung haben, wovon du redest, sofern du es nicht erklärst. Wir haben keine Ahnung, was du tust. Du musst dein Problem jemand völlig Fremden erklären. Du kannst nicht annehmen, dass wir den Kontext kennen, in dem du dein Problem beschreibst, sofern du den Kontext nicht vorher beschreibst.


Anmelden zum Antworten