Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » oder doch OpenMP? Und dann Intel?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.04.2006, 18:30 Uhr
flappinski



Hallo Leute,
ich muss noch mal mit den verschiedenen Cores nerven. Nachdem ich mir Plers Tip zur Gemüte geführt habe, sehe ich, dass die Threads genau das sind, was ich brauche. Allerdings ist mein Programmierstil nicht ganz so sauber, als dss ich mich drauf verlassen könnte, die Mutexe etc. richtig anzuwenden.
Nun komme ich zu OpenMP: So, wie ich das verstanden habe, arbeitet OpenMP ja genauso, nur dass man es deutlich komfortabler anwenden kann. Ist das richtig. Nun habe ich die GCC Version 4.2.0 mal installiert, aber ich kann zwar die Beispielprogramme zwar compilieren, aber dann wird immer nur ein Thread aufgemacht (omp_get_num_threads() ergibt 1, obwohl ich die Umgebungsvariable $OMP_NUM_THREADS auf 30 gesetzt habe und damit auch omp_get_max_threads() nun 30 ergibt.
Kompiliert habe ich folgendermassen:

C++:
gcc -openmp -o hello omp_hello.c -lgomp


das habe ich in Anlehnung an icc - Anleitungen gemacht.
Es dreht sich übrigens um folgendes Programm

C++:
/******************************************************************************
* FILE: omp_hello.c
* DESCRIPTION:
*   OpenMP Example - Hello World - C/C++ Version
*   In this simple example, the master thread forks a parallel region.
*   All threads in the team obtain their unique thread number and print it.
*   The master thread only prints the total number of threads.  Two OpenMP
*   library routines are used to obtain the number of threads and each
*   thread's number.
* AUTHOR: Blaise Barney  5/99
* LAST REVISED: 04/06/05
******************************************************************************/

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[]) {

int nthreads, tid;

/* Fork a team of threads giving them their own copies of variables */
#pragma omp parallel private(nthreads, tid)
  {

  /* Obtain thread number */
  tid = omp_get_thread_num();
  printf("Hello World from thread = %d\n", tid);

  /* Only master thread does this */
  if (tid == 0)
    {
    nthreads = omp_get_num_threads();
    printf("Number of threads = %d\n", nthreads);
    }

  }  /* All threads join master thread and disband */

}


Vielleicht hat ja jemand schon mal ein openmp programm mit gcc kompiliert, obwohl das ja sehr frisch sein muss. Wäre toll, währenddessen versuche ich es mal mit dem Intel Compiler, der scheint damit ja schon länger zu arbeiten. Damit hat doch bestimmt schon einer Erfahrung, oder?
Grüsse,
Stephan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.04.2006, 18:39 Uhr
flappinski



OK, wenn keiner antwortet, dann ich halt selber,
Ich habe jetzt doch mal den Intel-Compiler installiert und siehe da, das parallele rechnen funktioniert ganz wunderbar, auch ausgeklügeltere Programme als das obige. Nur habe ich jetzt das Problem, dass icc mein altes Programm nicht mehr compiliert. Es kommen da so Fehlermeldungen wie:

C++:
Filefunc.cpp(237): warning #913: invalid multibyte character sequence
"-> Abbruch\n\n\n";
                                                                                   ^

Filefunc.cpp(287): warning #913: invalid multibyte character sequence
                                ^

Filefunc.cpp(287): warning #913: invalid multibyte character sequence
                                 ^

/usr/local/include/c++/4.2.0/i686-pc-linux-gnu/bits/gthr-default.h(88): error: function "__gthrw_pthread_once" was referenced but not defined
  __gthrw(pthread_once)
  ^


Kann damit jemand was anfangen? Ist jemand von Euch schon mal auf den Intel-Compiler umgestiegen und was sind die Erfahrungen?
Danke schon mal und viel Grüsse,
Stephan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: