Hauptseite
Veröffentlichungen
Lebenslauf
Skripte
Errata
Gebasteltes

Steffen Börm: Gebasteltes

Vorlesung Wissenschaftliches Rechnen

Die folgenden Beispielprogramme können mit dem folgenden Unix-artigen Makefile übersetzt werden.

2D-Grafik mit Cairo
Die Bibliothek Cairo bietet Funktionen, mit denen sich zweidimensionale Grafiken sehr komfortabel erstellen lassen. Hier sind einige Beispielprogramme:

Benutzerschnittstelle mit GTK+
Mit Hilfe der Bibliothek GTK+ kann ein C-Programm relativ einfach und schnell mit einer grafischen Benutzerschnittstelle ausgestattet werden. Auch hierzu gibt es einige Beispielprogramme:

  • gtk1_button.c: Ein einfaches Fenster mit einem einzelnen Knopf.
  • gtk2_hbox.c: Zwei Knöpfe in einer GtkHBox.
  • gtk3_packing.c: Arrangement von Objekten per GtkBox.
  • gtk4_data.c: Verschiedene Widgets zur Dateneingabe.
  • gtk5_menu.c: Menüs.
  • gtk6_cairo.c: Cairo-Zeichnungen in Widgets, Fassungen für GTK-Versionen 2.x und 3.x.
  • gtk7_animation.c: Cairo-Animationen in Widgets, Fassungen für GTK-Versionen 2.x und 3.x.

3D-Visualisierung mit OpenGL
Mit Hilfe des Industriestandards OpenGL können wir auch dreidimensionale Objekte darstellen. Die Verbindung zwischen OpenGL und der grafischen Benutzeroberfläche kann dabei mit Hilfe der Erweiterung GtkGLExt der Bibiothek GTK+ 2.x oder über die eigenständige Bibliothek FreeGLUT erfolgen. Die folgenden Beispielprogramme liegen in Varianten für beide Varianten vor:

Vorlesung Hochleistungsrechnen

Die folgenden Beispielprogramme können mit dem folgenden Unix-artigen Makefile übersetzt werden.

Vektorrechnen mit SSE/SSE2
Hier sind einige Beispielprogramme:

  • sse_axpy.c: Linearkombination zweier Vektoren mittels SSE.
  • sse_addmul.c: Vierdimensionale Matrix-Vektor-Multiplikation mittels SSE-Shuffle.
  • sse_if.c: Beispiel für die Umsetzung von Fallunterscheidungen auf Vektorrechnern.
  • sse_exp.c: Einfache Approximation der Exponentialfunktion per Exponentialreihe und Manipulation der Binärdarstellung von Gleitkommazahlen.

Vektorrechnen mit AVX
Auch hierzu gibt es einige Beispielprogramme:

  • avx_axpy.c: Linearkombination zweier Vektoren mittels AVX.
  • avx_exp.c: Einfache Approximation der Exponentialfunktion, leider wird der Umgang mit der Binärdarstellung der Gleitkommazahlen durch fehlende AVX-Integer-Befehle erschwert.

Rechnen auf heterogenen Architekturen mit OpenCL
Mit Hilfe des Industriestandards OpenCL können wir heterogene Rechnersysteme steuern, beispielsweise bestehend aus einer CPU und einer Grafikkarte. Hier finden sich einige Beispielprogramme:

  • cl_info.c: Auflisten der vorhandenen OpenCL-Plattformen und -Devices.
  • cl_axpy.c: Linearkombination zweier Vektoren im Grafikspeicher.
  • cl_exp.c: Einfache Approximation der Exponentialfunktion..

Prof. Dr. Steffen Börm
Lehrstuhl Scientific Computing, Institut für Informatik
Christian-Albrechts-Universität, 24118 Kiel
GPG Public Key (fingerprint AC87 49F3 30F3 A582 0014 7838 6F62 95D7 CDDA 1F98)

Valid HTML 4.01