This directory contains examples of OpenMP programs written in C and C++. To 
illustrate the use of TAU, we provide a Mandelbrot program (written by 
Bernd Mohr, FZJ, Germany) in the subdirectories. To use it:
% make
% setenv OMP_NUM_THREADS <no. of threads desired>
% mandel
It will pick up default arguments and run the program. 
% pprof; racy 

NOTE: It is VERY important to include the -mp flag on the link command-line for
***** 
OpenMP programs (for PGI). Since this is not a universal option applicable to 
all OpenMP compilers, TAU doesn't add this. If this option is not included, 
the linker may not find all the mp routines. 

The implementation of Mandelbrot is described below (by Bernd in German) :)

Berechnung der Mandelbrotmenge ("Apfelmnnchen")
================================================

Schreiben Sie ein Programm zur Berechnung der Mandelbrotmenge. Diese
ergibt sich aus der Berechnung der Anzahl von Iterationen die ntig sind
damit die komplexe Rekursionsformel

   complex z, c

   c = cmplx(x,y)
   z_0 = (0,0)
   z_n+1 = z_n * z_n + c

das Abbruchkriterium

   norm(z) >= 16

erfllt bzw. eine maximale Iterationsanzahl erreicht (whlen Sie hier
ein Vielfaches von 64), und zwar fr jeden Punkt der komplexen Ebene gegeben
durch (xmin + ymin i) und (xmax + ymax i). Fhren Sie Berechnung fr eine
geeigneten Auflsung (z.B. 800x800) aus. Zur Erzeugung des Bildes knnen
Sie die in der Datei "ppm.f" vorgegebene Funktion "ppmwrite" benutzen,
welche ein Bild im PPM-Format erzeugt. Dieses kann z.B. mit dem
Kommando "xv" betrachet werden.

  subroutine ppmwrite(fname, iterations, maxiter)
  character(len=*) fname    ! Dateiname
  integer iterations(:,:)   ! Anzahl Iterationen fr jeden Pixel
  integer maxiter           ! Maximale Iterationsanzahl

Beschleunigen Sie die Berechnung der Mandelbrotmenge durch
Parallelisierung und bestimmen Sie den erreichten Speedup.

Hinweis: einige interessante Gebiete:

      -1.5 - 1.0i         0.5 + 1.0i
      -0.59 - 0.58i      -0.54 - 0.53i
      -0.59 + 0.47i      -0.56 + 0.5i


